7/7 pages
Sample report
Fictitious application built for the demonstration: no real data. Your report will follow the same structure.
What breaks in your app
Riad Dar Zitoun
riad-connect-hub.lovable.app
Summary report
Decision
Technical detail
الموقع يعرض الغرف الخمس بأسعارها ويسمح بالبحث عن التوفر حسب التواريخ وعدد البالغين والأطفال، وقد نجحت كل حالات البحث والتحقق من المدخلات (CN-1، CS-1، CS-2، CS-3، CL-1 إلى CL-5). لكن المسار الذي يُدخل المال فعلاً (اختيار الغرفة، إنشاء الحجز، دفع العربون 30%، الإلغاء) لم يُغطَّ بالكامل: CLI-01 وCLI-03 وCLI-05 غير مغطاة، وCLI-02 محجوب، وحالة التحقق من العربون مع رمز RIAD10 (CS-22) بقيت «à confirmer» بعد إعادة اللعب (I1: غير حاسم). لذلك لا يمكن إصدار GO، والموافقة مشروطة بإتمام اختبار مسار الحجز والدفع والإلغاء من البداية إلى النهاية.
The test of riad-connect-hub.lovable.app found 17 issues, 2 of them critical or major (S1, S2), which come down to 9 fixes. Fix first: Sign-in pages can be framed by another site (clickjacking), then Form fields without a label.
Key figures
Fix first
- #1MajorSign-in pages can be framed by another site (clickjacking) — /auth
A third-party site can hijack clicks on the sign-in page: customer accounts exposed and trust lost. - #2MinorSecurity headers missing — /
- #3NoteSecurity headers missing — /
- #4MajorForm fields without a label — /contact
Some visitors (keyboard users, visually impaired) cannot finish: these are lost bookings, and accessibility is becoming a legal duty in several markets. - #5MinorS3 issue — /
These points do not block the journey but are worth fixing.
Next steps
- Fix the 5 "fix first" points, in order.
- Apply the 4 grouped fixes: each one settles several findings at once.
- Then handle the remaining minor findings, section by section.
- Run a new Avalyz test to verify the fixes.
Detailed report
Our understanding of the business (to be validated)
Concept
دار ضيافة (رياض) في الميدينة بمراكش تُدعى Riad Dar Zitoun، تضم خمس غرف حول فناء برتقال قرب جامع الكتبية. تتيح المنصة للمسافر البحث عن التوفر حسب التواريخ وعدد البالغين والأطفال ثم اختيار الغرفة والحجز، مع تقييمات وأسئلة شائعة واتصال.
Target customers: المسافرون والنزلاء الباحثون عن إقامة في رياض بمراكش، بما في ذلك العائلات الصغيرة.
Value chain
- جذب الزائرVIS-01, VIS-02
- التحويل إلى حجزCLI-01, CLI-02
- الدفع والتأكيدCLI-03, CLI-04
- الاستقبال والإقامةCLI-05
- ما بعد الإقامة والولاءCLI-06, CLI-07
- التسيير والماليةMGR-01, MGR-02, MGR-03, MGR-04
Business model
| Customer segments | مسافرون ونزلاء يبحثون عن إقامة في رياض بمراكش، عائلات صغيرة (غرف من شخصين إلى 4). |
|---|---|
| Value proposition | رياض هادئ بخمس غرف حول فناء برتقال قرب الكتبية، بأسعار ليلية واضحة بالدرهم. |
| Channels | موقع ويب بالفرنسية مع مبدّل إلى الإنجليزية، صفحة اتصال، بريد وهاتف. |
| Revenue streams | حجز الغرف بالليلة (750 إلى 1800 درهم)، عربون 30%، ضريبة إقامة 30 درهم/بالغ/ليلة. |
Organisation
- riad-connect-hub.lovable.app
- الفضاء العمومي (الموقع التعريفي)
- زائر VIS ★
- نزيل/مسافر CLI ★
- زائر VIS ★
- فضاء النزيل (حجوزاتي)
- فضاء المدير (لوحة التسيير) (announced, not seen)
- مدير (المسؤول الإداري الوحيد) MGR ★
- الفضاء العمومي (الموقع التعريفي)
Functions
| Function (profile) | Mission | Main responsibilities | Used for testing |
|---|---|---|---|
| زائر VIS | اكتشاف الرياض والتحقق من التوفر قبل الحجز. |
| ★ yes |
| نزيل/مسافر CLI | حجز الغرفة وإتمام العربون ومتابعة إقامته. |
| ★ yes |
| مدير (المسؤول الإداري الوحيد) MGR | تسيير توفر الغرف والأسعار ومتابعة الحجوزات والرسائل. |
| ★ yes |
Domains
Business
- الحجز والإقامة VIS-01, VIS-02, CLI-01, CLI-02, CLI-04, CLI-05
- التواصل والتقييمات CLI-06, CLI-07
Support
- الدفع والمالية CLI-03
- الحساب والمصادقة CPT-01
- الإدارة والتسيير MGR-01, MGR-02, MGR-03, MGR-04
Map of macro-processes and processes
| Macro-process | Process | Profile | Outcomes | Coverage |
|---|---|---|---|---|
| إدارة الحجز Business · الحجز والإقامة | CLI-04 — متابعة الحجوزات | CLI | ✓ عرض الحجوزات, ✗ لا حجوزات مسجلة | not played (CS-6) |
| CLI-05 — إلغاء الحجز | CLI | ✓ إلغاء مؤكد, ✗ رفض الإلغاء أقل من 48 ساعة | not tested | |
| جذب الزائر Business · الحجز والإقامة | VIS-01 — تصفح الموقع والتعرف على الغرف | VIS | ✓ عرض الغرف والأسعار | tested: compliant (CS-3, CL-10) |
| VIS-02 — البحث عن التوفر | VIS | ✓ عرض صفحة التوفر, ✗ تواريخ غير صحيحة أو ناقصة, ✗ عدد ضيوف خارج الحدود | tested: compliant (CN-1, CS-1, CS-2, CL-1, CL-2, CL-3, CL-4, CL-5) | |
| حجز غرفة Business · الحجز والإقامة | CLI-01 — اختيار الغرفة | CLI | ✓ الانتقال إلى الحجز, ✗ لا توفر على التواريخ المطلوبة | not tested |
| CLI-02 — إنشاء الحجز والملخص | CLI | ✓ ملخص صحيح مع العربون, ✗ رمز ترويجي غير صالح, ✗ تواريخ متداخلة مع حجز آخر | blocked (CU-1) | |
| التقييم والولاء Business · التواصل والتقييمات | CLI-06 — ترك تقييم | CLI | ✓ نشر التقييم, ✗ رفض لأن النزيل لم يقم سابقًا | tested: compliant (CS-5) |
| الدعم والتواصل Business · التواصل والتقييمات | CLI-07 — التواصل مع الرياض | VIS | ✓ إرسال الرسالة, ✗ حقول مطلوبة ناقصة, ✗ تجاوز الحد الأقصى للأحرف | tested: compliant (CS-4, CL-7, CL-8, CL-9) |
| حجز غرفة Support · الدفع والمالية | CLI-03 — دفع العربون 30% | CLI | ✓ تأكيد الدفع ورقم الحجز, ✗ فشل الدفع المحاكى, ✗ انتهاء صلاحية الحجز | not tested |
| إدارة الحساب Support · الحساب والمصادقة | CPT-01 — إنشاء حساب وتسجيل الدخول | CLI | ✓ دخول ناجح, ✗ بيانات اعتماد خاطئة, ✗ كلمة مرور أقل من 6 أحرف | tested: compliant (CL-6) |
| تسيير الرياض Support · الإدارة والتسيير | MGR-01 — تسيير تقويم الحجوزات | MGR | ✓ عرض الحجز الجديد, ✗ حجز غير ظاهر | tested: compliant (CU-2) |
| MGR-02 — حجب التواريخ | MGR | ✓ تواريخ محجوبة, ✗ تعارض مع حجز قائم | not tested | |
| MGR-03 — إدارة الغرف والأسعار | MGR | ✓ سعر محدث, ✗ سعر غير صالح | not tested | |
| MGR-04 — معالجة رسائل الاتصال | MGR | ✓ رسالة معالجة, ✗ رسالة غير ظاهرة | not tested |
Key business rules by process
| Process | Business rule | Source |
|---|---|---|
| VIS-01 — تصفح الموقع والتعرف على الغرف | RG-01 — سعر غرفة أطلس 900 درهم في الليلة لشخصين | read on the site : « Atlas 2 pers. Chambre intime aux tons ocre, vue sur le patio et ses orangers. 900 MAD / nuit » |
| RG-02 — سعر غرفة ماجوريل 1200 درهم في الليلة لثلاثة أشخاص | read on the site : « Majorelle 3 pers. Chambre lumineuse au bleu Majorelle, idéale pour une petite famille. 1 200 MAD / nuit » | |
| RG-03 — سعر جناح الكتبية 1800 درهم في الليلة لأربعة أشخاص | read on the site : « Suite Koutoubia 4 pers. Notre plus belle suite : salon privé, cheminée et vue sur les toits de la Médina. 1 800 MAD / nuit » | |
| RG-04 — سعر غرفة النخيل 750 درهم في الليلة لشخصين | read on the site : « Palmeraie 2 pers. Chambre douce et verdoyante, inspirée des jardins de la Palmeraie. 750 MAD / nuit » | |
| RG-05 — سعر غرفة منارة 1000 درهم في الليلة لشخصين | read on the site : « Menara 2 pers. Chambre élégante aux zelliges verts, ouverte sur la galerie. 1 000 MAD / nuit » | |
| VIS-02 — البحث عن التوفر | RG-01 — سعر غرفة أطلس 900 درهم في الليلة لشخصين | read on the site : « Atlas 2 pers. Chambre intime aux tons ocre, vue sur le patio et ses orangers. 900 MAD / nuit » |
| RG-02 — سعر غرفة ماجوريل 1200 درهم في الليلة لثلاثة أشخاص | read on the site : « Majorelle 3 pers. Chambre lumineuse au bleu Majorelle, idéale pour une petite famille. 1 200 MAD / nuit » | |
| RG-06 — الحد الأدنى للبالغين 1 والأقصى 4 | to be confirmed | |
| RG-07 — الحد الأدنى للأطفال 0 والأقصى 3 | to be confirmed | |
| CLI-01 — اختيار الغرفة | RG-06 — الحد الأدنى للبالغين 1 والأقصى 4 | to be confirmed |
| RG-07 — الحد الأدنى للأطفال 0 والأقصى 3 | to be confirmed | |
| CLI-02 — إنشاء الحجز والملخص | RG-06 — الحد الأدنى للبالغين 1 والأقصى 4 | to be confirmed |
| RG-07 — الحد الأدنى للأطفال 0 والأقصى 3 | to be confirmed | |
| RG-08 — ضريبة الإقامة 30 درهمًا لكل بالغ في الليلة | to be confirmed | |
| RG-09 — رمز RIAD10 يمنح خصمًا 10% على الإقامة فقط دون ضريبة الإقامة | to be confirmed | |
| RG-10 — العربون 30% يُحسب على المجموع بعد الخصم مع احتساب الضريبة | to be confirmed | |
| CLI-03 — دفع العربون 30% | RG-10 — العربون 30% يُحسب على المجموع بعد الخصم مع احتساب الضريبة | to be confirmed |
| CLI-04 — متابعة الحجوزات | RG-11 — الإلغاء ممكن حتى 48 ساعة قبل الوصول | read on the site : « Annulation possible jusqu'à 48 h avant l'arrivée. » |
| CLI-05 — إلغاء الحجز | RG-11 — الإلغاء ممكن حتى 48 ساعة قبل الوصول | read on the site : « Annulation possible jusqu'à 48 h avant l'arrivée. » |
| CLI-06 — ترك تقييم | RG-12 — نشر التقييمات مقصور على النزلاء الذين أقاموا في الرياض | read on the site : « Seuls les hôtes ayant séjourné au riad peuvent publier un avis. » |
| CLI-07 — التواصل مع الرياض | RG-13 — حقل البريد الإلكتروني مطلوب في نموذج الاتصال بحد أقصى 255 حرفًا | to be confirmed |
| RG-14 — حقل الرسالة مطلوب في نموذج الاتصال بحد أقصى 2000 حرف | to be confirmed | |
| CPT-01 — إنشاء حساب وتسجيل الدخول | RG-15 — كلمة المرور يجب ألا تقل عن 6 أحرف عند تسجيل الدخول | read on the site : « Mot de passe » |
| RG-16 — التسجيل بالبريد الإلكتروني وكلمة المرور مع بريد تأكيد | to be confirmed | |
| MGR-02 — حجب التواريخ | RG-06 — الحد الأدنى للبالغين 1 والأقصى 4 | to be confirmed |
| MGR-03 — إدارة الغرف والأسعار | RG-01 — سعر غرفة أطلس 900 درهم في الليلة لشخصين | read on the site : « Atlas 2 pers. Chambre intime aux tons ocre, vue sur le patio et ses orangers. 900 MAD / nuit » |
| RG-02 — سعر غرفة ماجوريل 1200 درهم في الليلة لثلاثة أشخاص | read on the site : « Majorelle 3 pers. Chambre lumineuse au bleu Majorelle, idéale pour une petite famille. 1 200 MAD / nuit » | |
| RG-03 — سعر جناح الكتبية 1800 درهم في الليلة لأربعة أشخاص | read on the site : « Suite Koutoubia 4 pers. Notre plus belle suite : salon privé, cheminée et vue sur les toits de la Médina. 1 800 MAD / nuit » | |
| RG-04 — سعر غرفة النخيل 750 درهم في الليلة لشخصين | read on the site : « Palmeraie 2 pers. Chambre douce et verdoyante, inspirée des jardins de la Palmeraie. 750 MAD / nuit » | |
| RG-05 — سعر غرفة منارة 1000 درهم في الليلة لشخصين | read on the site : « Menara 2 pers. Chambre élégante aux zelliges verts, ouverte sur la galerie. 1 000 MAD / nuit » | |
| MGR-04 — معالجة رسائل الاتصال | RG-13 — حقل البريد الإلكتروني مطلوب في نموذج الاتصال بحد أقصى 255 حرفًا | to be confirmed |
| RG-14 — حقل الرسالة مطلوب في نموذج الاتصال بحد أقصى 2000 حرف | to be confirmed | |
| — | RG-17 — لا يمكن حجز الغرفة مرتين على تواريخ متداخلة | to be confirmed |
| — | RG-18 — لا حجز في الماضي والحد الأدنى ليلة واحدة | to be confirmed |
| — | RG-19 — المدير هو المسؤول الإداري الوحيد | to be confirmed |
Acceptance test book
| Ref. | User story | Expected result | Actual result and evidence | Recommendation |
|---|---|---|---|---|
| CN-1 | En tant que نزيل، je veux حجز غرفة أطلس لليلتين، afin de تأمين إقامتي في الرياض. VIS-02 · RG-06 · RG-07 | الانتقال إلى صفحة التوفر بعد البحث بتواريخ صحيحة وعدد بالغين 2. | Pass Server responses
Hygiene of related pages: #1, #2, #3, #5, #6, #7, #8, #9, #10, #11 | Keep this case in the regression test suite. |
| CS-1 | En tant que نزيل، je veux البحث عن جناح الكتبية لأربعة بالغين، afin de حجز أكبر غرفة لعائلتي. VIS-02 · RG-03 · RG-06 | عرض جناح الكتبية ضمن نتائج التوفر للتواريخ المطلوبة. | Pass Server responses
Hygiene of related pages: #2, #3, #5, #6, #7, #8, #9, #10, #11, #12 | Keep this case in the regression test suite. |
| CS-2 | En tant que زائر، je veux البحث مع طفلين، afin de حجز إقامة عائلية مناسبة. VIS-02 · RG-07 | قبول عدد الأطفال 2 ضمن الحد الأقصى والانتقال إلى صفحة التوفر. | Pass Server responses
Hygiene of related pages: #2, #3, #5, #6, #7, #8, #9, #10, #11, #12 | Keep this case in the regression test suite. |
| CS-3 | En tant que زائر، je veux مقارنة أسعار الغرف الخمس، afin de اختيار الغرفة المناسبة لميزانيتي. VIS-01 · RG-01 · RG-02 · RG-03 · RG-04 · RG-05 | عرض الغرف الخمس بأسعارها المعلنة بالدرهم في الصفحة الرئيسية. | Pass Hygiene of related pages: #2, #3, #5, #6, #7, #8, #9, #10, #11, #12 | Keep this case in the regression test suite. |
| CS-4 | En tant que زائر، je veux إرسال رسالة إلى الرياض، afin de الاستفسار قبل الحجز. CLI-07 · RG-13 · RG-14 | قبول الرسالة بعد تعبئة الحقول المطلوبة وإرسالها دون خطأ. | Not playable not played: element not found: input[type=text] — to be confirmed Hygiene of related pages: #4 | Remove the blocker (not played: element not found: input[type=text] — to be confirmed), then replay. |
| CS-5 | En tant que زائر، je veux قراءة شروط نشر التقييمات، afin de معرفة من يحق له التقييم. CLI-06 · RG-12 | عرض شرط النشر وعدم وجود تقييمات منشورة حاليًا. | Pass Hygiene of related pages: no technical finding on these pages | Keep this case in the regression test suite. |
| CS-6 | En tant que نزيل، je veux عرض حجوزاتي، afin de متابعة حالة حجزي وإلغائه إن لزم. CLI-04 · RG-11 | عرض صفحة الحجوزات مع شرط الإلغاء 48 ساعة قبل الوصول. | Inconclusive — to be confirmed expected text missing: « Mes réservations » (page: « Riad Dar Zitoun Accueil Disponibilités Avis FAQ Contact EN Connexion Connexion E-mail Mot de passe ConnexionPas encore de compte ? Créer un compte Riad Dar Zito ») | Have the business confirm the expected result, then replay. |
| CU-1 | En tant que نزيل مسجل، je veux حجز ماجوريل لليلتين مع رمز RIAD10، afin de دفع عربون محسوب على المجموع بعد الخصم. client user story · CLI-02 · RG-09 · RG-10 | الوصول إلى مسار حجز ماجوريل؛ التحقق من الخصم والعربون غير ممكن لغياب صفحة الدفع. | Not playable not played: element not found: text=Voir les disponibilités — to be confirmed Server responses
Hygiene of related pages: #1, #2, #3, #5, #6, #7, #8, #9, #10, #11 | Remove the blocker (not played: element not found: text=Voir les disponibilités — to be confirmed), then replay. |
| CU-2 | En tant que مدير، je veux إيجاد الحجز الجديد في لوحة التسيير، afin de تحضير وصول النزيل. client user story · MGR-01 · RG-19 | لا يمكن تنفيذ هذا المسار: لا توجد لوحة تسيير في الموقع. | Pass | Keep this case in the regression test suite. |
| CL-1 | En tant que زائر، je veux البحث دون تاريخ وصول، afin de vérifier أن الحقل مطلوب. VIS-02 · RG-06 | عدم الانتقال إلى صفحة التوفر لأن تاريخ الوصول مطلوب. | Pass Server responses
Hygiene of related pages: #2, #3, #5, #6, #7, #8, #9, #10, #11, #12 | Keep this case in the regression test suite. |
| CL-2 | En tant que زائر، je veux إدخال مغادرة قبل الوصول، afin de vérifier رفض التواريخ غير المنطقية. VIS-02 · RG-18 | رفض البحث لأن تاريخ المغادرة قبل تاريخ الوصول. | Pass Hygiene of related pages: #2, #3, #5, #6, #7, #8, #9, #10, #11, #12 | Keep this case in the regression test suite. |
| CL-3 | En tant que زائر، je veux إدخال صفر بالغين، afin de vérifier الحد الأدنى للبالغين. VIS-02 · RG-06 | رفض القيمة 0 لأن الحد الأدنى للبالغين هو 1. | Pass Server responses
Hygiene of related pages: #2, #3, #5, #6, #7, #8, #9, #10, #11, #12 | Keep this case in the regression test suite. |
| CL-4 | En tant que زائر، je veux إدخال خمسة بالغين، afin de vérifier الحد الأقصى للبالغين. VIS-02 · RG-06 | رفض القيمة 5 لأن الحد الأقصى للبالغين هو 4. | Pass Hygiene of related pages: #2, #3, #5, #6, #7, #8, #9, #10, #11, #12 | Keep this case in the regression test suite. |
| CL-5 | En tant que زائر، je veux إدخال أربعة أطفال، afin de vérifier الحد الأقصى للأطفال. VIS-02 · RG-07 | رفض القيمة 4 لأن الحد الأقصى للأطفال هو 3. | Pass Hygiene of related pages: #2, #3, #5, #6, #7, #8, #9, #10, #11, #12 | Keep this case in the regression test suite. |
| CL-6 | En tant que نزيل، je veux تسجيل الدخول بكلمة مرور خاطئة، afin de vérifier رفض بيانات الاعتماد الخاطئة. CPT-01 · RG-15 | رفض تسجيل الدخول والبقاء في صفحة Connexion. | Pass Server responses
| Keep this case in the regression test suite. |
| CL-7 | En tant que زائر، je veux إرسال نموذج فارغ، afin de vérifier إلزامية الحقول. CLI-07 · RG-13 · RG-14 | عدم إرسال الرسالة لأن الاسم والبريد والرسالة مطلوبة. | Pass Hygiene of related pages: #4 | Keep this case in the regression test suite. |
| CL-8 | En tant que زائر، je veux إدخال بريد غير صحيح، afin de vérifier رفض الصيغة الخاطئة. CLI-07 · RG-13 | رفض الإرسال لأن صيغة البريد الإلكتروني غير صحيحة. | Not playable not played: element not found: input[type=text] — to be confirmed Hygiene of related pages: #4 | Remove the blocker (not played: element not found: input[type=text] — to be confirmed), then replay. |
| CL-9 | En tant que زائر، je veux إرسال رسالة بأحرف خاصة، afin de vérifier قبول المحتوى عند الحد الأقصى. CLI-07 · RG-14 | قبول الأحرف الخاصة والرموز دون خطأ في الإرسال. | Not playable not played: element not found: input[type=text] — to be confirmed Hygiene of related pages: #4 | Remove the blocker (not played: element not found: input[type=text] — to be confirmed), then replay. |
| CL-10 | En tant que زائر، je veux قراءة الأسئلة الشائعة، afin de معرفة سياسة الدفع والإلغاء. VIS-01 · RG-09 · RG-11 | عرض عناوين الأسئلة فقط دون أجوبة، فلا يمكن التحقق من سياسة الإلغاء أو الرمز. | Pass Hygiene of related pages: #16 | Keep this case in the regression test suite. |
| CN-2 | بصفتي نزيلاً مسجلاً، أريد حجز غرفة أطلس لليلتين مع رمز RIAD10، لأدفع عربوناً محسوباً على المجموع المخفّض. الحجز والدفع الإلكتروني · رمز RIAD10 = خصم 10% على الإقامة فقط · ضريبة الإقامة لا تُخفَّض أبداً · العربون 30% يُحسب على المجموع المخفّض شامل الضريبة | ظهور تأكيد الحجز مع رقم الحجز والمبلغ 522 MAD بعد الدفع المحاكى. | Pass Server responses
Hygiene of related pages: no technical finding on these pages | Keep this case in the regression test suite. |
| CS-20 | بصفتي نزيلاً مسجلاً، أريد حجز جناح الكتبية لليلتين، لأتحقق من صحة حساب العربون والرصيد. الحجز والدفع الإلكتروني · العربون 30% من المجموع شامل الضريبة | المبالغ معروضة صحيحة: 3720 إجمالي، 1116 عربون، 2604 رصيد. | Pass Server responses
Hygiene of related pages: no technical finding on these pages | Keep this case in the regression test suite. |
| CS-21 | بصفتي نزيلاً مسجلاً، أريد حجز غرفة النخيل لليلتين، لأتأكد من أن العربون الأدنى محسوب بدقة. الحجز والدفع الإلكتروني · العربون 30% من المجموع شامل الضريبة | المبالغ معروضة صحيحة: 1620 إجمالي، 486 عربون، 1134 رصيد. | Pass Server responses
Hygiene of related pages: no technical finding on these pages | Keep this case in the regression test suite. |
| CS-22 | بصفتي نزيلاً مسجلاً، أريد حجز غرفة ماجوريل لليلتين مع رمز RIAD10، لأدفع عربوناً على المجموع المخفّض. الحجز والدفع الإلكتروني · رمز RIAD10 = خصم 10% على الإقامة فقط · ضريبة الإقامة لا تُخفَّض أبداً | العربون بعد الخصم = 684 MAD والضريبة 120 MAD غير مخفّضة. | Inconclusive — to be confirmed expected text missing: « 684 MAD » (page: « Riad Dar Zitoun Accueil Disponibilités Avis FAQ Contact Mes réservations EN Déconnexion Majorelle Vos coordonnées Nom complet E-mail Téléphone Code promo Appliq ») Server responses
Hygiene of related pages: no technical finding on these pages | Have the business confirm the expected result, then replay. |
| CL-20 | بصفتي نزيلاً مسجلاً، أريد الدفع دون تعبئة بياناتي، لأرى إن كان النظام يمنع الحجز الناقص. الحجز والدفع الإلكتروني · الاسم والبريد الإلكتروني مطلوبان | لا يتم تأكيد الحجز ويبقى المستخدم في صفحة الحجز. | Pass payment in test mode (provider: simulation) Server responses
Hygiene of related pages: no technical finding on these pages | Keep this case in the regression test suite. |
| CL-21 | بصفتي نزيلاً مسجلاً، أريد الدفع ببريد إلكتروني خاطئ، لأرى إن كان النظام يرفض الصيغة. الحجز والدفع الإلكتروني · البريد الإلكتروني يجب أن يكون بصيغة صحيحة | رفض البريد غير الصالح وعدم تأكيد الحجز. | Pass payment in test mode (provider: simulation) Server responses
Hygiene of related pages: no technical finding on these pages | Keep this case in the regression test suite. |
| CL-22 | بصفتي نزيلاً مسجلاً، أريد تطبيق رمز خصم خاطئ، لأرى إن كان النظام يرفضه دون تغيير المبلغ. الحجز والدفع الإلكتروني · رمز RIAD10 هو الرمز الصالح الوحيد | الرمز الخاطئ لا يغيّر المجموع ولا العربون. | Pass Server responses
Hygiene of related pages: no technical finding on these pages | Keep this case in the regression test suite. |
| CL-23 | بصفتي نزيلاً مسجلاً، أريد الدفع دون رقم بطاقة، لأرى إن كان النظام يمنع تأكيد الحجز. الحجز والدفع الإلكتروني · رقم البطاقة مطلوب للدفع المحاكى | لا يتم تأكيد الحجز دون رقم بطاقة. | Pass payment in test mode (provider: simulation) Server responses
Hygiene of related pages: no technical finding on these pages | Keep this case in the regression test suite. |
Technical hygiene
Acceptance test of riad-connect-hub.lovable.app: 17 findings, 9 fixes to make
The test of riad-connect-hub.lovable.app found 17 issues, 2 of them critical or major (S1, S2), which come down to 9 fixes. Fix first: Sign-in pages can be framed by another site (clickjacking), then Form fields without a label.
17 problems found, 2 to fix first.
Fix these first
- One cause → one fixSign-in pages can be framed by another site (clickjacking): 3 findings, one fix
Cause: Same "Sign-in pages can be framed by another site (clickjacking)" defect repeated: probably one shared component or template.
Single fix: Send the Content-Security-Policy: frame-ancestors 'none' header (and X-Frame-Options: DENY).
- #1MajorSign-in pages can be framed by another site (clickjacking) — /auth (Chromium (Chrome's engine))
Why first: A third-party site can hijack clicks on the sign-in page: customer accounts exposed and trust lost. Effort : low
Page: https://riad-connect-hub.lovable.app/auth
Observed: Encadrables : /auth
Technical detail
Original title: Pages de connexion affichables dans un autre site (clickjacking)
Expected: Ces pages refusent d'être affichées dans un cadre étranger
Recommended fix: Envoyer Content-Security-Policy: frame-ancestors 'none' (et X-Frame-Options: DENY).
- #2MinorSecurity headers missing — / (desktop · Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/
Observed: Manquants : Content-Security-Policy, Permissions-Policy
Technical detail
Original title: En-têtes de sécurité absents sur riad-connect-hub.lovable.app
Expected: En-têtes de sécurité présents
Recommended fix: Les ajouter dans la configuration de l'hébergeur (fichier _headers Netlify, vercel.json...).
- #3NoteSecurity headers missing — / (Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/
Observed: Cross-Origin-Opener-Policy: absent
Technical detail
Original title: Cross-Origin-Opener-Policy absente : une fenêtre ouverte par un autre site garde un lien vers la vôtre
Expected: Cross-Origin-Opener-Policy: same-origin (ou same-origin-allow-popups si des fenêtres de paiement/connexion sont utilisées)
Recommended fix: Ajouter Cross-Origin-Opener-Policy: same-origin-allow-popups, puis same-origin si aucun parcours n'en souffre.
- #4MajorForm fields without a label — /contact (Chromium (Chrome's engine))
Why first: Some visitors (keyboard users, visually impaired) cannot finish: these are lost bookings, and accessibility is becoming a legal duty in several markets. Effort : low
Page: https://riad-connect-hub.lovable.app/contact
Observed: input[maxlength="100"] Form elements must have labels; input[maxlength="100"] Form elements must have labels
Technical detail
Original title: Accessibilité : champ-sans-libelle (label) (2 occurrence(s) sur 1 page(s)) — ordinateur, téléphone
Expected: Conforme WCAG 2.2 AA — WCAG 2.2 : 4.1.2 Nom, rôle et valeur (A), 1.3.1 Information et relations (A) · RGAA 4.1 : 11.1 Champ de formulaire avec étiquette
Recommended fix: axe-core (moteur de référence) : corriger chaque élément cité.
- One cause → one fixS3 issue — /: 2 findings, one fix
Cause: Same "S3 issue — /" defect repeated: probably one shared component or template.
Single fix: Fix it once in the shared component or template, then re-check every listed page.
- #5MinorS3 issue — / (Chromium (Chrome's engine))
Why first: These points do not block the journey but are worth fixing. Effort : medium
Page: https://riad-connect-hub.lovable.app/
Technical detail
Original title: Aucun bandeau de consentement aux cookies détecté sur riad-connect-hub.lovable.app
Expected: Un bandeau qui demande l'accord (accepter / refuser / personnaliser)
Observed: Ni outil de consentement connu, ni texte « cookies » avec un bouton d'acceptation, alors que des traceurs ou cookies de mesure sont présents.
Recommended fix: Le RGPD et la directive « ePrivacy » (en France, les règles de la CNIL ; au Maroc, la loi 09-08 et la CNDP) demandent l'accord du visiteur AVANT de déposer un cookie ou d'appeler un service qui sert à mesurer l'audience ou à faire de la publicité. Les cookies strictement nécessaires (session, panier, langue) n'ont pas besoin d'accord. Installez un outil de gestion du consentement et bloquez les traceurs tant que le visiteur n'a pas choisi.
- #6MinorS3 issue — / (Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/
Technical detail
Original title: Cookies de mesure ou de publicité déposés avant tout consentement sur riad-connect-hub.lovable.app
Expected: Seuls des cookies techniques (session, panier, langue) avant l'accord
Observed: Déposés sans accord : __cf_bm (supabase.co, tiers)
Recommended fix: Le RGPD et la directive « ePrivacy » (en France, les règles de la CNIL ; au Maroc, la loi 09-08 et la CNDP) demandent l'accord du visiteur AVANT de déposer un cookie ou d'appeler un service qui sert à mesurer l'audience ou à faire de la publicité. Les cookies strictement nécessaires (session, panier, langue) n'ont pas besoin d'accord. Déposez ces cookies seulement après l'accord, et proposez « Refuser » aussi simplement que « Accepter ».
- One cause → one fixPages and images too heavy: 5 findings, one fix
Cause: Images and resources are served too heavy, probably without compression or proper sizing.
Single fix: Compress and resize images (WebP or AVIF, srcset) once in the publishing pipeline.
- #7MinorPages and images too heavy — / (Chromium (Chrome's engine))
Why first: A slow page makes visitors leave before they even see the offer, especially on phones: fewer bookings. Effort : medium
Page: https://riad-connect-hub.lovable.app/
Technical detail
Original title: 1 image(s) trop lourde(s) pour leur taille d'affichage
Expected: Images < 300 Ko, dimensionnées pour l'affichage
Observed: ttps://riad-connect-hub.lovable.app/assets/hero-O0-s_7b9.jpg : 461 Ko, 1920 px affichés en 1440 px
Recommended fix: SVG ou WebP pour le logo ; images responsives (srcset, AVIF/WebP) ; préchargement de l'image principale.
- #8MinorSlow loading (6547 ms) — / (phone · Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/
Expected: Chargement < 3000 ms
Observed: / 6547 ms
Technical detail
Original title: Chargement lent (6547 ms) : / — téléphone uniquement
Recommended fix: Mesurer avec Lighthouse ; compresser les images, decouper le JavaScript, mettre en cache.
- #9MinorPages and images too heavy — / (Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/
Technical detail
Original title: Fichiers JavaScript lourds : 1 fichier(s) au-dessus de 500 Ko
Expected: Chaque fichier ≤ 500 Ko transférés
Observed: https://riad-connect-hub.lovable.app/assets/index-BYEaChBb.js (text/javascript) : 574 Ko décompressés (167 Ko transférés)
Recommended fix: Découper le JavaScript par page (code splitting), retirer les bibliothèques inutilisées (tree shaking), minifier et compresser (brotli) ; différer les scripts non essentiels (defer/async).
- #10MinorPages and images too heavy — / (Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/
Observed: https://riad-connect-hub.lovable.app/assets/hero-O0-s_7b9.jpg (image/jpeg) : 462 Ko
Technical detail
Original title: Images lourdes : 1 fichier(s) au-dessus de 300 Ko
Expected: Chaque fichier ≤ 300 Ko transférés
Recommended fix: Convertir en WebP ou AVIF, redimensionner à la taille d'affichage (srcset), viser moins de 200 Ko par image ; charger en différé celles qui sont sous la ligne de flottaison.
- #11MinorSlow loading (4400 ms, 4346 ms) — / (Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/
Technical detail
Original title: Lent sur téléphone en réseau lent : LCP 4400 ms, chargement 4346 ms (non confirmé)
Expected: LCP ≤ 4000 ms et chargement ≤ 10000 ms dans ces conditions (profil mobile de Lighthouse)
Observed: LCP 4400 ms, chargement 4346 ms (2 mesure(s), non confirmé)
Recommended fix: Alléger d'abord l'élément principal affiché (image ou titre) : image compressée et préchargée (rel=preload), CSS critique en ligne, JavaScript différé ; servir les fichiers depuis un CDN proche des visiteurs.
- One cause → one fixNo link to the privacy policy: 2 findings, one fix
Cause: Same "No link to the privacy policy" defect repeated: probably one shared component or template.
Single fix: Fix it once in the shared component or template, then re-check every listed page.
- #12MinorNo link to the privacy policy — / (Chromium (Chrome's engine))
Why first: This information is usually mandatory for a site that sells online; its absence exposes the publisher and reassures buyers less. Effort : low
Page: https://riad-connect-hub.lovable.app/
Technical detail
Original title: Pas de lien vers la politique de confidentialité
Expected: Un lien vers la politique de confidentialité (RGPD / loi 09-08)
Observed: Aucun lien ni texte « confidentialité / privacy / données personnelles » trouvé sur l'accueil.
Recommended fix: Publier une politique de confidentialité et la lier depuis le pied de page.
- #13MinorNo legal notice — / (Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/
Technical detail
Original title: Pas de mentions légales
Expected: Des mentions légales (éditeur, hébergeur, contact)
Observed: Aucun lien « mentions légales / CGU / CGV / legal » trouvé sur l'accueil.
Recommended fix: Ajouter une page de mentions légales liée depuis le pied de page.
The rest
- #14MinorSign-in pages open to search engines — /auth (Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/auth
Observed: Indexables : /auth ; robots.txt : User-agent: Googlebot Allow: / User-agent: Bingbot Allow: / User-agent: Twitterbot Allow: / User-agent: facebookexter
Technical detail
Original title: Pages de connexion ouvertes aux moteurs de recherche
Expected: noindex et Disallow sur les espaces privés
Recommended fix: Ajouter <meta name=robots content=noindex> et Disallow: /admin, /vendeur (ou équivalents).
- #15NoteNo security.txt file — /.well-known/security.txt (Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/.well-known/security.txt
Observed: HTTP 404
Technical detail
Original title: Pas de /.well-known/security.txt
Expected: Un fichier security.txt indiquant comment signaler une faille (RFC 9116)
Recommended fix: Ajouter /.well-known/security.txt avec un contact de sécurité.
- #16NoteHeading levels skipped — /faq (Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/faq
Observed: .border-b:nth-child(1) > h3 Heading levels should only increase by one; .border-b:nth-child(1) > h3 Heading levels should only increase by one
Technical detail
Original title: Accessibilité : ordre-titres (heading-order) (2 occurrence(s) sur 1 page(s)) — ordinateur, téléphone
Expected: Conforme WCAG 2.2 AA — RGAA 4.1 : 9.1 Hiérarchie des titres
Recommended fix: axe-core (moteur de référence) : corriger chaque élément cité.
- #17NoteSearch optimisation to improve — / (Chromium (Chrome's engine))
Page: https://riad-connect-hub.lovable.app/
Technical detail
Original title: Référencement : 1 problème(s) sur riad-connect-hub.lovable.app
Expected: Canonical propre à chaque langue, og:image, titres distincts
Observed: sans canonical : /; /auth; /contact; /faq (+3)
Recommended fix: Canonical auto-référent par langue, og:image/og:title partout, titre et canonical sur chaque page.
By theme
- Loading speed — A slow page makes visitors leave before they even see the offer, especially on phones: fewer bookings.
5 finding(s), 0 critical or major; 1 fix(es) cover them. #7, #8, #9, #10, #11 - Security and trust — A weakness exposes customer accounts and data; lost trust costs bookings and puts the publisher at risk.
4 finding(s), 1 critical or major; 2 fix(es) cover them. #1, #2, #3, #15 - Legal obligations — This information is usually mandatory for a site that sells online; its absence exposes the publisher and reassures buyers less.
4 finding(s), 0 critical or major; 2 fix(es) cover them. #5, #6, #12, #13 - Accessibility — Some visitors (keyboard users, visually impaired) cannot finish: these are lost bookings, and accessibility is becoming a legal duty in several markets.
2 finding(s), 1 critical or major; 2 fix(es) cover them. #4, #16 - Search visibility — Search brings visitors for free; poorly described or poorly indexed pages bring fewer.
2 finding(s), 0 critical or major; 2 fix(es) cover them. #14, #17
Next steps
- Fix the 5 "fix first" points, in order.
- Apply the 4 grouped fixes: each one settles several findings at once.
- Then handle the remaining minor findings, section by section.
- Run a new Avalyz test to verify the fixes.
- Extend the scope to the 5 untested area(s) (for example with a test account).
Coverage limits
- Accessibility : partial
Technical detail
axe-core sur chaque page (bureau et téléphone) + focus clavier ; critères WCAG 2.2 et RGAA 4.1 cités dans les constats ; compléments navigateur : 7 page(s) (7 pages lues sur 7 visitées (mode complet)), contraste mesuré sur 14 texte(s) (clair, et sombre sur 7 page(s)), 280 tabulation(s) (119 élément(s) vérifiés pour le focus visible, 0 fenêtre(s) modale(s) cachée(s) parcourue(s) sans clic, 0 piège(s)), noms accessibles vérifiés sur 7 page(s), 0 PDF lié(s) non audité(s)
- Visual regression : not tested
Technical detail
Aucune reference approuvee : approuve un passage comme reference.
- Journeys by role : partial
Technical detail
2 pages, 33 actions relevées, 0 action jouée (lecture seule) — rôle « [email] »
- Business logic : partial
Technical detail
logique métier décrite par le client jouée par les scénarios métier (voir la ligne « Scénarios métier ») ; aucune idée « Depuis ton idée » à rapprocher
- API / integration : partial
Technical detail
pas de spécification OpenAPI trouvée (/openapi.json, /swagger.json, /api-docs, /api/openapi.json…) ; sondes GET : /api → 406, /api/health → 406, /graphql → 406 — importe le contrat de l'API pour des cas par opération ; spec reconstituée depuis le navigateur (7 page(s) — 7 pages lues sur 7 visitées (mode complet), 10 appel(s) observé(s), aucune requête ajoutée) : 1 point(s) d'entrée — POST /__l5e/trackevents [?] ; 0 constat(s)
- Data security : not tested
Technical detail
aucune base détectée (Supabase : clé anon dans la page ; Firebase : apiKey + databaseURL) — le contrôle RLS demande un accès à la base ou une clé publique visible
- Business scenarios : partial
Technical detail
19 cas conçus (1 nominal, 8 secondaires, 10 limites) ; joués : 19 (mode complet : CN-1, CS-1, CS-2, CS-3, CS-4, CS-5, CS-6, CU-1, CU-2, CL-1, CL-2, CL-3, CL-4, CL-5, CL-6, CL-7, CL-8, CL-9, CL-10) ; 14 réussis / 0 échecs / 0 bloqués / 4 non jouables ; 1 attendu(s) deviné(s) par le BA non vérifié(s) : à confirmer par le client (non déclarés) — CS-6 ; CS-4 non joué : élément introuvable : input[type=text] — à confirmer ; CU-1 non joué : élément introuvable : text=Voir les disponibilités — à confirmer ; CL-8 non joué : élément introuvable : input[type=text] — à confirmer ; CL-9 non joué : élément
- Static analysis : not tested
Technical detail
code source non fourni (champ « URL du code source » du panneau) ou mode rapide
- Unit tests : not tested
Technical detail
code source non fourni (champ « URL du code source » du panneau) ou mode rapide
- Components : not tested
Technical detail
code source non fourni (champ « URL du code source » du panneau) ou mode rapide
- Another area : partial
Technical detail
Niveaux
6/13 exécutés, 3 partiels, 4 non testés (sur 13 niveaux du plan) ; demandés : 6/10 faits
- Another area : partial
Technical detail
À vérifier (sans constat)
1 point(s) non mesuré(s), sans constat : Accessibilité : contraste à vérifier à la main — fond non uni (image, dégradé, élément superposé ou transparence) : 17 sélecteur(s) sur 7 page(s) — .tracking-\[0\.25em\] : Element's background color could not be determined due to a background gradient — 1 page(s) : / ; h1 : Element's background color could not be determined due to a background gradient — 1 page(s) : / ; .max-w-xl : Element's background color could not be determined due to a bac
Test timings
- 6695 msplan du site (0 adresse(s) à visiter en plus)
- 13525 mscréation des comptes de recette (1/1 créé(s))
- 2201 msnavigation bureau p1 (chargement 569, réseau calme 1616, relevés 16)
- 5979 msa11y bureau p1
- 253 msfocus clavier bureau p1
- 2204 mscapture bureau p1
- 1154 msnavigation bureau p2 (chargement 486, réseau calme 655, relevés 13)
- 604 msa11y bureau p2
- 181 mscapture bureau p2
- 1516 msnavigation bureau p3 (chargement 560, réseau calme 938, relevés 18)
- 754 msa11y bureau p3
- 127 mscapture bureau p3
- 1104 msnavigation bureau p4 (chargement 422, réseau calme 667, relevés 15)
- 661 msa11y bureau p4
- 109 mscapture bureau p4
- 1147 msnavigation bureau p5 (chargement 393, réseau calme 742, relevés 12)
- 787 msa11y bureau p5
- 117 mscapture bureau p5
- 1113 msnavigation bureau p6 (chargement 416, réseau calme 683, relevés 14)
- 745 msa11y bureau p6
- 129 mscapture bureau p6
- 2964 msconnexion avec le compte de test (client) (réussie)
- 1342 msnavigation bureau p1 (chargement 434, réseau calme 887, relevés 21)
- 631 msa11y bureau p1
- 87 mscapture bureau p1
- 1680 msnavigation bureau p2 (chargement 527, réseau calme 1135, relevés 18)
- 778 msa11y bureau p2
- 1787 mscapture bureau p2
- 477 mssondes (robots.txt, pages inexistantes, paramètres, limites)
- 91 msliens (0 lien(s) vérifié(s) (plafond 50), 0 fil(s) réellement utilisé(s) sur 4, délai 8000 ms par lien, périmètre 2 ms, requêtes 0 ms, lien le plus lent 0 ms, 0 non vérifié(s) (délai ou réseau), 0 erreur(s) HTTP)
- 8794 msrgpd (visite en navigateur neuf + capture)
- 7317 msnavigation telephone p1 (chargement 6554, réseau calme 747, relevés 16)
- 5754 msa11y telephone p1
- 817 mscapture telephone p1
- 1112 msnavigation telephone p2 (chargement 466, réseau calme 632, relevés 14)
- 500 msa11y telephone p2
- 55 mscapture telephone p2
- 1302 msnavigation telephone p3 (chargement 395, réseau calme 891, relevés 16)
- 550 msa11y telephone p3
- 65 mscapture telephone p3
Reasoned GO / NO-GO decision
Technical detail
الموقع يعرض الغرف الخمس بأسعارها ويسمح بالبحث عن التوفر حسب التواريخ وعدد البالغين والأطفال، وقد نجحت كل حالات البحث والتحقق من المدخلات (CN-1، CS-1، CS-2، CS-3، CL-1 إلى CL-5). لكن المسار الذي يُدخل المال فعلاً (اختيار الغرفة، إنشاء الحجز، دفع العربون 30%، الإلغاء) لم يُغطَّ بالكامل: CLI-01 وCLI-03 وCLI-05 غير مغطاة، وCLI-02 محجوب، وحالة التحقق من العربون مع رمز RIAD10 (CS-22) بقيت «à confirmer» بعد إعادة اللعب (I1: غير حاسم). لذلك لا يمكن إصدار GO، والموافقة مشروطة بإتمام اختبار مسار الحجز والدفع والإلغاء من البداية إلى النهاية.
Reasons (evidence)
- 21 cases pass out of 27 played; 0 fail; 2 inconclusive; 4 blocked.
- Technical hygiene: 0 critical, 2 major, 15 minor finding(s).
Expert opinion
Decision: GO WITH CONDITIONS
Arguments
- see the technical detail (strong)
evidence : CN-1, CS-1, CS-2, CL-1, CL-2, CL-3, CL-4, CL-5 - see the technical detail (medium)
evidence : CS-3, processus:VIS-01, https://riad-connect-hub.lovable.app/ - see the technical detail (strong)
evidence : processus:CLI-01, processus:CLI-02, processus:CLI-03, CU-1, I2, I7 - see the technical detail (strong)
evidence : CS-22, I1, CS-20, I4, CS-21, I5 - see the technical detail (strong)
evidence : processus:CLI-05, https://riad-connect-hub.lovable.app/my- - see the technical detail (medium)
evidence : CS-6, I3, processus:CLI-04 - see the technical detail (medium)
evidence : CL-20, CL-21, CL-22, CL-23 - see the technical detail (medium)
evidence : processus:MGR-02, processus:MGR-03, processus:MGR-04 - see the technical detail (medium)
evidence : CS-4, CL-8, CL-9, I8, processus:CLI-07 - see the technical detail (weak)
evidence : couverture:Securite applicative, couverture:Securite des donnees
Residual risks
- see the technical detail
- see the technical detail
- see the technical detail
- see the technical detail
- see the technical detail
- see the technical detail
- see the technical detail
Conditions
- see the technical detail
- see the technical detail
- see the technical detail
- see the technical detail
- see the technical detail
- see the technical detail
Scope of the opinion
- tested : see the technical detail
- not tested : see the technical detail
Confidence: medium
Technical detail
Arguments: البحث عن التوفر والتحقق من المدخلات يعملان بشكل صحيح على الحالات المختبرة (تواريخ ناقصة أو معكوسة، صفر بالغين، تجاوز الحد الأقصى للبالغين والأطفال).
Arguments: عرض الغرف الخمس وأسعارها من الصفحة الرئيسية يعمل، ما يدعم وضوح العرض التجاري.
Arguments: المسار الذي يُدخل المال (اختيار الغرفة، إنشاء الحجز، دفع العربون 30%) غير مُغطّى أو محجوب، فلا يمكن تأكيد سلامة حساب العربون والخصم على المسار الكامل.
Arguments: التحقق من مبلغ العربون مع رمز RIAD10 (CS-22) بقي «à confirmer» وإعادة اللعب (I1) كانت غير حاسمة، بينما نجحت حالات الحساب بدون رمز (CS-20، CS-21) وأُعيد لعبها بنجاح.
Arguments: الإلغاء حتى 48 ساعة قبل الوصول، وهو وعد مكتوب للعميل، لم يُختبر فعليًا لعدم وجود حجز قائم ولا زر إلغاء ظاهر.
Arguments: صفحة «حجوزاتي» تعمل بعد تسجيل الدخول (CS-6 نجح في إعادتَي لعب)، ما يدعم متابعة الحجز من طرف النزيل.
Arguments: التحقق من المدخلات في صفحة الحجز يعمل على الحالات المختبرة (اسم وبريد فارغان، بريد غير صحيح، رمز خصم غير صحيح، بطاقة غائبة).
Arguments: واجهات الإدارة (حجب التواريخ، إدارة الغرف والأسعار، معالجة رسائل الاتصال) غير موجودة في الموقع، فلا يمكن اختبارها من الخارج.
Arguments: نموذج الاتصال لم يُختبر فعليًا: CS-4 وCL-8 وCL-9 غير قابلة للعب (عنصر الإدخال غير موجود) وإعادة اللعب (I8) كانت غير حاسمة.
Arguments: لا توجد ثغرات أمنية مكتشفة في الملفات الحساسة المسبورة (11 ملفًا، 0 مكشوف)، وهذا لا يغطي أمن البيانات لعدم وجود قاعدة بيانات مكتشفة.
Residual risks: خطأ محتمل في حساب العربون أو تطبيق رمز RIAD10 على المسار الكامل لم يُتحقق منه (CS-22 غير حاسم، I1).
Residual risks: عدم إمكانية تأكيد أن الإلغاء حتى 48 ساعة يعمل فعليًا (CLI-05 غير مغطى).
Residual risks: عدم إمكانية تأكيد أن الحجز يُنشئ رقم حجز ويُرسل تأكيدًا للنزيل (CLI-02 محجوب، I2).
Residual risks: عدم إمكانية تأكيد منع الحجز المزدوج على تواريخ متداخلة (RG-17 خارج نطاق الاختبار).
Residual risks: نموذج الاتصال قد يكون معطلاً أو غير قابل للاستخدام (CS-4، CL-8، CL-9 غير قابلة للعب).
Residual risks: غياب واجهات الإدارة يعني عدم إمكانية تأكيد تسيير التقويم وحجب التواريخ والأسعار من الخارج.
Residual risks: أمن البيانات غير مُختبر لعدم اكتشاف قاعدة بيانات.
Conditions: اختبار مسار الحجز الكامل من البداية إلى النهاية: اختيار الغرفة (CLI-01)، إنشاء الحجز والملخص (CLI-02)، دفع العربون 30% (CLI-03)، والحصول على رقم الحجز.
Conditions: إعادة اختبار CS-22 (حساب العربون على غرفة ماجوريل مع رمز RIAD10) حتى نتيجة حاسمة، والتأكد من أن الخصم يُطبَّق على الإقامة فقط وأن العربون يُحسب على المجموع المخفّض شاملًا ضريبة الإقامة.
Conditions: اختبار الإلغاء فعليًا على حجز قائم والتحقق من احترام شرط 48 ساعة قبل الوصول (CLI-05).
Conditions: اختبار منع الحجز المزدوج على تواريخ متداخلة (RG-17).
Conditions: إعادة اختبار نموذج الاتصال (CS-4، CL-8، CL-9) بعد إصلاح أو تحديد عنصر الإدخال، والتأكد من وصول الرسائل إلى المدير.
Conditions: توفير واجهات الإدارة واختبار MGR-02 وMGR-03 وMGR-04 (حجب التواريخ، إدارة الغرف والأسعار، معالجة رسائل الاتصال).
tested: تصفح الموقع والتعرف على الغرف (VIS-01), البحث عن التوفر (VIS-02), متابعة الحجوزات (CLI-04، CS-6), ترك تقييم (CLI-06، CS-5), إنشاء حساب وتسجيل الدخول (CPT-01، CL-6), تسيير تقويم الحجوزات (MGR-01، CU-2), التحقق من المدخلات في البحث والحجز (CL-1 إلى CL-5، CL-20 إلى CL-23), الأداء (Core Web Vitals على 5 صفحات), الأمان التطبيقي (11 ملفًا حساسًا), الامتثال (سياسة الخصوصية، الإشعارات القانونية), المرونة (بدون خدمة عاملة), من البداية إلى النهاية حسب الدور (صفحتان متصلتان)
not tested: اختيار الغرفة (CLI-01), إنشاء الحجز والملخص (CLI-02، محجوب), دفع العربون 30% (CLI-03), إلغاء الحجز (CLI-05), التواصل مع الرياض (CLI-07، CS-4/CL-8/CL-9 غير قابلة للعب), حجب التواريخ (MGR-02), إدارة الغرف والأسعار (MGR-03), معالجة رسائل الاتصال (MGR-04), إنشاء حساب جديد وبريد التأكيد (CPT-01، RG-16), منع الحجز المزدوج على تواريخ متداخلة (RG-17), أمن البيانات (لا قاعدة بيانات مكتشفة), واجهة API (لا مواصفات OpenAPI), CLI-04 متابعة الحجوزات : cas conçus, non joués dans ce mode
Avalyz proves what it saw, it does not guarantee the rest: what was not tested is not covered. Without a test account, signed-in pages are not explored; with a test account, signing in is the only form submitted.
The full account report (journeys, evidence, ISO 29119 format) is for accounts only.
7/7 pages
Exemple de rapport
Application fictive créée pour la démonstration : aucune donnée réelle. Ton rapport suivra la même structure.
Ce qui casse dans ton app
Riad Dar Zitoun
riad-connect-hub.lovable.app
Rapport de synthèse
Décision
Détail technique
الموقع يعرض الغرف الخمس بأسعارها ويسمح بالبحث عن التوفر حسب التواريخ وعدد البالغين والأطفال، وقد نجحت كل حالات البحث والتحقق من المدخلات (CN-1، CS-1، CS-2، CS-3، CL-1 إلى CL-5). لكن المسار الذي يُدخل المال فعلاً (اختيار الغرفة، إنشاء الحجز، دفع العربون 30%، الإلغاء) لم يُغطَّ بالكامل: CLI-01 وCLI-03 وCLI-05 غير مغطاة، وCLI-02 محجوب، وحالة التحقق من العربون مع رمز RIAD10 (CS-22) بقيت «à confirmer» بعد إعادة اللعب (I1: غير حاسم). لذلك لا يمكن إصدار GO، والموافقة مشروطة بإتمام اختبار مسار الحجز والدفع والإلغاء من البداية إلى النهاية.
Le test de riad-connect-hub.lovable.app relève 17 constats, dont 2 majeurs ou critiques (S1, S2), qui se ramènent à 9 correctifs. À traiter d'abord : Pages de connexion affichables dans un autre site (clickjacking), puis Champs de formulaire sans libellé.
Chiffres clés
À corriger d'abord
- #1MajeurPages de connexion affichables dans un autre site (clickjacking)
Un site tiers peut piéger les clics sur la page de connexion : comptes clients exposés et confiance perdue. - #2MineurEn-têtes de sécurité absents sur riad-connect-hub.lovable.app
- #3RemarqueCross-Origin-Opener-Policy absente : une fenêtre ouverte par un autre site garde un lien vers la vôtre
- #4MajeurAccessibilité : champ-sans-libelle (label) (2 occurrence(s) sur 1 page(s)) — ordinateur, téléphone
Une partie des visiteurs (clavier, malvoyants) ne peut pas aller au bout : ce sont des réservations perdues, et l'accessibilité devient une obligation légale sur plusieurs marchés. - #5MineurAucun bandeau de consentement aux cookies détecté sur riad-connect-hub.lovable.app
Ces points ne bloquent pas le parcours mais méritent d'être traités.
Prochaines étapes
- Corriger les 5 points « à corriger d'abord », dans l'ordre.
- Appliquer les 4 correctifs groupés : chacun règle plusieurs constats à la fois.
- Traiter ensuite les constats mineurs restants, section par section.
- Relancer un test Avalyz pour vérifier les corrections.
Rapport détaillé
Notre compréhension du métier (à valider)
Concept
دار ضيافة (رياض) في الميدينة بمراكش تُدعى Riad Dar Zitoun، تضم خمس غرف حول فناء برتقال قرب جامع الكتبية. تتيح المنصة للمسافر البحث عن التوفر حسب التواريخ وعدد البالغين والأطفال ثم اختيار الغرفة والحجز، مع تقييمات وأسئلة شائعة واتصال.
Clients visés : المسافرون والنزلاء الباحثون عن إقامة في رياض بمراكش، بما في ذلك العائلات الصغيرة.
Chaîne de valeur
- جذب الزائرVIS-01, VIS-02
- التحويل إلى حجزCLI-01, CLI-02
- الدفع والتأكيدCLI-03, CLI-04
- الاستقبال والإقامةCLI-05
- ما بعد الإقامة والولاءCLI-06, CLI-07
- التسيير والماليةMGR-01, MGR-02, MGR-03, MGR-04
Business model
| Segments de clients | مسافرون ونزلاء يبحثون عن إقامة في رياض بمراكش، عائلات صغيرة (غرف من شخصين إلى 4). |
|---|---|
| Proposition de valeur | رياض هادئ بخمس غرف حول فناء برتقال قرب الكتبية، بأسعار ليلية واضحة بالدرهم. |
| Canaux | موقع ويب بالفرنسية مع مبدّل إلى الإنجليزية، صفحة اتصال، بريد وهاتف. |
| Sources de revenus | حجز الغرف بالليلة (750 إلى 1800 درهم)، عربون 30%، ضريبة إقامة 30 درهم/بالغ/ليلة. |
Organisation
- riad-connect-hub.lovable.app
- الفضاء العمومي (الموقع التعريفي)
- زائر VIS ★
- نزيل/مسافر CLI ★
- زائر VIS ★
- فضاء النزيل (حجوزاتي)
- فضاء المدير (لوحة التسيير) (annoncé, non vu)
- مدير (المسؤول الإداري الوحيد) MGR ★
- الفضاء العمومي (الموقع التعريفي)
Tableau des fonctions
| Fonction (profil) | Mission | Principales responsabilités | Retenu pour les tests |
|---|---|---|---|
| زائر VIS | اكتشاف الرياض والتحقق من التوفر قبل الحجز. |
| ★ oui |
| نزيل/مسافر CLI | حجز الغرفة وإتمام العربون ومتابعة إقامته. |
| ★ oui |
| مدير (المسؤول الإداري الوحيد) MGR | تسيير توفر الغرف والأسعار ومتابعة الحجوزات والرسائل. |
| ★ oui |
Domaines
Métier
- الحجز والإقامة VIS-01, VIS-02, CLI-01, CLI-02, CLI-04, CLI-05
- التواصل والتقييمات CLI-06, CLI-07
Support
- الدفع والمالية CLI-03
- الحساب والمصادقة CPT-01
- الإدارة والتسيير MGR-01, MGR-02, MGR-03, MGR-04
Cartographie des macro-processus et processus
| Macro-processus | Processus | Profil | Issues | Couverture |
|---|---|---|---|---|
| إدارة الحجز Métier · الحجز والإقامة | CLI-04 — متابعة الحجوزات | CLI | ✓ عرض الحجوزات, ✗ لا حجوزات مسجلة | non joué (CS-6) |
| CLI-05 — إلغاء الحجز | CLI | ✓ إلغاء مؤكد, ✗ رفض الإلغاء أقل من 48 ساعة | non testé | |
| جذب الزائر Métier · الحجز والإقامة | VIS-01 — تصفح الموقع والتعرف على الغرف | VIS | ✓ عرض الغرف والأسعار | testé : conforme (CS-3, CL-10) |
| VIS-02 — البحث عن التوفر | VIS | ✓ عرض صفحة التوفر, ✗ تواريخ غير صحيحة أو ناقصة, ✗ عدد ضيوف خارج الحدود | testé : conforme (CN-1, CS-1, CS-2, CL-1, CL-2, CL-3, CL-4, CL-5) | |
| حجز غرفة Métier · الحجز والإقامة | CLI-01 — اختيار الغرفة | CLI | ✓ الانتقال إلى الحجز, ✗ لا توفر على التواريخ المطلوبة | non testé |
| CLI-02 — إنشاء الحجز والملخص | CLI | ✓ ملخص صحيح مع العربون, ✗ رمز ترويجي غير صالح, ✗ تواريخ متداخلة مع حجز آخر | bloqué (CU-1) | |
| التقييم والولاء Métier · التواصل والتقييمات | CLI-06 — ترك تقييم | CLI | ✓ نشر التقييم, ✗ رفض لأن النزيل لم يقم سابقًا | testé : conforme (CS-5) |
| الدعم والتواصل Métier · التواصل والتقييمات | CLI-07 — التواصل مع الرياض | VIS | ✓ إرسال الرسالة, ✗ حقول مطلوبة ناقصة, ✗ تجاوز الحد الأقصى للأحرف | testé : conforme (CS-4, CL-7, CL-8, CL-9) |
| حجز غرفة Support · الدفع والمالية | CLI-03 — دفع العربون 30% | CLI | ✓ تأكيد الدفع ورقم الحجز, ✗ فشل الدفع المحاكى, ✗ انتهاء صلاحية الحجز | non testé |
| إدارة الحساب Support · الحساب والمصادقة | CPT-01 — إنشاء حساب وتسجيل الدخول | CLI | ✓ دخول ناجح, ✗ بيانات اعتماد خاطئة, ✗ كلمة مرور أقل من 6 أحرف | testé : conforme (CL-6) |
| تسيير الرياض Support · الإدارة والتسيير | MGR-01 — تسيير تقويم الحجوزات | MGR | ✓ عرض الحجز الجديد, ✗ حجز غير ظاهر | testé : conforme (CU-2) |
| MGR-02 — حجب التواريخ | MGR | ✓ تواريخ محجوبة, ✗ تعارض مع حجز قائم | non testé | |
| MGR-03 — إدارة الغرف والأسعار | MGR | ✓ سعر محدث, ✗ سعر غير صالح | non testé | |
| MGR-04 — معالجة رسائل الاتصال | MGR | ✓ رسالة معالجة, ✗ رسالة غير ظاهرة | non testé |
Règles de gestion clés par processus
| Processus | Règle de gestion | Source |
|---|---|---|
| VIS-01 — تصفح الموقع والتعرف على الغرف | RG-01 — سعر غرفة أطلس 900 درهم في الليلة لشخصين | lue sur le site : « Atlas 2 pers. Chambre intime aux tons ocre, vue sur le patio et ses orangers. 900 MAD / nuit » |
| RG-02 — سعر غرفة ماجوريل 1200 درهم في الليلة لثلاثة أشخاص | lue sur le site : « Majorelle 3 pers. Chambre lumineuse au bleu Majorelle, idéale pour une petite famille. 1 200 MAD / nuit » | |
| RG-03 — سعر جناح الكتبية 1800 درهم في الليلة لأربعة أشخاص | lue sur le site : « Suite Koutoubia 4 pers. Notre plus belle suite : salon privé, cheminée et vue sur les toits de la Médina. 1 800 MAD / nuit » | |
| RG-04 — سعر غرفة النخيل 750 درهم في الليلة لشخصين | lue sur le site : « Palmeraie 2 pers. Chambre douce et verdoyante, inspirée des jardins de la Palmeraie. 750 MAD / nuit » | |
| RG-05 — سعر غرفة منارة 1000 درهم في الليلة لشخصين | lue sur le site : « Menara 2 pers. Chambre élégante aux zelliges verts, ouverte sur la galerie. 1 000 MAD / nuit » | |
| VIS-02 — البحث عن التوفر | RG-01 — سعر غرفة أطلس 900 درهم في الليلة لشخصين | lue sur le site : « Atlas 2 pers. Chambre intime aux tons ocre, vue sur le patio et ses orangers. 900 MAD / nuit » |
| RG-02 — سعر غرفة ماجوريل 1200 درهم في الليلة لثلاثة أشخاص | lue sur le site : « Majorelle 3 pers. Chambre lumineuse au bleu Majorelle, idéale pour une petite famille. 1 200 MAD / nuit » | |
| RG-06 — الحد الأدنى للبالغين 1 والأقصى 4 | à confirmer | |
| RG-07 — الحد الأدنى للأطفال 0 والأقصى 3 | à confirmer | |
| CLI-01 — اختيار الغرفة | RG-06 — الحد الأدنى للبالغين 1 والأقصى 4 | à confirmer |
| RG-07 — الحد الأدنى للأطفال 0 والأقصى 3 | à confirmer | |
| CLI-02 — إنشاء الحجز والملخص | RG-06 — الحد الأدنى للبالغين 1 والأقصى 4 | à confirmer |
| RG-07 — الحد الأدنى للأطفال 0 والأقصى 3 | à confirmer | |
| RG-08 — ضريبة الإقامة 30 درهمًا لكل بالغ في الليلة | à confirmer | |
| RG-09 — رمز RIAD10 يمنح خصمًا 10% على الإقامة فقط دون ضريبة الإقامة | à confirmer | |
| RG-10 — العربون 30% يُحسب على المجموع بعد الخصم مع احتساب الضريبة | à confirmer | |
| CLI-03 — دفع العربون 30% | RG-10 — العربون 30% يُحسب على المجموع بعد الخصم مع احتساب الضريبة | à confirmer |
| CLI-04 — متابعة الحجوزات | RG-11 — الإلغاء ممكن حتى 48 ساعة قبل الوصول | lue sur le site : « Annulation possible jusqu'à 48 h avant l'arrivée. » |
| CLI-05 — إلغاء الحجز | RG-11 — الإلغاء ممكن حتى 48 ساعة قبل الوصول | lue sur le site : « Annulation possible jusqu'à 48 h avant l'arrivée. » |
| CLI-06 — ترك تقييم | RG-12 — نشر التقييمات مقصور على النزلاء الذين أقاموا في الرياض | lue sur le site : « Seuls les hôtes ayant séjourné au riad peuvent publier un avis. » |
| CLI-07 — التواصل مع الرياض | RG-13 — حقل البريد الإلكتروني مطلوب في نموذج الاتصال بحد أقصى 255 حرفًا | à confirmer |
| RG-14 — حقل الرسالة مطلوب في نموذج الاتصال بحد أقصى 2000 حرف | à confirmer | |
| CPT-01 — إنشاء حساب وتسجيل الدخول | RG-15 — كلمة المرور يجب ألا تقل عن 6 أحرف عند تسجيل الدخول | lue sur le site : « Mot de passe » |
| RG-16 — التسجيل بالبريد الإلكتروني وكلمة المرور مع بريد تأكيد | à confirmer | |
| MGR-02 — حجب التواريخ | RG-06 — الحد الأدنى للبالغين 1 والأقصى 4 | à confirmer |
| MGR-03 — إدارة الغرف والأسعار | RG-01 — سعر غرفة أطلس 900 درهم في الليلة لشخصين | lue sur le site : « Atlas 2 pers. Chambre intime aux tons ocre, vue sur le patio et ses orangers. 900 MAD / nuit » |
| RG-02 — سعر غرفة ماجوريل 1200 درهم في الليلة لثلاثة أشخاص | lue sur le site : « Majorelle 3 pers. Chambre lumineuse au bleu Majorelle, idéale pour une petite famille. 1 200 MAD / nuit » | |
| RG-03 — سعر جناح الكتبية 1800 درهم في الليلة لأربعة أشخاص | lue sur le site : « Suite Koutoubia 4 pers. Notre plus belle suite : salon privé, cheminée et vue sur les toits de la Médina. 1 800 MAD / nuit » | |
| RG-04 — سعر غرفة النخيل 750 درهم في الليلة لشخصين | lue sur le site : « Palmeraie 2 pers. Chambre douce et verdoyante, inspirée des jardins de la Palmeraie. 750 MAD / nuit » | |
| RG-05 — سعر غرفة منارة 1000 درهم في الليلة لشخصين | lue sur le site : « Menara 2 pers. Chambre élégante aux zelliges verts, ouverte sur la galerie. 1 000 MAD / nuit » | |
| MGR-04 — معالجة رسائل الاتصال | RG-13 — حقل البريد الإلكتروني مطلوب في نموذج الاتصال بحد أقصى 255 حرفًا | à confirmer |
| RG-14 — حقل الرسالة مطلوب في نموذج الاتصال بحد أقصى 2000 حرف | à confirmer | |
| — | RG-17 — لا يمكن حجز الغرفة مرتين على تواريخ متداخلة | à confirmer |
| — | RG-18 — لا حجز في الماضي والحد الأدنى ليلة واحدة | à confirmer |
| — | RG-19 — المدير هو المسؤول الإداري الوحيد | à confirmer |
Cahier de recette
| Réf. | User story | Résultat attendu | Résultat obtenu et preuves | Recommandation |
|---|---|---|---|---|
| CN-1 | En tant que نزيل، je veux حجز غرفة أطلس لليلتين، afin de تأمين إقامتي في الرياض. VIS-02 · RG-06 · RG-07 | الانتقال إلى صفحة التوفر بعد البحث بتواريخ صحيحة وعدد بالغين 2. | Conforme Réponses du serveur
Hygiène des pages liées : #1, #2, #3, #5, #6, #7, #8, #9, #10, #11 | Garder ce cas dans la recette de non-régression. |
| CS-1 | En tant que نزيل، je veux البحث عن جناح الكتبية لأربعة بالغين، afin de حجز أكبر غرفة لعائلتي. VIS-02 · RG-03 · RG-06 | عرض جناح الكتبية ضمن نتائج التوفر للتواريخ المطلوبة. | Conforme Réponses du serveur
Hygiène des pages liées : #2, #3, #5, #6, #7, #8, #9, #10, #11, #12 | Garder ce cas dans la recette de non-régression. |
| CS-2 | En tant que زائر، je veux البحث مع طفلين، afin de حجز إقامة عائلية مناسبة. VIS-02 · RG-07 | قبول عدد الأطفال 2 ضمن الحد الأقصى والانتقال إلى صفحة التوفر. | Conforme Réponses du serveur
Hygiène des pages liées : #2, #3, #5, #6, #7, #8, #9, #10, #11, #12 | Garder ce cas dans la recette de non-régression. |
| CS-3 | En tant que زائر، je veux مقارنة أسعار الغرف الخمس، afin de اختيار الغرفة المناسبة لميزانيتي. VIS-01 · RG-01 · RG-02 · RG-03 · RG-04 · RG-05 | عرض الغرف الخمس بأسعارها المعلنة بالدرهم في الصفحة الرئيسية. | Conforme Hygiène des pages liées : #2, #3, #5, #6, #7, #8, #9, #10, #11, #12 | Garder ce cas dans la recette de non-régression. |
| CS-4 | En tant que زائر، je veux إرسال رسالة إلى الرياض، afin de الاستفسار قبل الحجز. CLI-07 · RG-13 · RG-14 | قبول الرسالة بعد تعبئة الحقول المطلوبة وإرسالها دون خطأ. | Non jouable non joué : élément introuvable : input[type=text] — à confirmer Hygiène des pages liées : #4 | Lever le blocage (non joué : élément introuvable : input[type=text] — à confirmer), puis rejouer. |
| CS-5 | En tant que زائر، je veux قراءة شروط نشر التقييمات، afin de معرفة من يحق له التقييم. CLI-06 · RG-12 | عرض شرط النشر وعدم وجود تقييمات منشورة حاليًا. | Conforme Hygiène des pages liées : aucun constat technique sur ces pages | Garder ce cas dans la recette de non-régression. |
| CS-6 | En tant que نزيل، je veux عرض حجوزاتي، afin de متابعة حالة حجزي وإلغائه إن لزم. CLI-04 · RG-11 | عرض صفحة الحجوزات مع شرط الإلغاء 48 ساعة قبل الوصول. | Non concluant — à confirmer texte attendu absent : « Mes réservations » (page : « Riad Dar Zitoun Accueil Disponibilités Avis FAQ Contact EN Connexion Connexion E-mail Mot de passe ConnexionPas encore de compte ? Créer un compte Riad Dar Zito ») | Faire confirmer l'attendu par le métier, puis rejouer. |
| CU-1 | En tant que نزيل مسجل، je veux حجز ماجوريل لليلتين مع رمز RIAD10، afin de دفع عربون محسوب على المجموع بعد الخصم. user story du client · CLI-02 · RG-09 · RG-10 | الوصول إلى مسار حجز ماجوريل؛ التحقق من الخصم والعربون غير ممكن لغياب صفحة الدفع. | Non jouable non joué : élément introuvable : text=Voir les disponibilités — à confirmer Réponses du serveur
Hygiène des pages liées : #1, #2, #3, #5, #6, #7, #8, #9, #10, #11 | Lever le blocage (non joué : élément introuvable : text=Voir les disponibilités — à confirmer), puis rejouer. |
| CU-2 | En tant que مدير، je veux إيجاد الحجز الجديد في لوحة التسيير، afin de تحضير وصول النزيل. user story du client · MGR-01 · RG-19 | لا يمكن تنفيذ هذا المسار: لا توجد لوحة تسيير في الموقع. | Conforme | Garder ce cas dans la recette de non-régression. |
| CL-1 | En tant que زائر، je veux البحث دون تاريخ وصول، afin de vérifier أن الحقل مطلوب. VIS-02 · RG-06 | عدم الانتقال إلى صفحة التوفر لأن تاريخ الوصول مطلوب. | Conforme Réponses du serveur
Hygiène des pages liées : #2, #3, #5, #6, #7, #8, #9, #10, #11, #12 | Garder ce cas dans la recette de non-régression. |
| CL-2 | En tant que زائر، je veux إدخال مغادرة قبل الوصول، afin de vérifier رفض التواريخ غير المنطقية. VIS-02 · RG-18 | رفض البحث لأن تاريخ المغادرة قبل تاريخ الوصول. | Conforme Hygiène des pages liées : #2, #3, #5, #6, #7, #8, #9, #10, #11, #12 | Garder ce cas dans la recette de non-régression. |
| CL-3 | En tant que زائر، je veux إدخال صفر بالغين، afin de vérifier الحد الأدنى للبالغين. VIS-02 · RG-06 | رفض القيمة 0 لأن الحد الأدنى للبالغين هو 1. | Conforme Réponses du serveur
Hygiène des pages liées : #2, #3, #5, #6, #7, #8, #9, #10, #11, #12 | Garder ce cas dans la recette de non-régression. |
| CL-4 | En tant que زائر، je veux إدخال خمسة بالغين، afin de vérifier الحد الأقصى للبالغين. VIS-02 · RG-06 | رفض القيمة 5 لأن الحد الأقصى للبالغين هو 4. | Conforme Hygiène des pages liées : #2, #3, #5, #6, #7, #8, #9, #10, #11, #12 | Garder ce cas dans la recette de non-régression. |
| CL-5 | En tant que زائر، je veux إدخال أربعة أطفال، afin de vérifier الحد الأقصى للأطفال. VIS-02 · RG-07 | رفض القيمة 4 لأن الحد الأقصى للأطفال هو 3. | Conforme Hygiène des pages liées : #2, #3, #5, #6, #7, #8, #9, #10, #11, #12 | Garder ce cas dans la recette de non-régression. |
| CL-6 | En tant que نزيل، je veux تسجيل الدخول بكلمة مرور خاطئة، afin de vérifier رفض بيانات الاعتماد الخاطئة. CPT-01 · RG-15 | رفض تسجيل الدخول والبقاء في صفحة Connexion. | Conforme Réponses du serveur
| Garder ce cas dans la recette de non-régression. |
| CL-7 | En tant que زائر، je veux إرسال نموذج فارغ، afin de vérifier إلزامية الحقول. CLI-07 · RG-13 · RG-14 | عدم إرسال الرسالة لأن الاسم والبريد والرسالة مطلوبة. | Conforme Hygiène des pages liées : #4 | Garder ce cas dans la recette de non-régression. |
| CL-8 | En tant que زائر، je veux إدخال بريد غير صحيح، afin de vérifier رفض الصيغة الخاطئة. CLI-07 · RG-13 | رفض الإرسال لأن صيغة البريد الإلكتروني غير صحيحة. | Non jouable non joué : élément introuvable : input[type=text] — à confirmer Hygiène des pages liées : #4 | Lever le blocage (non joué : élément introuvable : input[type=text] — à confirmer), puis rejouer. |
| CL-9 | En tant que زائر، je veux إرسال رسالة بأحرف خاصة، afin de vérifier قبول المحتوى عند الحد الأقصى. CLI-07 · RG-14 | قبول الأحرف الخاصة والرموز دون خطأ في الإرسال. | Non jouable non joué : élément introuvable : input[type=text] — à confirmer Hygiène des pages liées : #4 | Lever le blocage (non joué : élément introuvable : input[type=text] — à confirmer), puis rejouer. |
| CL-10 | En tant que زائر، je veux قراءة الأسئلة الشائعة، afin de معرفة سياسة الدفع والإلغاء. VIS-01 · RG-09 · RG-11 | عرض عناوين الأسئلة فقط دون أجوبة، فلا يمكن التحقق من سياسة الإلغاء أو الرمز. | Conforme Hygiène des pages liées : #16 | Garder ce cas dans la recette de non-régression. |
| CN-2 | بصفتي نزيلاً مسجلاً، أريد حجز غرفة أطلس لليلتين مع رمز RIAD10، لأدفع عربوناً محسوباً على المجموع المخفّض. الحجز والدفع الإلكتروني · رمز RIAD10 = خصم 10% على الإقامة فقط · ضريبة الإقامة لا تُخفَّض أبداً · العربون 30% يُحسب على المجموع المخفّض شامل الضريبة | ظهور تأكيد الحجز مع رقم الحجز والمبلغ 522 MAD بعد الدفع المحاكى. | Conforme Réponses du serveur
Hygiène des pages liées : aucun constat technique sur ces pages | Garder ce cas dans la recette de non-régression. |
| CS-20 | بصفتي نزيلاً مسجلاً، أريد حجز جناح الكتبية لليلتين، لأتحقق من صحة حساب العربون والرصيد. الحجز والدفع الإلكتروني · العربون 30% من المجموع شامل الضريبة | المبالغ معروضة صحيحة: 3720 إجمالي، 1116 عربون، 2604 رصيد. | Conforme Réponses du serveur
Hygiène des pages liées : aucun constat technique sur ces pages | Garder ce cas dans la recette de non-régression. |
| CS-21 | بصفتي نزيلاً مسجلاً، أريد حجز غرفة النخيل لليلتين، لأتأكد من أن العربون الأدنى محسوب بدقة. الحجز والدفع الإلكتروني · العربون 30% من المجموع شامل الضريبة | المبالغ معروضة صحيحة: 1620 إجمالي، 486 عربون، 1134 رصيد. | Conforme Réponses du serveur
Hygiène des pages liées : aucun constat technique sur ces pages | Garder ce cas dans la recette de non-régression. |
| CS-22 | بصفتي نزيلاً مسجلاً، أريد حجز غرفة ماجوريل لليلتين مع رمز RIAD10، لأدفع عربوناً على المجموع المخفّض. الحجز والدفع الإلكتروني · رمز RIAD10 = خصم 10% على الإقامة فقط · ضريبة الإقامة لا تُخفَّض أبداً | العربون بعد الخصم = 684 MAD والضريبة 120 MAD غير مخفّضة. | Non concluant — à confirmer texte attendu absent : « 684 MAD » (page : « Riad Dar Zitoun Accueil Disponibilités Avis FAQ Contact Mes réservations EN Déconnexion Majorelle Vos coordonnées Nom complet E-mail Téléphone Code promo Appliq ») Réponses du serveur
Hygiène des pages liées : aucun constat technique sur ces pages | Faire confirmer l'attendu par le métier, puis rejouer. |
| CL-20 | بصفتي نزيلاً مسجلاً، أريد الدفع دون تعبئة بياناتي، لأرى إن كان النظام يمنع الحجز الناقص. الحجز والدفع الإلكتروني · الاسم والبريد الإلكتروني مطلوبان | لا يتم تأكيد الحجز ويبقى المستخدم في صفحة الحجز. | Conforme paiement en mode test (prestataire : simulation) Réponses du serveur
Hygiène des pages liées : aucun constat technique sur ces pages | Garder ce cas dans la recette de non-régression. |
| CL-21 | بصفتي نزيلاً مسجلاً، أريد الدفع ببريد إلكتروني خاطئ، لأرى إن كان النظام يرفض الصيغة. الحجز والدفع الإلكتروني · البريد الإلكتروني يجب أن يكون بصيغة صحيحة | رفض البريد غير الصالح وعدم تأكيد الحجز. | Conforme paiement en mode test (prestataire : simulation) Réponses du serveur
Hygiène des pages liées : aucun constat technique sur ces pages | Garder ce cas dans la recette de non-régression. |
| CL-22 | بصفتي نزيلاً مسجلاً، أريد تطبيق رمز خصم خاطئ، لأرى إن كان النظام يرفضه دون تغيير المبلغ. الحجز والدفع الإلكتروني · رمز RIAD10 هو الرمز الصالح الوحيد | الرمز الخاطئ لا يغيّر المجموع ولا العربون. | Conforme Réponses du serveur
Hygiène des pages liées : aucun constat technique sur ces pages | Garder ce cas dans la recette de non-régression. |
| CL-23 | بصفتي نزيلاً مسجلاً، أريد الدفع دون رقم بطاقة، لأرى إن كان النظام يمنع تأكيد الحجز. الحجز والدفع الإلكتروني · رقم البطاقة مطلوب للدفع المحاكى | لا يتم تأكيد الحجز دون رقم بطاقة. | Conforme paiement en mode test (prestataire : simulation) Réponses du serveur
Hygiène des pages liées : aucun constat technique sur ces pages | Garder ce cas dans la recette de non-régression. |
Hygiène technique
Recette de riad-connect-hub.lovable.app : 17 constats, 9 correctifs à faire
Le test de riad-connect-hub.lovable.app relève 17 constats, dont 2 majeurs ou critiques (S1, S2), qui se ramènent à 9 correctifs. À traiter d'abord : Pages de connexion affichables dans un autre site (clickjacking), puis Champs de formulaire sans libellé.
17 problèmes trouvés, dont 2 à corriger d'abord.
À corriger en premier
- Une cause → un correctifPages de connexion affichables dans un autre site (clickjacking) : 3 constats, un seul correctif
Cause : Même défaut « Pages de connexion affichables dans un autre site (clickjacking) » répété : probablement un composant ou un gabarit commun.
Correctif unique : Envoyer l'en-tête Content-Security-Policy: frame-ancestors 'none' (et X-Frame-Options: DENY).
- #1MajeurPages de connexion affichables dans un autre site (clickjacking) (Chromium (moteur de Chrome))
Pourquoi d'abord : Un site tiers peut piéger les clics sur la page de connexion : comptes clients exposés et confiance perdue. Effort : faible
Page : https://riad-connect-hub.lovable.app/auth
Attendu : Ces pages refusent d'être affichées dans un cadre étranger
Constaté : Encadrables : /auth
Correction conseillée : Envoyer Content-Security-Policy: frame-ancestors 'none' (et X-Frame-Options: DENY).
- #2MineurEn-têtes de sécurité absents sur riad-connect-hub.lovable.app (ordinateur · Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/
Attendu : En-têtes de sécurité présents
Constaté : Manquants : Content-Security-Policy, Permissions-Policy
Correction conseillée : Les ajouter dans la configuration de l'hébergeur (fichier _headers Netlify, vercel.json...).
- #3RemarqueCross-Origin-Opener-Policy absente : une fenêtre ouverte par un autre site garde un lien vers la vôtre (Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/
Attendu : Cross-Origin-Opener-Policy: same-origin (ou same-origin-allow-popups si des fenêtres de paiement/connexion sont utilisées)
Constaté : Cross-Origin-Opener-Policy: absent
Correction conseillée : Ajouter Cross-Origin-Opener-Policy: same-origin-allow-popups, puis same-origin si aucun parcours n'en souffre.
- #4MajeurAccessibilité : champ-sans-libelle (label) (2 occurrence(s) sur 1 page(s)) — ordinateur, téléphone (Chromium (moteur de Chrome))
Pourquoi d'abord : Une partie des visiteurs (clavier, malvoyants) ne peut pas aller au bout : ce sont des réservations perdues, et l'accessibilité devient une obligation légale sur plusieurs marchés. Effort : faible
Page : https://riad-connect-hub.lovable.app/contact
Attendu : Conforme WCAG 2.2 AA — WCAG 2.2 : 4.1.2 Nom, rôle et valeur (A), 1.3.1 Information et relations (A) · RGAA 4.1 : 11.1 Champ de formulaire avec étiquette
Correction conseillée : axe-core (moteur de référence) : corriger chaque élément cité.
Détail technique
Constaté : input[maxlength="100"] Form elements must have labels; input[maxlength="100"] Form elements must have labels
- Une cause → un correctifAucun bandeau de consentement aux cookies détecté sur riad-connect-hub.lovable.app : 2 constats, un seul correctif
Cause : Même défaut « Aucun bandeau de consentement aux cookies détecté sur riad-connect-hub.lovable.app » répété : probablement un composant ou un gabarit commun.
Correctif unique : Corriger une fois dans le composant ou le gabarit commun, puis revérifier toutes les pages citées.
- #5MineurAucun bandeau de consentement aux cookies détecté sur riad-connect-hub.lovable.app (Chromium (moteur de Chrome))
Pourquoi d'abord : Ces points ne bloquent pas le parcours mais méritent d'être traités. Effort : moyen
Page : https://riad-connect-hub.lovable.app/
Attendu : Un bandeau qui demande l'accord (accepter / refuser / personnaliser)
Constaté : Ni outil de consentement connu, ni texte « cookies » avec un bouton d'acceptation, alors que des traceurs ou cookies de mesure sont présents.
Correction conseillée : Le RGPD et la directive « ePrivacy » (en France, les règles de la CNIL ; au Maroc, la loi 09-08 et la CNDP) demandent l'accord du visiteur AVANT de déposer un cookie ou d'appeler un service qui sert à mesurer l'audience ou à faire de la publicité. Les cookies strictement nécessaires (session, panier, langue) n'ont pas besoin d'accord. Installez un outil de gestion du consentement et bloquez les traceurs tant que le visiteur n'a pas choisi.
- #6MineurCookies de mesure ou de publicité déposés avant tout consentement sur riad-connect-hub.lovable.app (Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/
Attendu : Seuls des cookies techniques (session, panier, langue) avant l'accord
Constaté : Déposés sans accord : __cf_bm (supabase.co, tiers)
Correction conseillée : Le RGPD et la directive « ePrivacy » (en France, les règles de la CNIL ; au Maroc, la loi 09-08 et la CNDP) demandent l'accord du visiteur AVANT de déposer un cookie ou d'appeler un service qui sert à mesurer l'audience ou à faire de la publicité. Les cookies strictement nécessaires (session, panier, langue) n'ont pas besoin d'accord. Déposez ces cookies seulement après l'accord, et proposez « Refuser » aussi simplement que « Accepter ».
- Une cause → un correctifPages et images trop lourdes : 5 constats, un seul correctif
Cause : Images et ressources servies trop lourdes, probablement sans compression ni dimension adaptée.
Correctif unique : Compresser et redimensionner les images (WebP ou AVIF, srcset) une fois dans la chaîne de publication.
- #7Mineur1 image(s) trop lourde(s) pour leur taille d'affichage (Chromium (moteur de Chrome))
Pourquoi d'abord : Une page lente fait partir les visiteurs avant même de voir l'offre, surtout sur téléphone : moins de réservations. Effort : moyen
Page : https://riad-connect-hub.lovable.app/
Attendu : Images < 300 Ko, dimensionnées pour l'affichage
Constaté : ttps://riad-connect-hub.lovable.app/assets/hero-O0-s_7b9.jpg : 461 Ko, 1920 px affichés en 1440 px
Correction conseillée : SVG ou WebP pour le logo ; images responsives (srcset, AVIF/WebP) ; préchargement de l'image principale.
- #8MineurChargement lent (6547 ms) : / — téléphone uniquement (téléphone · Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/
Attendu : Chargement < 3000 ms
Constaté : / 6547 ms
Correction conseillée : Mesurer avec Lighthouse ; compresser les images, decouper le JavaScript, mettre en cache.
- #9MineurFichiers JavaScript lourds : 1 fichier(s) au-dessus de 500 Ko (Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/
Attendu : Chaque fichier ≤ 500 Ko transférés
Constaté : https://riad-connect-hub.lovable.app/assets/index-BYEaChBb.js (text/javascript) : 574 Ko décompressés (167 Ko transférés)
Correction conseillée : Découper le JavaScript par page (code splitting), retirer les bibliothèques inutilisées (tree shaking), minifier et compresser (brotli) ; différer les scripts non essentiels (defer/async).
- #10MineurImages lourdes : 1 fichier(s) au-dessus de 300 Ko (Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/
Attendu : Chaque fichier ≤ 300 Ko transférés
Constaté : https://riad-connect-hub.lovable.app/assets/hero-O0-s_7b9.jpg (image/jpeg) : 462 Ko
Correction conseillée : Convertir en WebP ou AVIF, redimensionner à la taille d'affichage (srcset), viser moins de 200 Ko par image ; charger en différé celles qui sont sous la ligne de flottaison.
- #11MineurLent sur téléphone en réseau lent : LCP 4400 ms, chargement 4346 ms (non confirmé) (Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/
Attendu : LCP ≤ 4000 ms et chargement ≤ 10000 ms dans ces conditions (profil mobile de Lighthouse)
Constaté : LCP 4400 ms, chargement 4346 ms (2 mesure(s), non confirmé)
Correction conseillée : Alléger d'abord l'élément principal affiché (image ou titre) : image compressée et préchargée (rel=preload), CSS critique en ligne, JavaScript différé ; servir les fichiers depuis un CDN proche des visiteurs.
- Une cause → un correctifPas de lien vers la politique de confidentialité : 2 constats, un seul correctif
Cause : Même défaut « Pas de lien vers la politique de confidentialité » répété : probablement un composant ou un gabarit commun.
Correctif unique : Corriger une fois dans le composant ou le gabarit commun, puis revérifier toutes les pages citées.
- #12MineurPas de lien vers la politique de confidentialité (Chromium (moteur de Chrome))
Pourquoi d'abord : Ces informations sont généralement obligatoires pour un site qui vend en ligne ; leur absence expose l'éditeur et rassure moins les acheteurs. Effort : faible
Page : https://riad-connect-hub.lovable.app/
Attendu : Un lien vers la politique de confidentialité (RGPD / loi 09-08)
Constaté : Aucun lien ni texte « confidentialité / privacy / données personnelles » trouvé sur l'accueil.
Correction conseillée : Publier une politique de confidentialité et la lier depuis le pied de page.
- #13MineurPas de mentions légales (Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/
Attendu : Des mentions légales (éditeur, hébergeur, contact)
Constaté : Aucun lien « mentions légales / CGU / CGV / legal » trouvé sur l'accueil.
Correction conseillée : Ajouter une page de mentions légales liée depuis le pied de page.
Le reste
- #14MineurPages de connexion ouvertes aux moteurs de recherche (Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/auth
Attendu : noindex et Disallow sur les espaces privés
Constaté : Indexables : /auth ; robots.txt : User-agent: Googlebot Allow: / User-agent: Bingbot Allow: / User-agent: Twitterbot Allow: / User-agent: facebookexter
Correction conseillée : Ajouter <meta name=robots content=noindex> et Disallow: /admin, /vendeur (ou équivalents).
- #15RemarquePas de /.well-known/security.txt (Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/.well-known/security.txt
Attendu : Un fichier security.txt indiquant comment signaler une faille (RFC 9116)
Constaté : HTTP 404
Correction conseillée : Ajouter /.well-known/security.txt avec un contact de sécurité.
- #16RemarqueAccessibilité : ordre-titres (heading-order) (2 occurrence(s) sur 1 page(s)) — ordinateur, téléphone (Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/faq
Attendu : Conforme WCAG 2.2 AA — RGAA 4.1 : 9.1 Hiérarchie des titres
Correction conseillée : axe-core (moteur de référence) : corriger chaque élément cité.
Détail technique
Constaté : .border-b:nth-child(1) > h3 Heading levels should only increase by one; .border-b:nth-child(1) > h3 Heading levels should only increase by one
- #17RemarqueRéférencement : 1 problème(s) sur riad-connect-hub.lovable.app (Chromium (moteur de Chrome))
Page : https://riad-connect-hub.lovable.app/
Attendu : Canonical propre à chaque langue, og:image, titres distincts
Constaté : sans canonical : /; /auth; /contact; /faq (+3)
Correction conseillée : Canonical auto-référent par langue, og:image/og:title partout, titre et canonical sur chaque page.
Par thème
- Vitesse de chargement — Une page lente fait partir les visiteurs avant même de voir l'offre, surtout sur téléphone : moins de réservations.
5 constat(s), dont 0 majeur(s) ou critique(s) ; 1 correctif(s) suffisent. #7, #8, #9, #10, #11 - Sécurité et confiance — Une faille expose les comptes et les données des clients ; la confiance perdue coûte des réservations et engage l'éditeur.
4 constat(s), dont 1 majeur(s) ou critique(s) ; 2 correctif(s) suffisent. #1, #2, #3, #15 - Obligations légales — Ces informations sont généralement obligatoires pour un site qui vend en ligne ; leur absence expose l'éditeur et rassure moins les acheteurs.
4 constat(s), dont 0 majeur(s) ou critique(s) ; 2 correctif(s) suffisent. #5, #6, #12, #13 - Accessibilité — Une partie des visiteurs (clavier, malvoyants) ne peut pas aller au bout : ce sont des réservations perdues, et l'accessibilité devient une obligation légale sur plusieurs marchés.
2 constat(s), dont 1 majeur(s) ou critique(s) ; 2 correctif(s) suffisent. #4, #16 - Référencement — Le référencement amène des visiteurs sans payer ; des pages mal décrites ou mal indexées en apportent moins.
2 constat(s), dont 0 majeur(s) ou critique(s) ; 2 correctif(s) suffisent. #14, #17
Prochaines étapes
- Corriger les 5 points « à corriger d'abord », dans l'ordre.
- Appliquer les 4 correctifs groupés : chacun règle plusieurs constats à la fois.
- Traiter ensuite les constats mineurs restants, section par section.
- Relancer un test Avalyz pour vérifier les corrections.
- Élargir le périmètre aux 5 zone(s) non testée(s) (par exemple avec un compte de test).
Limites de couverture
- Accessibilite : partiel — axe-core sur chaque page (bureau et téléphone) + focus clavier ; critères WCAG 2.2 et RGAA 4.1 cités dans les constats ; compléments navigateur : 7 page(s) (7 pages lues sur 7 visitées (mode complet)), contraste mesuré sur 14 texte(s) (clair, et sombre sur 7 page(s)), 280 tabulation(s) (119 élément(s) vérifiés pour le focus visible, 0 fenêtre(s) modale(s) cachée(s) parcourue(s) sans clic, 0 piège(s)), noms accessibles vérifiés sur 7 page(s), 0 PDF lié(s) non audité(s)
- Regression visuelle : non testé — Aucune reference approuvee : approuve un passage comme reference.
- Parcours par rôle : partiel — 2 pages, 33 actions relevées, 0 action jouée (lecture seule) — rôle « avalyz-test-client-9565b061@test.avalyz.com »
- Logique metier : partiel — logique métier décrite par le client jouée par les scénarios métier (voir la ligne « Scénarios métier ») ; aucune idée « Depuis ton idée » à rapprocher
- API / integration : partiel — pas de spécification OpenAPI trouvée (/openapi.json, /swagger.json, /api-docs, /api/openapi.json…) ; sondes GET : /api → 406, /api/health → 406, /graphql → 406 — importe le contrat de l'API pour des cas par opération ; spec reconstituée depuis le navigateur (7 page(s) — 7 pages lues sur 7 visitées (mode complet), 10 appel(s) observé(s), aucune requête ajoutée) : 1 point(s) d'entrée — POST /__l5e/trackevents [?] ; 0 constat(s)
- Securite des donnees : non testé — aucune base détectée (Supabase : clé anon dans la page ; Firebase : apiKey + databaseURL) — le contrôle RLS demande un accès à la base ou une clé publique visible
- Scénarios métier : partiel — 19 cas conçus (1 nominal, 8 secondaires, 10 limites) ; joués : 19 (mode complet : CN-1, CS-1, CS-2, CS-3, CS-4, CS-5, CS-6, CU-1, CU-2, CL-1, CL-2, CL-3, CL-4, CL-5, CL-6, CL-7, CL-8, CL-9, CL-10) ; 14 réussis / 0 échecs / 0 bloqués / 4 non jouables ; 1 attendu(s) deviné(s) par le BA non vérifié(s) : à confirmer par le client (non déclarés) — CS-6 ; CS-4 non joué : élément introuvable : input[type=text] — à confirmer ; CU-1 non joué : élément introuvable : text=Voir les disponibilités — à confirmer ; CL-8 non joué : élément introuvable : input[type=text] — à confirmer ; CL-9 non joué : élément introuvable : input[type=text] — à confirmer ; écriture autorisée, 35 soumission(s) ; exploration en jouant : 4 écran(s) découvert(s) (https://riad-connect-hub.lovable.app/book/atlas?checkIn=2026-11-10&checkOut=2026-11-12&adults=2&children=0, https://riad-connect-hub
- Statique : non testé — code source non fourni (champ « URL du code source » du panneau) ou mode rapide
- Unitaire : non testé — code source non fourni (champ « URL du code source » du panneau) ou mode rapide
- Composant : non testé — code source non fourni (champ « URL du code source » du panneau) ou mode rapide
- Niveaux : partiel — 6/13 exécutés, 3 partiels, 4 non testés (sur 13 niveaux du plan) ; demandés : 6/10 faits
- À vérifier (sans constat) : partiel — 1 point(s) non mesuré(s), sans constat : Accessibilité : contraste à vérifier à la main — fond non uni (image, dégradé, élément superposé ou transparence) : 17 sélecteur(s) sur 7 page(s) — .tracking-\[0\.25em\] : Element's background color could not be determined due to a background gradient — 1 page(s) : / ; h1 : Element's background color could not be determined due to a background gradient — 1 page(s) : / ; .max-w-xl : Element's background color could not be determined due to a bac
Durées du test
- 6695 msplan du site (0 adresse(s) à visiter en plus)
- 13525 mscréation des comptes de recette (1/1 créé(s))
- 2201 msnavigation bureau p1 (chargement 569, réseau calme 1616, relevés 16)
- 5979 msa11y bureau p1
- 253 msfocus clavier bureau p1
- 2204 mscapture bureau p1
- 1154 msnavigation bureau p2 (chargement 486, réseau calme 655, relevés 13)
- 604 msa11y bureau p2
- 181 mscapture bureau p2
- 1516 msnavigation bureau p3 (chargement 560, réseau calme 938, relevés 18)
- 754 msa11y bureau p3
- 127 mscapture bureau p3
- 1104 msnavigation bureau p4 (chargement 422, réseau calme 667, relevés 15)
- 661 msa11y bureau p4
- 109 mscapture bureau p4
- 1147 msnavigation bureau p5 (chargement 393, réseau calme 742, relevés 12)
- 787 msa11y bureau p5
- 117 mscapture bureau p5
- 1113 msnavigation bureau p6 (chargement 416, réseau calme 683, relevés 14)
- 745 msa11y bureau p6
- 129 mscapture bureau p6
- 2964 msconnexion avec le compte de test (client) (réussie)
- 1342 msnavigation bureau p1 (chargement 434, réseau calme 887, relevés 21)
- 631 msa11y bureau p1
- 87 mscapture bureau p1
- 1680 msnavigation bureau p2 (chargement 527, réseau calme 1135, relevés 18)
- 778 msa11y bureau p2
- 1787 mscapture bureau p2
- 477 mssondes (robots.txt, pages inexistantes, paramètres, limites)
- 91 msliens (0 lien(s) vérifié(s) (plafond 50), 0 fil(s) réellement utilisé(s) sur 4, délai 8000 ms par lien, périmètre 2 ms, requêtes 0 ms, lien le plus lent 0 ms, 0 non vérifié(s) (délai ou réseau), 0 erreur(s) HTTP)
- 8794 msrgpd (visite en navigateur neuf + capture)
- 7317 msnavigation telephone p1 (chargement 6554, réseau calme 747, relevés 16)
- 5754 msa11y telephone p1
- 817 mscapture telephone p1
- 1112 msnavigation telephone p2 (chargement 466, réseau calme 632, relevés 14)
- 500 msa11y telephone p2
- 55 mscapture telephone p2
- 1302 msnavigation telephone p3 (chargement 395, réseau calme 891, relevés 16)
- 550 msa11y telephone p3
- 65 mscapture telephone p3
Décision GO / NO-GO motivée
Détail technique
الموقع يعرض الغرف الخمس بأسعارها ويسمح بالبحث عن التوفر حسب التواريخ وعدد البالغين والأطفال، وقد نجحت كل حالات البحث والتحقق من المدخلات (CN-1، CS-1، CS-2، CS-3، CL-1 إلى CL-5). لكن المسار الذي يُدخل المال فعلاً (اختيار الغرفة، إنشاء الحجز، دفع العربون 30%، الإلغاء) لم يُغطَّ بالكامل: CLI-01 وCLI-03 وCLI-05 غير مغطاة، وCLI-02 محجوب، وحالة التحقق من العربون مع رمز RIAD10 (CS-22) بقيت «à confirmer» بعد إعادة اللعب (I1: غير حاسم). لذلك لا يمكن إصدار GO، والموافقة مشروطة بإتمام اختبار مسار الحجز والدفع والإلغاء من البداية إلى النهاية.
Motifs (preuves)
- 21 cas conformes sur 27 joués ; 0 non conforme(s) ; 2 non concluant(s) ; 4 bloqué(s).
- Hygiène technique : 0 constat(s) critique(s), 2 majeur(s), 15 mineur(s).
Avis d'expert
Décision : GO SOUS CONDITIONS
Arguments
- voir le détail technique (fort)
preuves : CN-1, CS-1, CS-2, CL-1, CL-2, CL-3, CL-4, CL-5 - voir le détail technique (moyen)
preuves : CS-3, processus:VIS-01, https://riad-connect-hub.lovable.app/ - voir le détail technique (fort)
preuves : processus:CLI-01, processus:CLI-02, processus:CLI-03, CU-1, I2, I7 - voir le détail technique (fort)
preuves : CS-22, I1, CS-20, I4, CS-21, I5 - voir le détail technique (fort)
preuves : processus:CLI-05, https://riad-connect-hub.lovable.app/my- - voir le détail technique (moyen)
preuves : CS-6, I3, processus:CLI-04 - voir le détail technique (moyen)
preuves : CL-20, CL-21, CL-22, CL-23 - voir le détail technique (moyen)
preuves : processus:MGR-02, processus:MGR-03, processus:MGR-04 - voir le détail technique (moyen)
preuves : CS-4, CL-8, CL-9, I8, processus:CLI-07 - voir le détail technique (faible)
preuves : couverture:Securite applicative, couverture:Securite des donnees
Risques résiduels
- voir le détail technique
- voir le détail technique
- voir le détail technique
- voir le détail technique
- voir le détail technique
- voir le détail technique
- voir le détail technique
Conditions
- voir le détail technique
- voir le détail technique
- voir le détail technique
- voir le détail technique
- voir le détail technique
- voir le détail technique
Périmètre de l'avis
- testé : voir le détail technique
- non testé : voir le détail technique
Confiance : moyenne
Détail technique
Arguments : البحث عن التوفر والتحقق من المدخلات يعملان بشكل صحيح على الحالات المختبرة (تواريخ ناقصة أو معكوسة، صفر بالغين، تجاوز الحد الأقصى للبالغين والأطفال).
Arguments : عرض الغرف الخمس وأسعارها من الصفحة الرئيسية يعمل، ما يدعم وضوح العرض التجاري.
Arguments : المسار الذي يُدخل المال (اختيار الغرفة، إنشاء الحجز، دفع العربون 30%) غير مُغطّى أو محجوب، فلا يمكن تأكيد سلامة حساب العربون والخصم على المسار الكامل.
Arguments : التحقق من مبلغ العربون مع رمز RIAD10 (CS-22) بقي «à confirmer» وإعادة اللعب (I1) كانت غير حاسمة، بينما نجحت حالات الحساب بدون رمز (CS-20، CS-21) وأُعيد لعبها بنجاح.
Arguments : الإلغاء حتى 48 ساعة قبل الوصول، وهو وعد مكتوب للعميل، لم يُختبر فعليًا لعدم وجود حجز قائم ولا زر إلغاء ظاهر.
Arguments : صفحة «حجوزاتي» تعمل بعد تسجيل الدخول (CS-6 نجح في إعادتَي لعب)، ما يدعم متابعة الحجز من طرف النزيل.
Arguments : التحقق من المدخلات في صفحة الحجز يعمل على الحالات المختبرة (اسم وبريد فارغان، بريد غير صحيح، رمز خصم غير صحيح، بطاقة غائبة).
Arguments : واجهات الإدارة (حجب التواريخ، إدارة الغرف والأسعار، معالجة رسائل الاتصال) غير موجودة في الموقع، فلا يمكن اختبارها من الخارج.
Arguments : نموذج الاتصال لم يُختبر فعليًا: CS-4 وCL-8 وCL-9 غير قابلة للعب (عنصر الإدخال غير موجود) وإعادة اللعب (I8) كانت غير حاسمة.
Arguments : لا توجد ثغرات أمنية مكتشفة في الملفات الحساسة المسبورة (11 ملفًا، 0 مكشوف)، وهذا لا يغطي أمن البيانات لعدم وجود قاعدة بيانات مكتشفة.
Risques résiduels : خطأ محتمل في حساب العربون أو تطبيق رمز RIAD10 على المسار الكامل لم يُتحقق منه (CS-22 غير حاسم، I1).
Risques résiduels : عدم إمكانية تأكيد أن الإلغاء حتى 48 ساعة يعمل فعليًا (CLI-05 غير مغطى).
Risques résiduels : عدم إمكانية تأكيد أن الحجز يُنشئ رقم حجز ويُرسل تأكيدًا للنزيل (CLI-02 محجوب، I2).
Risques résiduels : عدم إمكانية تأكيد منع الحجز المزدوج على تواريخ متداخلة (RG-17 خارج نطاق الاختبار).
Risques résiduels : نموذج الاتصال قد يكون معطلاً أو غير قابل للاستخدام (CS-4، CL-8، CL-9 غير قابلة للعب).
Risques résiduels : غياب واجهات الإدارة يعني عدم إمكانية تأكيد تسيير التقويم وحجب التواريخ والأسعار من الخارج.
Risques résiduels : أمن البيانات غير مُختبر لعدم اكتشاف قاعدة بيانات.
Conditions : اختبار مسار الحجز الكامل من البداية إلى النهاية: اختيار الغرفة (CLI-01)، إنشاء الحجز والملخص (CLI-02)، دفع العربون 30% (CLI-03)، والحصول على رقم الحجز.
Conditions : إعادة اختبار CS-22 (حساب العربون على غرفة ماجوريل مع رمز RIAD10) حتى نتيجة حاسمة، والتأكد من أن الخصم يُطبَّق على الإقامة فقط وأن العربون يُحسب على المجموع المخفّض شاملًا ضريبة الإقامة.
Conditions : اختبار الإلغاء فعليًا على حجز قائم والتحقق من احترام شرط 48 ساعة قبل الوصول (CLI-05).
Conditions : اختبار منع الحجز المزدوج على تواريخ متداخلة (RG-17).
Conditions : إعادة اختبار نموذج الاتصال (CS-4، CL-8، CL-9) بعد إصلاح أو تحديد عنصر الإدخال، والتأكد من وصول الرسائل إلى المدير.
Conditions : توفير واجهات الإدارة واختبار MGR-02 وMGR-03 وMGR-04 (حجب التواريخ، إدارة الغرف والأسعار، معالجة رسائل الاتصال).
testé : تصفح الموقع والتعرف على الغرف (VIS-01), البحث عن التوفر (VIS-02), متابعة الحجوزات (CLI-04، CS-6), ترك تقييم (CLI-06، CS-5), إنشاء حساب وتسجيل الدخول (CPT-01، CL-6), تسيير تقويم الحجوزات (MGR-01، CU-2), التحقق من المدخلات في البحث والحجز (CL-1 إلى CL-5، CL-20 إلى CL-23), الأداء (Core Web Vitals على 5 صفحات), الأمان التطبيقي (11 ملفًا حساسًا), الامتثال (سياسة الخصوصية، الإشعارات القانونية), المرونة (بدون خدمة عاملة), من البداية إلى النهاية حسب الدور (صفحتان متصلتان)
non testé : اختيار الغرفة (CLI-01), إنشاء الحجز والملخص (CLI-02، محجوب), دفع العربون 30% (CLI-03), إلغاء الحجز (CLI-05), التواصل مع الرياض (CLI-07، CS-4/CL-8/CL-9 غير قابلة للعب), حجب التواريخ (MGR-02), إدارة الغرف والأسعار (MGR-03), معالجة رسائل الاتصال (MGR-04), إنشاء حساب جديد وبريد التأكيد (CPT-01، RG-16), منع الحجز المزدوج على تواريخ متداخلة (RG-17), أمن البيانات (لا قاعدة بيانات مكتشفة), واجهة API (لا مواصفات OpenAPI), CLI-04 متابعة الحجوزات : cas conçus, non joués dans ce mode
Avalyz prouve ce qu'il a vu, il ne garantit pas le reste : ce qui n'a pas été testé n'est pas couvert. Sans compte de test, les pages connectées ne sont pas explorées ; avec un compte de test, la connexion est le seul formulaire soumis.
Le rapport complet d'un compte (parcours, preuves, format ISO 29119) est réservé aux comptes.
7/7 صفحات
تقرير نموذجي
تطبيق خيالي أُنشئ للعرض: لا توجد بيانات حقيقية. سيتبع تقريرك البنية نفسها.
ما الذي ينكسر في تطبيقك
Riad Dar Zitoun
riad-connect-hub.lovable.app
التقرير الموجز
القرار
يشتغل البحث عن التوفر والتحقق من المدخلات بشكل سليم، لكن المسار الذي يدرّ المال — اختيار الغرفة، إنشاء الحجز، دفع العربون، والإلغاء — لم يُختبَر بالكامل، لذلك لا يمكن إصدار موافقة نهائية اليوم. الإصلاحات المطلوبة قبل فتح الحجز للعموم محدودة وواضحة: سرعة الصفحة الرئيسية على الهاتف، ورؤوس الأمان، والالتزامات المتعلقة بالمعطيات الشخصية.
أرقام أساسية
يُصلَح أولًا
- #1مهمصفحة تسجيل الدخول قابلة للتأطير داخل موقع آخر
حساب الحريف يعطي الولوج إلى الحجوزات وإلى معطيات شخصية؛ إمكانية تأطير صفحة الدخول داخل موقع آخر تفتح الباب لصفحة مزيّفة تسرق بيانات الولوج ثم الحجوزات. - #2طفيفرؤوس أمان غائبة عن الموقع
- #3ملاحظةرأس عزل نافذة التصفح غائب
- #4مهمحقل بدون تسمية في نموذج الاتصال
نموذج الاتصال هو القناة المباشرة لطلبات الزوار؛ حقل بدون تسمية يُربك قارئات الشاشة والملء التلقائي ويعني طلبات ضائعة أو ناقصة. - #5طفيفلا شريط لموافقة الزوار على ملفات التتبع
الموقع يجمع معطيات شخصية ويطلب دفع عربون: غياب الموافقة المسبقة على ملفات التتبع يعرّض المؤسسة للمساءلة ويجعل أي نشاط تتبع أو إعلان غير محمي قانونيا.
الخطوات التالية
- إتمام اختبار مسار الحجز كاملا: اختيار الغرفة، إنشاء الحجز، دفع العربون، الحصول على رقم الحجز، ثم الإلغاء في الأجل المحدد.
- إعادة اختبار حساب العربون مع رمز التخفيض بنسبة 10%، وهي الحالة التي بقيت غير محسومة بعد إعادة اللعب.
- إصلاح رؤوس الأمان وموضع رأس منع التأطير على كل الصفحات، والتحقق من النتيجة بعد الإصلاح.
- ضغط الصورة الرئيسية وتقسيم الملف البرمجي، ثم إعادة قياس سرعة الصفحة الرئيسية على الهاتف في شبكة ضعيفة.
التقرير المفصّل
فهمنا للنشاط (للتأكيد)
المفهوم
دار ضيافة (رياض) في الميدينة بمراكش تُدعى Riad Dar Zitoun، تضم خمس غرف حول فناء برتقال قرب جامع الكتبية. تتيح المنصة للمسافر البحث عن التوفر حسب التواريخ وعدد البالغين والأطفال ثم اختيار الغرفة والحجز، مع تقييمات وأسئلة شائعة واتصال.
العملاء المستهدفون: المسافرون والنزلاء الباحثون عن إقامة في رياض بمراكش، بما في ذلك العائلات الصغيرة.
سلسلة القيمة
- جذب الزائرVIS-01, VIS-02
- التحويل إلى حجزCLI-01, CLI-02
- الدفع والتأكيدCLI-03, CLI-04
- الاستقبال والإقامةCLI-05
- ما بعد الإقامة والولاءCLI-06, CLI-07
- التسيير والماليةMGR-01, MGR-02, MGR-03, MGR-04
نموذج العمل
| شرائح العملاء | مسافرون ونزلاء يبحثون عن إقامة في رياض بمراكش، عائلات صغيرة (غرف من شخصين إلى 4). |
|---|---|
| عرض القيمة | رياض هادئ بخمس غرف حول فناء برتقال قرب الكتبية، بأسعار ليلية واضحة بالدرهم. |
| القنوات | موقع ويب بالفرنسية مع مبدّل إلى الإنجليزية، صفحة اتصال، بريد وهاتف. |
| مصادر الإيرادات | حجز الغرف بالليلة (750 إلى 1800 درهم)، عربون 30%، ضريبة إقامة 30 درهم/بالغ/ليلة. |
التنظيم
- riad-connect-hub.lovable.app
- الفضاء العمومي (الموقع التعريفي)
- زائر VIS ★
- نزيل/مسافر CLI ★
- زائر VIS ★
- فضاء النزيل (حجوزاتي)
- فضاء المدير (لوحة التسيير) (مُعلن، غير مرئي)
- مدير (المسؤول الإداري الوحيد) MGR ★
- الفضاء العمومي (الموقع التعريفي)
جدول الوظائف
| الوظيفة (الملف) | المهمة | أهم المسؤوليات | معتمد في الاختبار |
|---|---|---|---|
| زائر VIS | اكتشاف الرياض والتحقق من التوفر قبل الحجز. |
| ★ نعم |
| نزيل/مسافر CLI | حجز الغرفة وإتمام العربون ومتابعة إقامته. |
| ★ نعم |
| مدير (المسؤول الإداري الوحيد) MGR | تسيير توفر الغرف والأسعار ومتابعة الحجوزات والرسائل. |
| ★ نعم |
المجالات
أساسي
- الحجز والإقامة VIS-01, VIS-02, CLI-01, CLI-02, CLI-04, CLI-05
- التواصل والتقييمات CLI-06, CLI-07
داعم
- الدفع والمالية CLI-03
- الحساب والمصادقة CPT-01
- الإدارة والتسيير MGR-01, MGR-02, MGR-03, MGR-04
خريطة العمليات الكبرى والعمليات
| عملية كبرى | العملية | الملف | النتائج | التغطية |
|---|---|---|---|---|
| إدارة الحجز أساسي · الحجز والإقامة | CLI-04 — متابعة الحجوزات | CLI | ✓ عرض الحجوزات, ✗ لا حجوزات مسجلة | لم يُشغَّل (CS-6) |
| CLI-05 — إلغاء الحجز | CLI | ✓ إلغاء مؤكد, ✗ رفض الإلغاء أقل من 48 ساعة | غير مختبَر | |
| جذب الزائر أساسي · الحجز والإقامة | VIS-01 — تصفح الموقع والتعرف على الغرف | VIS | ✓ عرض الغرف والأسعار | مختبَر: مطابق (CS-3, CL-10) |
| VIS-02 — البحث عن التوفر | VIS | ✓ عرض صفحة التوفر, ✗ تواريخ غير صحيحة أو ناقصة, ✗ عدد ضيوف خارج الحدود | مختبَر: مطابق (CN-1, CS-1, CS-2, CL-1, CL-2, CL-3, CL-4, CL-5) | |
| حجز غرفة أساسي · الحجز والإقامة | CLI-01 — اختيار الغرفة | CLI | ✓ الانتقال إلى الحجز, ✗ لا توفر على التواريخ المطلوبة | غير مختبَر |
| CLI-02 — إنشاء الحجز والملخص | CLI | ✓ ملخص صحيح مع العربون, ✗ رمز ترويجي غير صالح, ✗ تواريخ متداخلة مع حجز آخر | متوقف (CU-1) | |
| التقييم والولاء أساسي · التواصل والتقييمات | CLI-06 — ترك تقييم | CLI | ✓ نشر التقييم, ✗ رفض لأن النزيل لم يقم سابقًا | مختبَر: مطابق (CS-5) |
| الدعم والتواصل أساسي · التواصل والتقييمات | CLI-07 — التواصل مع الرياض | VIS | ✓ إرسال الرسالة, ✗ حقول مطلوبة ناقصة, ✗ تجاوز الحد الأقصى للأحرف | مختبَر: مطابق (CS-4, CL-7, CL-8, CL-9) |
| حجز غرفة داعم · الدفع والمالية | CLI-03 — دفع العربون 30% | CLI | ✓ تأكيد الدفع ورقم الحجز, ✗ فشل الدفع المحاكى, ✗ انتهاء صلاحية الحجز | غير مختبَر |
| إدارة الحساب داعم · الحساب والمصادقة | CPT-01 — إنشاء حساب وتسجيل الدخول | CLI | ✓ دخول ناجح, ✗ بيانات اعتماد خاطئة, ✗ كلمة مرور أقل من 6 أحرف | مختبَر: مطابق (CL-6) |
| تسيير الرياض داعم · الإدارة والتسيير | MGR-01 — تسيير تقويم الحجوزات | MGR | ✓ عرض الحجز الجديد, ✗ حجز غير ظاهر | مختبَر: مطابق (CU-2) |
| MGR-02 — حجب التواريخ | MGR | ✓ تواريخ محجوبة, ✗ تعارض مع حجز قائم | غير مختبَر | |
| MGR-03 — إدارة الغرف والأسعار | MGR | ✓ سعر محدث, ✗ سعر غير صالح | غير مختبَر | |
| MGR-04 — معالجة رسائل الاتصال | MGR | ✓ رسالة معالجة, ✗ رسالة غير ظاهرة | غير مختبَر |
قواعد التسيير الأساسية لكل عملية
| العملية | قاعدة التسيير | المصدر |
|---|---|---|
| VIS-01 — تصفح الموقع والتعرف على الغرف | RG-01 — سعر غرفة أطلس 900 درهم في الليلة لشخصين | مقروءة في الموقع : « Atlas 2 pers. Chambre intime aux tons ocre, vue sur le patio et ses orangers. 900 MAD / nuit » |
| RG-02 — سعر غرفة ماجوريل 1200 درهم في الليلة لثلاثة أشخاص | مقروءة في الموقع : « Majorelle 3 pers. Chambre lumineuse au bleu Majorelle, idéale pour une petite famille. 1 200 MAD / nuit » | |
| RG-03 — سعر جناح الكتبية 1800 درهم في الليلة لأربعة أشخاص | مقروءة في الموقع : « Suite Koutoubia 4 pers. Notre plus belle suite : salon privé, cheminée et vue sur les toits de la Médina. 1 800 MAD / nuit » | |
| RG-04 — سعر غرفة النخيل 750 درهم في الليلة لشخصين | مقروءة في الموقع : « Palmeraie 2 pers. Chambre douce et verdoyante, inspirée des jardins de la Palmeraie. 750 MAD / nuit » | |
| RG-05 — سعر غرفة منارة 1000 درهم في الليلة لشخصين | مقروءة في الموقع : « Menara 2 pers. Chambre élégante aux zelliges verts, ouverte sur la galerie. 1 000 MAD / nuit » | |
| VIS-02 — البحث عن التوفر | RG-01 — سعر غرفة أطلس 900 درهم في الليلة لشخصين | مقروءة في الموقع : « Atlas 2 pers. Chambre intime aux tons ocre, vue sur le patio et ses orangers. 900 MAD / nuit » |
| RG-02 — سعر غرفة ماجوريل 1200 درهم في الليلة لثلاثة أشخاص | مقروءة في الموقع : « Majorelle 3 pers. Chambre lumineuse au bleu Majorelle, idéale pour une petite famille. 1 200 MAD / nuit » | |
| RG-06 — الحد الأدنى للبالغين 1 والأقصى 4 | للتأكيد | |
| RG-07 — الحد الأدنى للأطفال 0 والأقصى 3 | للتأكيد | |
| CLI-01 — اختيار الغرفة | RG-06 — الحد الأدنى للبالغين 1 والأقصى 4 | للتأكيد |
| RG-07 — الحد الأدنى للأطفال 0 والأقصى 3 | للتأكيد | |
| CLI-02 — إنشاء الحجز والملخص | RG-06 — الحد الأدنى للبالغين 1 والأقصى 4 | للتأكيد |
| RG-07 — الحد الأدنى للأطفال 0 والأقصى 3 | للتأكيد | |
| RG-08 — ضريبة الإقامة 30 درهمًا لكل بالغ في الليلة | للتأكيد | |
| RG-09 — رمز RIAD10 يمنح خصمًا 10% على الإقامة فقط دون ضريبة الإقامة | للتأكيد | |
| RG-10 — العربون 30% يُحسب على المجموع بعد الخصم مع احتساب الضريبة | للتأكيد | |
| CLI-03 — دفع العربون 30% | RG-10 — العربون 30% يُحسب على المجموع بعد الخصم مع احتساب الضريبة | للتأكيد |
| CLI-04 — متابعة الحجوزات | RG-11 — الإلغاء ممكن حتى 48 ساعة قبل الوصول | مقروءة في الموقع : « Annulation possible jusqu'à 48 h avant l'arrivée. » |
| CLI-05 — إلغاء الحجز | RG-11 — الإلغاء ممكن حتى 48 ساعة قبل الوصول | مقروءة في الموقع : « Annulation possible jusqu'à 48 h avant l'arrivée. » |
| CLI-06 — ترك تقييم | RG-12 — نشر التقييمات مقصور على النزلاء الذين أقاموا في الرياض | مقروءة في الموقع : « Seuls les hôtes ayant séjourné au riad peuvent publier un avis. » |
| CLI-07 — التواصل مع الرياض | RG-13 — حقل البريد الإلكتروني مطلوب في نموذج الاتصال بحد أقصى 255 حرفًا | للتأكيد |
| RG-14 — حقل الرسالة مطلوب في نموذج الاتصال بحد أقصى 2000 حرف | للتأكيد | |
| CPT-01 — إنشاء حساب وتسجيل الدخول | RG-15 — كلمة المرور يجب ألا تقل عن 6 أحرف عند تسجيل الدخول | مقروءة في الموقع : « Mot de passe » |
| RG-16 — التسجيل بالبريد الإلكتروني وكلمة المرور مع بريد تأكيد | للتأكيد | |
| MGR-02 — حجب التواريخ | RG-06 — الحد الأدنى للبالغين 1 والأقصى 4 | للتأكيد |
| MGR-03 — إدارة الغرف والأسعار | RG-01 — سعر غرفة أطلس 900 درهم في الليلة لشخصين | مقروءة في الموقع : « Atlas 2 pers. Chambre intime aux tons ocre, vue sur le patio et ses orangers. 900 MAD / nuit » |
| RG-02 — سعر غرفة ماجوريل 1200 درهم في الليلة لثلاثة أشخاص | مقروءة في الموقع : « Majorelle 3 pers. Chambre lumineuse au bleu Majorelle, idéale pour une petite famille. 1 200 MAD / nuit » | |
| RG-03 — سعر جناح الكتبية 1800 درهم في الليلة لأربعة أشخاص | مقروءة في الموقع : « Suite Koutoubia 4 pers. Notre plus belle suite : salon privé, cheminée et vue sur les toits de la Médina. 1 800 MAD / nuit » | |
| RG-04 — سعر غرفة النخيل 750 درهم في الليلة لشخصين | مقروءة في الموقع : « Palmeraie 2 pers. Chambre douce et verdoyante, inspirée des jardins de la Palmeraie. 750 MAD / nuit » | |
| RG-05 — سعر غرفة منارة 1000 درهم في الليلة لشخصين | مقروءة في الموقع : « Menara 2 pers. Chambre élégante aux zelliges verts, ouverte sur la galerie. 1 000 MAD / nuit » | |
| MGR-04 — معالجة رسائل الاتصال | RG-13 — حقل البريد الإلكتروني مطلوب في نموذج الاتصال بحد أقصى 255 حرفًا | للتأكيد |
| RG-14 — حقل الرسالة مطلوب في نموذج الاتصال بحد أقصى 2000 حرف | للتأكيد | |
| — | RG-17 — لا يمكن حجز الغرفة مرتين على تواريخ متداخلة | للتأكيد |
| — | RG-18 — لا حجز في الماضي والحد الأدنى ليلة واحدة | للتأكيد |
| — | RG-19 — المدير هو المسؤول الإداري الوحيد | للتأكيد |
دفتر الاستلام
| المرجع | قصة المستخدم | النتيجة المتوقعة | النتيجة المحصّلة والأدلة | التوصية |
|---|---|---|---|---|
| CN-1 | En tant que نزيل، je veux حجز غرفة أطلس لليلتين، afin de تأمين إقامتي في الرياض. VIS-02 · RG-06 · RG-07 | الانتقال إلى صفحة التوفر بعد البحث بتواريخ صحيحة وعدد بالغين 2. | مطابق ردود الخادم
سلامة الصفحات المرتبطة: #1, #2, #3, #5, #6, #7, #8, #9, #10, #11 | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CS-1 | En tant que نزيل، je veux البحث عن جناح الكتبية لأربعة بالغين، afin de حجز أكبر غرفة لعائلتي. VIS-02 · RG-03 · RG-06 | عرض جناح الكتبية ضمن نتائج التوفر للتواريخ المطلوبة. | مطابق ردود الخادم
سلامة الصفحات المرتبطة: #2, #3, #5, #6, #7, #8, #9, #10, #11, #12 | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CS-2 | En tant que زائر، je veux البحث مع طفلين، afin de حجز إقامة عائلية مناسبة. VIS-02 · RG-07 | قبول عدد الأطفال 2 ضمن الحد الأقصى والانتقال إلى صفحة التوفر. | مطابق ردود الخادم
سلامة الصفحات المرتبطة: #2, #3, #5, #6, #7, #8, #9, #10, #11, #12 | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CS-3 | En tant que زائر، je veux مقارنة أسعار الغرف الخمس، afin de اختيار الغرفة المناسبة لميزانيتي. VIS-01 · RG-01 · RG-02 · RG-03 · RG-04 · RG-05 | عرض الغرف الخمس بأسعارها المعلنة بالدرهم في الصفحة الرئيسية. | مطابق سلامة الصفحات المرتبطة: #2, #3, #5, #6, #7, #8, #9, #10, #11, #12 | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CS-4 | En tant que زائر، je veux إرسال رسالة إلى الرياض، afin de الاستفسار قبل الحجز. CLI-07 · RG-13 · RG-14 | قبول الرسالة بعد تعبئة الحقول المطلوبة وإرسالها دون خطأ. | غير قابل للتنفيذ لم يُنفَّذ: عنصر غير موجود: input[type=text] — يُؤكَّد لاحقًا سلامة الصفحات المرتبطة: #4 | رفع العائق (لم يُنفَّذ: عنصر غير موجود: input[type=text] — يُؤكَّد لاحقًا) ثم إعادة التنفيذ. |
| CS-5 | En tant que زائر، je veux قراءة شروط نشر التقييمات، afin de معرفة من يحق له التقييم. CLI-06 · RG-12 | عرض شرط النشر وعدم وجود تقييمات منشورة حاليًا. | مطابق سلامة الصفحات المرتبطة: لا توجد ملاحظة تقنية على هذه الصفحات | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CS-6 | En tant que نزيل، je veux عرض حجوزاتي، afin de متابعة حالة حجزي وإلغائه إن لزم. CLI-04 · RG-11 | عرض صفحة الحجوزات مع شرط الإلغاء 48 ساعة قبل الوصول. | غير حاسم — للتأكيد النص المتوقع غائب: « Mes réservations » (الصفحة: « Riad Dar Zitoun Accueil Disponibilités Avis FAQ Contact EN Connexion Connexion E-mail Mot de passe ConnexionPas encore de compte ? Créer un compte Riad Dar Zito ») | تأكيد النتيجة المتوقعة مع فريق العمل ثم إعادة التنفيذ. |
| CU-1 | En tant que نزيل مسجل، je veux حجز ماجوريل لليلتين مع رمز RIAD10، afin de دفع عربون محسوب على المجموع بعد الخصم. قصة من العميل · CLI-02 · RG-09 · RG-10 | الوصول إلى مسار حجز ماجوريل؛ التحقق من الخصم والعربون غير ممكن لغياب صفحة الدفع. | غير قابل للتنفيذ لم يُنفَّذ: عنصر غير موجود: text=Voir les disponibilités — يُؤكَّد لاحقًا ردود الخادم
سلامة الصفحات المرتبطة: #1, #2, #3, #5, #6, #7, #8, #9, #10, #11 | رفع العائق (لم يُنفَّذ: عنصر غير موجود: text=Voir les disponibilités — يُؤكَّد لاحقًا) ثم إعادة التنفيذ. |
| CU-2 | En tant que مدير، je veux إيجاد الحجز الجديد في لوحة التسيير، afin de تحضير وصول النزيل. قصة من العميل · MGR-01 · RG-19 | لا يمكن تنفيذ هذا المسار: لا توجد لوحة تسيير في الموقع. | مطابق | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CL-1 | En tant que زائر، je veux البحث دون تاريخ وصول، afin de vérifier أن الحقل مطلوب. VIS-02 · RG-06 | عدم الانتقال إلى صفحة التوفر لأن تاريخ الوصول مطلوب. | مطابق ردود الخادم
سلامة الصفحات المرتبطة: #2, #3, #5, #6, #7, #8, #9, #10, #11, #12 | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CL-2 | En tant que زائر، je veux إدخال مغادرة قبل الوصول، afin de vérifier رفض التواريخ غير المنطقية. VIS-02 · RG-18 | رفض البحث لأن تاريخ المغادرة قبل تاريخ الوصول. | مطابق سلامة الصفحات المرتبطة: #2, #3, #5, #6, #7, #8, #9, #10, #11, #12 | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CL-3 | En tant que زائر، je veux إدخال صفر بالغين، afin de vérifier الحد الأدنى للبالغين. VIS-02 · RG-06 | رفض القيمة 0 لأن الحد الأدنى للبالغين هو 1. | مطابق ردود الخادم
سلامة الصفحات المرتبطة: #2, #3, #5, #6, #7, #8, #9, #10, #11, #12 | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CL-4 | En tant que زائر، je veux إدخال خمسة بالغين، afin de vérifier الحد الأقصى للبالغين. VIS-02 · RG-06 | رفض القيمة 5 لأن الحد الأقصى للبالغين هو 4. | مطابق سلامة الصفحات المرتبطة: #2, #3, #5, #6, #7, #8, #9, #10, #11, #12 | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CL-5 | En tant que زائر، je veux إدخال أربعة أطفال، afin de vérifier الحد الأقصى للأطفال. VIS-02 · RG-07 | رفض القيمة 4 لأن الحد الأقصى للأطفال هو 3. | مطابق سلامة الصفحات المرتبطة: #2, #3, #5, #6, #7, #8, #9, #10, #11, #12 | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CL-6 | En tant que نزيل، je veux تسجيل الدخول بكلمة مرور خاطئة، afin de vérifier رفض بيانات الاعتماد الخاطئة. CPT-01 · RG-15 | رفض تسجيل الدخول والبقاء في صفحة Connexion. | مطابق ردود الخادم
| الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CL-7 | En tant que زائر، je veux إرسال نموذج فارغ، afin de vérifier إلزامية الحقول. CLI-07 · RG-13 · RG-14 | عدم إرسال الرسالة لأن الاسم والبريد والرسالة مطلوبة. | مطابق سلامة الصفحات المرتبطة: #4 | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CL-8 | En tant que زائر، je veux إدخال بريد غير صحيح، afin de vérifier رفض الصيغة الخاطئة. CLI-07 · RG-13 | رفض الإرسال لأن صيغة البريد الإلكتروني غير صحيحة. | غير قابل للتنفيذ لم يُنفَّذ: عنصر غير موجود: input[type=text] — يُؤكَّد لاحقًا سلامة الصفحات المرتبطة: #4 | رفع العائق (لم يُنفَّذ: عنصر غير موجود: input[type=text] — يُؤكَّد لاحقًا) ثم إعادة التنفيذ. |
| CL-9 | En tant que زائر، je veux إرسال رسالة بأحرف خاصة، afin de vérifier قبول المحتوى عند الحد الأقصى. CLI-07 · RG-14 | قبول الأحرف الخاصة والرموز دون خطأ في الإرسال. | غير قابل للتنفيذ لم يُنفَّذ: عنصر غير موجود: input[type=text] — يُؤكَّد لاحقًا سلامة الصفحات المرتبطة: #4 | رفع العائق (لم يُنفَّذ: عنصر غير موجود: input[type=text] — يُؤكَّد لاحقًا) ثم إعادة التنفيذ. |
| CL-10 | En tant que زائر، je veux قراءة الأسئلة الشائعة، afin de معرفة سياسة الدفع والإلغاء. VIS-01 · RG-09 · RG-11 | عرض عناوين الأسئلة فقط دون أجوبة، فلا يمكن التحقق من سياسة الإلغاء أو الرمز. | مطابق سلامة الصفحات المرتبطة: #16 | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CN-2 | بصفتي نزيلاً مسجلاً، أريد حجز غرفة أطلس لليلتين مع رمز RIAD10، لأدفع عربوناً محسوباً على المجموع المخفّض. الحجز والدفع الإلكتروني · رمز RIAD10 = خصم 10% على الإقامة فقط · ضريبة الإقامة لا تُخفَّض أبداً · العربون 30% يُحسب على المجموع المخفّض شامل الضريبة | ظهور تأكيد الحجز مع رقم الحجز والمبلغ 522 MAD بعد الدفع المحاكى. | مطابق ردود الخادم
سلامة الصفحات المرتبطة: لا توجد ملاحظة تقنية على هذه الصفحات | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CS-20 | بصفتي نزيلاً مسجلاً، أريد حجز جناح الكتبية لليلتين، لأتحقق من صحة حساب العربون والرصيد. الحجز والدفع الإلكتروني · العربون 30% من المجموع شامل الضريبة | المبالغ معروضة صحيحة: 3720 إجمالي، 1116 عربون، 2604 رصيد. | مطابق ردود الخادم
سلامة الصفحات المرتبطة: لا توجد ملاحظة تقنية على هذه الصفحات | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CS-21 | بصفتي نزيلاً مسجلاً، أريد حجز غرفة النخيل لليلتين، لأتأكد من أن العربون الأدنى محسوب بدقة. الحجز والدفع الإلكتروني · العربون 30% من المجموع شامل الضريبة | المبالغ معروضة صحيحة: 1620 إجمالي، 486 عربون، 1134 رصيد. | مطابق ردود الخادم
سلامة الصفحات المرتبطة: لا توجد ملاحظة تقنية على هذه الصفحات | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CS-22 | بصفتي نزيلاً مسجلاً، أريد حجز غرفة ماجوريل لليلتين مع رمز RIAD10، لأدفع عربوناً على المجموع المخفّض. الحجز والدفع الإلكتروني · رمز RIAD10 = خصم 10% على الإقامة فقط · ضريبة الإقامة لا تُخفَّض أبداً | العربون بعد الخصم = 684 MAD والضريبة 120 MAD غير مخفّضة. | غير حاسم — للتأكيد النص المتوقع غائب: « 684 MAD » (الصفحة: « Riad Dar Zitoun Accueil Disponibilités Avis FAQ Contact Mes réservations EN Déconnexion Majorelle Vos coordonnées Nom complet E-mail Téléphone Code promo Appliq ») ردود الخادم
سلامة الصفحات المرتبطة: لا توجد ملاحظة تقنية على هذه الصفحات | تأكيد النتيجة المتوقعة مع فريق العمل ثم إعادة التنفيذ. |
| CL-20 | بصفتي نزيلاً مسجلاً، أريد الدفع دون تعبئة بياناتي، لأرى إن كان النظام يمنع الحجز الناقص. الحجز والدفع الإلكتروني · الاسم والبريد الإلكتروني مطلوبان | لا يتم تأكيد الحجز ويبقى المستخدم في صفحة الحجز. | مطابق دفع في وضع الاختبار (المزوّد: simulation) ردود الخادم
سلامة الصفحات المرتبطة: لا توجد ملاحظة تقنية على هذه الصفحات | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CL-21 | بصفتي نزيلاً مسجلاً، أريد الدفع ببريد إلكتروني خاطئ، لأرى إن كان النظام يرفض الصيغة. الحجز والدفع الإلكتروني · البريد الإلكتروني يجب أن يكون بصيغة صحيحة | رفض البريد غير الصالح وعدم تأكيد الحجز. | مطابق دفع في وضع الاختبار (المزوّد: simulation) ردود الخادم
سلامة الصفحات المرتبطة: لا توجد ملاحظة تقنية على هذه الصفحات | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CL-22 | بصفتي نزيلاً مسجلاً، أريد تطبيق رمز خصم خاطئ، لأرى إن كان النظام يرفضه دون تغيير المبلغ. الحجز والدفع الإلكتروني · رمز RIAD10 هو الرمز الصالح الوحيد | الرمز الخاطئ لا يغيّر المجموع ولا العربون. | مطابق ردود الخادم
سلامة الصفحات المرتبطة: لا توجد ملاحظة تقنية على هذه الصفحات | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
| CL-23 | بصفتي نزيلاً مسجلاً، أريد الدفع دون رقم بطاقة، لأرى إن كان النظام يمنع تأكيد الحجز. الحجز والدفع الإلكتروني · رقم البطاقة مطلوب للدفع المحاكى | لا يتم تأكيد الحجز دون رقم بطاقة. | مطابق دفع في وضع الاختبار (المزوّد: simulation) ردود الخادم
سلامة الصفحات المرتبطة: لا توجد ملاحظة تقنية على هذه الصفحات | الإبقاء على هذه الحالة في اختبارات عدم التراجع. |
السلامة التقنية
تقرير اختبار موقع رياض دار زيتون (مراكش) — نتائج أولية
يشتغل البحث عن التوفر والتحقق من المدخلات بشكل سليم، لكن المسار الذي يدرّ المال — اختيار الغرفة، إنشاء الحجز، دفع العربون، والإلغاء — لم يُختبَر بالكامل، لذلك لا يمكن إصدار موافقة نهائية اليوم. الإصلاحات المطلوبة قبل فتح الحجز للعموم محدودة وواضحة: سرعة الصفحة الرئيسية على الهاتف، ورؤوس الأمان، والالتزامات المتعلقة بالمعطيات الشخصية.
تم العثور على 17 مشكلات، منها 2 يجب إصلاحها أولًا.
أصلح هذه أولًا
- سبب واحد ← إصلاح واحدرؤوس أمان غائبة عن إعداد الموقع
السبب: سبب واحد: إعداد المضيف لا يرسل رؤوس الأمان، فلا سياسة أمان محتوى تمنع تأطير الصفحات، ولا سياسة أذونات تحدّ من صلاحيات المتصفح، ولا رأس يعزل النافذة المفتوحة، وبالتالي تبقى صفحة تسجيل الدخول قابلة للتأطير داخل موقع آخر.
إصلاح واحد: إضافة كتلة رؤوس واحدة في إعداد المضيف: سياسة أمان المحتوى مع منع تأطير الصفحات نهائيا والرأس القديم المرافق للمنع، وسياسة الأذونات، ورأس عزل نافذة التصفح مع السماح بالنوافذ المنبثقة، ثم التحقق من وصولها على كل الصفحات بما فيها صفحة تسجيل الدخول.
- #1مهمصفحة تسجيل الدخول قابلة للتأطير داخل موقع آخر (Chromium (محرّك Chrome))
لماذا أولًا: حساب الحريف يعطي الولوج إلى الحجوزات وإلى معطيات شخصية؛ إمكانية تأطير صفحة الدخول داخل موقع آخر تفتح الباب لصفحة مزيّفة تسرق بيانات الولوج ثم الحجوزات. الجهد : منخفض
الصفحة: https://riad-connect-hub.lovable.app/auth
الملاحظ: Encadrables : /auth
تفاصيل تقنية
العنوان الأصلي: Pages de connexion affichables dans un autre site (clickjacking)
المتوقع: Ces pages refusent d'être affichées dans un cadre étranger
الإصلاح الموصى به: Envoyer Content-Security-Policy: frame-ancestors 'none' (et X-Frame-Options: DENY).
- #2طفيفرؤوس أمان غائبة عن الموقع (الحاسوب · Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/
تفاصيل تقنية
العنوان الأصلي: En-têtes de sécurité absents sur riad-connect-hub.lovable.app
المتوقع: En-têtes de sécurité présents
الملاحظ: Manquants : Content-Security-Policy, Permissions-Policy
الإصلاح الموصى به: Les ajouter dans la configuration de l'hébergeur (fichier _headers Netlify, vercel.json...).
- #3ملاحظةرأس عزل نافذة التصفح غائب (Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/
تفاصيل تقنية
العنوان الأصلي: Cross-Origin-Opener-Policy absente : une fenêtre ouverte par un autre site garde un lien vers la vôtre
المتوقع: Cross-Origin-Opener-Policy: same-origin (ou same-origin-allow-popups si des fenêtres de paiement/connexion sont utilisées)
الملاحظ: Cross-Origin-Opener-Policy: absent
الإصلاح الموصى به: Ajouter Cross-Origin-Opener-Policy: same-origin-allow-popups, puis same-origin si aucun parcours n'en souffre.
- #4مهمحقل بدون تسمية في نموذج الاتصال (Chromium (محرّك Chrome))
لماذا أولًا: نموذج الاتصال هو القناة المباشرة لطلبات الزوار؛ حقل بدون تسمية يُربك قارئات الشاشة والملء التلقائي ويعني طلبات ضائعة أو ناقصة. الجهد : منخفض
الصفحة: https://riad-connect-hub.lovable.app/contact
تفاصيل تقنية
العنوان الأصلي: Accessibilité : champ-sans-libelle (label) (2 occurrence(s) sur 1 page(s)) — ordinateur, téléphone
المتوقع: Conforme WCAG 2.2 AA — WCAG 2.2 : 4.1.2 Nom, rôle et valeur (A), 1.3.1 Information et relations (A) · RGAA 4.1 : 11.1 Champ de formulaire avec étiquette
الملاحظ: input[maxlength="100"] Form elements must have labels; input[maxlength="100"] Form elements must have labels
الإصلاح الموصى به: axe-core (moteur de référence) : corriger chaque élément cité.
- سبب واحد ← إصلاح واحدلا موافقة مسبقة على ملفات التتبع
السبب: سبب واحد: لا شريط موافقة على الموقع، وفي الوقت نفسه تُودَع ملفات تتبع من طرف ثالث أثناء التصفح؛ فالموافقة غائبة أصلا والتتبع يعمل قبلها.
إصلاح واحد: تركيب أداة موافقة واحدة: شريط واضح يقبل أو يرفض، وحجب ملفات التتبع غير الضرورية قبل الحصول على الموافقة، مع الاحتفاظ بأثر يثبت اختيار الزائر.
- #5طفيفلا شريط لموافقة الزوار على ملفات التتبع (Chromium (محرّك Chrome))
لماذا أولًا: الموقع يجمع معطيات شخصية ويطلب دفع عربون: غياب الموافقة المسبقة على ملفات التتبع يعرّض المؤسسة للمساءلة ويجعل أي نشاط تتبع أو إعلان غير محمي قانونيا. الجهد : متوسط
الصفحة: https://riad-connect-hub.lovable.app/
تفاصيل تقنية
العنوان الأصلي: Aucun bandeau de consentement aux cookies détecté sur riad-connect-hub.lovable.app
المتوقع: Un bandeau qui demande l'accord (accepter / refuser / personnaliser)
الملاحظ: Ni outil de consentement connu, ni texte « cookies » avec un bouton d'acceptation, alors que des traceurs ou cookies de mesure sont présents.
الإصلاح الموصى به: Le RGPD et la directive « ePrivacy » (en France, les règles de la CNIL ; au Maroc, la loi 09-08 et la CNDP) demandent l'accord du visiteur AVANT de déposer un cookie ou d'appeler un service qui sert à mesurer l'audience ou à faire de la publicité. Les cookies strictement nécessaires (session, panier, langue) n'ont pas besoin d'accord. Installez un outil de gestion du consentement et bloquez les traceurs tant que le visiteur n'a pas choisi.
- #6طفيفملفات تتبع تُودَع قبل موافقة الزائر (Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/
تفاصيل تقنية
العنوان الأصلي: Cookies de mesure ou de publicité déposés avant tout consentement sur riad-connect-hub.lovable.app
المتوقع: Seuls des cookies techniques (session, panier, langue) avant l'accord
الملاحظ: Déposés sans accord : __cf_bm (supabase.co, tiers)
الإصلاح الموصى به: Le RGPD et la directive « ePrivacy » (en France, les règles de la CNIL ; au Maroc, la loi 09-08 et la CNDP) demandent l'accord du visiteur AVANT de déposer un cookie ou d'appeler un service qui sert à mesurer l'audience ou à faire de la publicité. Les cookies strictement nécessaires (session, panier, langue) n'ont pas besoin d'accord. Déposez ces cookies seulement après l'accord, et proposez « Refuser » aussi simplement que « Accepter ».
- سبب واحد ← إصلاح واحدصفحة رئيسية ثقيلة تُبطئ العرض على الهاتف
السبب: سبب واحد متكرر: ثقل موارد الصفحة الرئيسية — صورة الواجهة تُحمَّل بوزن يقارب 461 كيلوبايت وهي معروضة بحجم أصغر، وملف برمجي واحد يتجاوز 500 كيلوبايت — مع غياب معالجة التحميل المتأخر والتخزين المؤقت. هذا السبب نفسه يفسّر بطء التحميل المقاس على الهاتف وارتفاع زمن ظهور العنصر الأكبر.
إصلاح واحد: تقليص وزن الصفحة الرئيسية: ضغط صورة الواجهة وتحويلها إلى صيغة حديثة بأبعاد العرض الحقيقية مع تحميلها مسبقا، ثم تقسيم الحزمة البرمجية وإزالة ما لا يُستعمل منها وتأجيل تحميل الباقي، وتفعيل التخزين المؤقت. بعد ذلك إعادة القياس على الهاتف في شبكة ضعيفة للتأكد من النتيجة.
- #7طفيفصورة الواجهة أثقل من حجم عرضها (Chromium (محرّك Chrome))
لماذا أولًا: الصورة الرئيسية هي أول ما يراه الزائر على الهاتف وهي جزء من سبب تحميل يقارب ست ثوان ونصف؛ إصلاحها بسيط وأثره سريع على الزوار الذين يصلون قبل صفحة الحجز. الجهد : متوسط
الصفحة: https://riad-connect-hub.lovable.app/
تفاصيل تقنية
العنوان الأصلي: 1 image(s) trop lourde(s) pour leur taille d'affichage
المتوقع: Images < 300 Ko, dimensionnées pour l'affichage
الملاحظ: ttps://riad-connect-hub.lovable.app/assets/hero-O0-s_7b9.jpg : 461 Ko, 1920 px affichés en 1440 px
الإصلاح الموصى به: SVG ou WebP pour le logo ; images responsives (srcset, AVIF/WebP) ; préchargement de l'image principale.
- #8طفيفتحميل بطيء جدا للصفحة الرئيسية على الهاتف (الهاتف · Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/
المتوقع: Chargement < 3000 ms
الملاحظ: / 6547 ms
تفاصيل تقنية
العنوان الأصلي: Chargement lent (6547 ms) : / — téléphone uniquement
الإصلاح الموصى به: Mesurer avec Lighthouse ; compresser les images, decouper le JavaScript, mettre en cache.
- #9طفيفملف برمجي واحد يتجاوز 500 كيلوبايت (Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/
تفاصيل تقنية
العنوان الأصلي: Fichiers JavaScript lourds : 1 fichier(s) au-dessus de 500 Ko
المتوقع: Chaque fichier ≤ 500 Ko transférés
الملاحظ: https://riad-connect-hub.lovable.app/assets/index-BYEaChBb.js (text/javascript) : 574 Ko décompressés (167 Ko transférés)
الإصلاح الموصى به: Découper le JavaScript par page (code splitting), retirer les bibliothèques inutilisées (tree shaking), minifier et compresser (brotli) ; différer les scripts non essentiels (defer/async).
- #10طفيفصورة تتجاوز 300 كيلوبايت (Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/
الملاحظ: https://riad-connect-hub.lovable.app/assets/hero-O0-s_7b9.jpg (image/jpeg) : 462 Ko
تفاصيل تقنية
العنوان الأصلي: Images lourdes : 1 fichier(s) au-dessus de 300 Ko
المتوقع: Chaque fichier ≤ 300 Ko transférés
الإصلاح الموصى به: Convertir en WebP ou AVIF, redimensionner à la taille d'affichage (srcset), viser moins de 200 Ko par image ; charger en différé celles qui sont sous la ligne de flottaison.
- #11طفيفبطء غير مؤكد على الهاتف في شبكة ضعيفة (Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/
تفاصيل تقنية
العنوان الأصلي: Lent sur téléphone en réseau lent : LCP 4400 ms, chargement 4346 ms (non confirmé)
المتوقع: LCP ≤ 4000 ms et chargement ≤ 10000 ms dans ces conditions (profil mobile de Lighthouse)
الملاحظ: LCP 4400 ms, chargement 4346 ms (2 mesure(s), non confirmé)
الإصلاح الموصى به: Alléger d'abord l'élément principal affiché (image ou titre) : image compressée et préchargée (rel=preload), CSS critique en ligne, JavaScript différé ; servir les fichiers depuis un CDN proche des visiteurs.
- سبب واحد ← إصلاح واحدالصفحات القانونية غائبة ولا رابط إليها
السبب: سبب واحد: لا صفحة لسياسة الخصوصية ولا صفحة للمعلومات القانونية، ولا رابط لهما من الصفحة الرئيسية.
إصلاح واحد: نشر صفحة سياسة الخصوصية وصفحة المعلومات القانونية، وإدراج رابط ثابت لهما في أسفل كل صفحة.
- #12طفيفلا رابط إلى سياسة الخصوصية (Chromium (محرّك Chrome))
لماذا أولًا: زائر يهمّ بالدفع عبر الإنترنت يبحث عن سياسة الخصوصية قبل إدخال معطياته، وغياب الرابط إليها يوقفه أو يجعله يتردد في إتمام الحجز. الجهد : منخفض
الصفحة: https://riad-connect-hub.lovable.app/
تفاصيل تقنية
العنوان الأصلي: Pas de lien vers la politique de confidentialité
المتوقع: Un lien vers la politique de confidentialité (RGPD / loi 09-08)
الملاحظ: Aucun lien ni texte « confidentialité / privacy / données personnelles » trouvé sur l'accueil.
الإصلاح الموصى به: Publier une politique de confidentialité et la lier depuis le pied de page.
- #13طفيفلا صفحة للمعلومات القانونية (Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/
تفاصيل تقنية
العنوان الأصلي: Pas de mentions légales
المتوقع: Des mentions légales (éditeur, hébergeur, contact)
الملاحظ: Aucun lien « mentions légales / CGU / CGV / legal » trouvé sur l'accueil.
الإصلاح الموصى به: Ajouter une page de mentions légales liée depuis le pied de page.
الباقي
- #14طفيفصفحة تسجيل الدخول مفتوحة للفهرسة (Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/auth
تفاصيل تقنية
العنوان الأصلي: Pages de connexion ouvertes aux moteurs de recherche
المتوقع: noindex et Disallow sur les espaces privés
الملاحظ: Indexables : /auth ; robots.txt : User-agent: Googlebot Allow: / User-agent: Bingbot Allow: / User-agent: Twitterbot Allow: / User-agent: facebookexter
الإصلاح الموصى به: Ajouter <meta name=robots content=noindex> et Disallow: /admin, /vendeur (ou équivalents).
- #15ملاحظةلا ملف لجهة الاتصال الأمنية (Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/.well-known/security.txt
الملاحظ: HTTP 404
تفاصيل تقنية
العنوان الأصلي: Pas de /.well-known/security.txt
المتوقع: Un fichier security.txt indiquant comment signaler une faille (RFC 9116)
الإصلاح الموصى به: Ajouter /.well-known/security.txt avec un contact de sécurité.
- #16ملاحظةترتيب عناوين غير متسلسل في صفحة الأسئلة الشائعة (Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/faq
تفاصيل تقنية
العنوان الأصلي: Accessibilité : ordre-titres (heading-order) (2 occurrence(s) sur 1 page(s)) — ordinateur, téléphone
المتوقع: Conforme WCAG 2.2 AA — RGAA 4.1 : 9.1 Hiérarchie des titres
الملاحظ: .border-b:nth-child(1) > h3 Heading levels should only increase by one; .border-b:nth-child(1) > h3 Heading levels should only increase by one
الإصلاح الموصى به: axe-core (moteur de référence) : corriger chaque élément cité.
- #17ملاحظةست صفحات بدون عنوان مرجعي (Chromium (محرّك Chrome))
الصفحة: https://riad-connect-hub.lovable.app/
تفاصيل تقنية
العنوان الأصلي: Référencement : 1 problème(s) sur riad-connect-hub.lovable.app
المتوقع: Canonical propre à chaque langue, og:image, titres distincts
الملاحظ: sans canonical : /; /auth; /contact; /faq (+3)
الإصلاح الموصى به: Canonical auto-référent par langue, og:image/og:title partout, titre et canonical sur chaque page.
حسب الموضوع
- السرعة على الهاتف: أول ما يكلّف حجوزات — السرعة قبل صفحة الحجز هي أول ما يقرر إن كان الزائر سيرى الغرف والأسعار أو سيغادر؛ إصلاح وزن الصفحة من أرخص ما يمكن القيام به وأسرع ما يعطي أثرا على الحجوزات.
معظم المسافرين يبحثون عن غرفة من هاتفهم، وقياساتنا تُظهر أن الصفحة الرئيسية تُحمَّل ببطء شديد على الهاتف. كل هذا يرجع في جوهره إلى وزن موارد الصفحة نفسها. #7, #8, #9, #10, #11 - الأمان وحماية حساب الحريف — الحريف يودع معطياته الشخصية ويطلب دفع العربون من الموقع؛ ثقته هي رأس المال، وثغرة التأطير تسمح ببناء صفحة دخول مزيّفة تحمل واجهتكم لسرقة بيانات الولوج.
إعداد الموقع لا يرسل رؤوس الأمان المعتادة، وصفحة تسجيل الدخول تظهر ضمن الصفحات القابلة للتأطير داخل موقع آخر. #1, #2, #3, #15 - قانونيا: الموافقة، ملفات التتبع، والمعلومات الإلزامية — جمع المعطيات وطلب الدفع دون منصوص قانوني ودون وسيلة موافقة يعرّض المؤسسة للمساءلة أمام القانون المغربي والقواعد الأوروبية، ويُضعف ثقة الحريف في الرياض.
الموقع يجمع معطيات شخصية ويطلب دفع عربون، لكن لا توجد وسيلة موافقة للزائر ولا الصفحات القانونية التي ينتظرها. #5, #6, #12, #13 - إمكانية الوصول لجميع الزوار — حقل غير مسمّى في نموذج الاتصال يعني طلبات لا تُرسَل أو تُرسَل ناقصة، وترتيب عناوين غير متسلسل يجعل قراءة صفحة الأسئلة الشائعة متعبة؛ الإصلاح بسيط لكن أثره مباشر على الزوار.
عثرنا على مشكلتين في بنية الصفحات تجعلان استعمال الموقع أصعب لبعض الزوار، خاصة مستعملي قارئات الشاشة. #4, #16 - الظهور في محركات البحث — الظهور الجيد يجلب حجوزات مباشرة بلا عمولة وسيط، في حين أن صفحة دخول مفهرسة تُظهر للزائر صفحة لا تفيده وتشوّه صورة الموقع في نتائج البحث.
إشارات الفهرسة على الموقع غير مضبوطة: بعض الصفحات مفهرسة بلا عنوان مرجعي، وصفحة الدخول نفسها مفتوحة للفهرسة. #14, #17
الخطوات التالية
- إتمام اختبار مسار الحجز كاملا: اختيار الغرفة، إنشاء الحجز، دفع العربون، الحصول على رقم الحجز، ثم الإلغاء في الأجل المحدد.
- إعادة اختبار حساب العربون مع رمز التخفيض بنسبة 10%، وهي الحالة التي بقيت غير محسومة بعد إعادة اللعب.
- إصلاح رؤوس الأمان وموضع رأس منع التأطير على كل الصفحات، والتحقق من النتيجة بعد الإصلاح.
- ضغط الصورة الرئيسية وتقسيم الملف البرمجي، ثم إعادة قياس سرعة الصفحة الرئيسية على الهاتف في شبكة ضعيفة.
- توفير مرجع بصري وفتح محاور أمان المعطيات والاختبارات الوحدوية واختبارات المكوّنات، وهي محاور بقيت غير مغطاة في هذه الدورة.
حدود التغطية
- إمكانية الوصول : جزئي
تفاصيل تقنية
axe-core sur chaque page (bureau et téléphone) + focus clavier ; critères WCAG 2.2 et RGAA 4.1 cités dans les constats ; compléments navigateur : 7 page(s) (7 pages lues sur 7 visitées (mode complet)), contraste mesuré sur 14 texte(s) (clair, et sombre sur 7 page(s)), 280 tabulation(s) (119 élément(s) vérifiés pour le focus visible, 0 fenêtre(s) modale(s) cachée(s) parcourue(s) sans clic, 0 piège(s)), noms accessibles vérifiés sur 7 page(s), 0 PDF lié(s) non audité(s)
- الانحدار البصري : لم يُختبر
تفاصيل تقنية
Aucune reference approuvee : approuve un passage comme reference.
- المسارات حسب الدور : جزئي
تفاصيل تقنية
2 pages, 33 actions relevées, 0 action jouée (lecture seule) — rôle « [email] »
- منطق العمل : جزئي
تفاصيل تقنية
logique métier décrite par le client jouée par les scénarios métier (voir la ligne « Scénarios métier ») ; aucune idée « Depuis ton idée » à rapprocher
- الواجهات البرمجية / التكامل : جزئي
تفاصيل تقنية
pas de spécification OpenAPI trouvée (/openapi.json, /swagger.json, /api-docs, /api/openapi.json…) ; sondes GET : /api → 406, /api/health → 406, /graphql → 406 — importe le contrat de l'API pour des cas par opération ; spec reconstituée depuis le navigateur (7 page(s) — 7 pages lues sur 7 visitées (mode complet), 10 appel(s) observé(s), aucune requête ajoutée) : 1 point(s) d'entrée — POST /__l5e/trackevents [?] ; 0 constat(s)
- أمن البيانات : لم يُختبر
تفاصيل تقنية
aucune base détectée (Supabase : clé anon dans la page ; Firebase : apiKey + databaseURL) — le contrôle RLS demande un accès à la base ou une clé publique visible
- سيناريوهات العمل : جزئي
تفاصيل تقنية
19 cas conçus (1 nominal, 8 secondaires, 10 limites) ; joués : 19 (mode complet : CN-1, CS-1, CS-2, CS-3, CS-4, CS-5, CS-6, CU-1, CU-2, CL-1, CL-2, CL-3, CL-4, CL-5, CL-6, CL-7, CL-8, CL-9, CL-10) ; 14 réussis / 0 échecs / 0 bloqués / 4 non jouables ; 1 attendu(s) deviné(s) par le BA non vérifié(s) : à confirmer par le client (non déclarés) — CS-6 ; CS-4 non joué : élément introuvable : input[type=text] — à confirmer ; CU-1 non joué : élément introuvable : text=Voir les disponibilités — à confirmer ; CL-8 non joué : élément introuvable : input[type=text] — à confirmer ; CL-9 non joué : élément
- التحليل الثابت : لم يُختبر
تفاصيل تقنية
code source non fourni (champ « URL du code source » du panneau) ou mode rapide
- اختبارات الوحدات : لم يُختبر
تفاصيل تقنية
code source non fourni (champ « URL du code source » du panneau) ou mode rapide
- المكوّنات : لم يُختبر
تفاصيل تقنية
code source non fourni (champ « URL du code source » du panneau) ou mode rapide
- مجال آخر : جزئي
تفاصيل تقنية
Niveaux
6/13 exécutés, 3 partiels, 4 non testés (sur 13 niveaux du plan) ; demandés : 6/10 faits
- مجال آخر : جزئي
تفاصيل تقنية
À vérifier (sans constat)
1 point(s) non mesuré(s), sans constat : Accessibilité : contraste à vérifier à la main — fond non uni (image, dégradé, élément superposé ou transparence) : 17 sélecteur(s) sur 7 page(s) — .tracking-\[0\.25em\] : Element's background color could not be determined due to a background gradient — 1 page(s) : / ; h1 : Element's background color could not be determined due to a background gradient — 1 page(s) : / ; .max-w-xl : Element's background color could not be determined due to a bac
مدد الاختبار
- 6695 msplan du site (0 adresse(s) à visiter en plus)
- 13525 mscréation des comptes de recette (1/1 créé(s))
- 2201 msnavigation bureau p1 (chargement 569, réseau calme 1616, relevés 16)
- 5979 msa11y bureau p1
- 253 msfocus clavier bureau p1
- 2204 mscapture bureau p1
- 1154 msnavigation bureau p2 (chargement 486, réseau calme 655, relevés 13)
- 604 msa11y bureau p2
- 181 mscapture bureau p2
- 1516 msnavigation bureau p3 (chargement 560, réseau calme 938, relevés 18)
- 754 msa11y bureau p3
- 127 mscapture bureau p3
- 1104 msnavigation bureau p4 (chargement 422, réseau calme 667, relevés 15)
- 661 msa11y bureau p4
- 109 mscapture bureau p4
- 1147 msnavigation bureau p5 (chargement 393, réseau calme 742, relevés 12)
- 787 msa11y bureau p5
- 117 mscapture bureau p5
- 1113 msnavigation bureau p6 (chargement 416, réseau calme 683, relevés 14)
- 745 msa11y bureau p6
- 129 mscapture bureau p6
- 2964 msconnexion avec le compte de test (client) (réussie)
- 1342 msnavigation bureau p1 (chargement 434, réseau calme 887, relevés 21)
- 631 msa11y bureau p1
- 87 mscapture bureau p1
- 1680 msnavigation bureau p2 (chargement 527, réseau calme 1135, relevés 18)
- 778 msa11y bureau p2
- 1787 mscapture bureau p2
- 477 mssondes (robots.txt, pages inexistantes, paramètres, limites)
- 91 msliens (0 lien(s) vérifié(s) (plafond 50), 0 fil(s) réellement utilisé(s) sur 4, délai 8000 ms par lien, périmètre 2 ms, requêtes 0 ms, lien le plus lent 0 ms, 0 non vérifié(s) (délai ou réseau), 0 erreur(s) HTTP)
- 8794 msrgpd (visite en navigateur neuf + capture)
- 7317 msnavigation telephone p1 (chargement 6554, réseau calme 747, relevés 16)
- 5754 msa11y telephone p1
- 817 mscapture telephone p1
- 1112 msnavigation telephone p2 (chargement 466, réseau calme 632, relevés 14)
- 500 msa11y telephone p2
- 55 mscapture telephone p2
- 1302 msnavigation telephone p3 (chargement 395, réseau calme 891, relevés 16)
- 550 msa11y telephone p3
- 65 mscapture telephone p3
قرار GO / NO-GO معلّل
الأسباب (الأدلة)
- 21 حالة مطابقة من 27 منفّذة؛ 0 غير مطابقة؛ 2 غير حاسمة؛ 4 متوقفة.
- السلامة التقنية: 0 حرجة، 2 كبيرة، 15 صغيرة.
رأي الخبير
القرار: موافقة بشروط
الحجج
- البحث عن التوفر والتحقق من المدخلات يعملان بشكل صحيح على الحالات المختبرة (تواريخ ناقصة أو معكوسة، صفر بالغين، تجاوز الحد الأقصى للبالغين والأطفال). (قوي)
الأدلة : CN-1, CS-1, CS-2, CL-1, CL-2, CL-3, CL-4, CL-5 - عرض الغرف الخمس وأسعارها من الصفحة الرئيسية يعمل، ما يدعم وضوح العرض التجاري. (متوسط)
الأدلة : CS-3, processus:VIS-01, https://riad-connect-hub.lovable.app/ - المسار الذي يُدخل المال (اختيار الغرفة، إنشاء الحجز، دفع العربون 30%) غير مُغطّى أو محجوب، فلا يمكن تأكيد سلامة حساب العربون والخصم على المسار الكامل. (قوي)
الأدلة : processus:CLI-01, processus:CLI-02, processus:CLI-03, CU-1, I2, I7 - التحقق من مبلغ العربون مع رمز RIAD10 (CS-22) بقي «à confirmer» وإعادة اللعب (I1) كانت غير حاسمة، بينما نجحت حالات الحساب بدون رمز (CS-20، CS-21) وأُعيد لعبها بنجاح. (قوي)
الأدلة : CS-22, I1, CS-20, I4, CS-21, I5 - الإلغاء حتى 48 ساعة قبل الوصول، وهو وعد مكتوب للعميل، لم يُختبر فعليًا لعدم وجود حجز قائم ولا زر إلغاء ظاهر. (قوي)
الأدلة : processus:CLI-05, https://riad-connect-hub.lovable.app/my- - صفحة «حجوزاتي» تعمل بعد تسجيل الدخول (CS-6 نجح في إعادتَي لعب)، ما يدعم متابعة الحجز من طرف النزيل. (متوسط)
الأدلة : CS-6, I3, processus:CLI-04 - التحقق من المدخلات في صفحة الحجز يعمل على الحالات المختبرة (اسم وبريد فارغان، بريد غير صحيح، رمز خصم غير صحيح، بطاقة غائبة). (متوسط)
الأدلة : CL-20, CL-21, CL-22, CL-23 - واجهات الإدارة (حجب التواريخ، إدارة الغرف والأسعار، معالجة رسائل الاتصال) غير موجودة في الموقع، فلا يمكن اختبارها من الخارج. (متوسط)
الأدلة : processus:MGR-02, processus:MGR-03, processus:MGR-04 - نموذج الاتصال لم يُختبر فعليًا: CS-4 وCL-8 وCL-9 غير قابلة للعب (عنصر الإدخال غير موجود) وإعادة اللعب (I8) كانت غير حاسمة. (متوسط)
الأدلة : CS-4, CL-8, CL-9, I8, processus:CLI-07 - لا توجد ثغرات أمنية مكتشفة في الملفات الحساسة المسبورة (11 ملفًا، 0 مكشوف)، وهذا لا يغطي أمن البيانات لعدم وجود قاعدة بيانات مكتشفة. (ضعيف)
الأدلة : couverture:Securite applicative, couverture:Securite des donnees
المخاطر المتبقية
- خطأ محتمل في حساب العربون أو تطبيق رمز RIAD10 على المسار الكامل لم يُتحقق منه (CS-22 غير حاسم، I1).
- عدم إمكانية تأكيد أن الإلغاء حتى 48 ساعة يعمل فعليًا (CLI-05 غير مغطى).
- عدم إمكانية تأكيد أن الحجز يُنشئ رقم حجز ويُرسل تأكيدًا للنزيل (CLI-02 محجوب، I2).
- عدم إمكانية تأكيد منع الحجز المزدوج على تواريخ متداخلة (RG-17 خارج نطاق الاختبار).
- نموذج الاتصال قد يكون معطلاً أو غير قابل للاستخدام (CS-4، CL-8، CL-9 غير قابلة للعب).
- غياب واجهات الإدارة يعني عدم إمكانية تأكيد تسيير التقويم وحجب التواريخ والأسعار من الخارج.
- أمن البيانات غير مُختبر لعدم اكتشاف قاعدة بيانات.
الشروط
- اختبار مسار الحجز الكامل من البداية إلى النهاية: اختيار الغرفة (CLI-01)، إنشاء الحجز والملخص (CLI-02)، دفع العربون 30% (CLI-03)، والحصول على رقم الحجز.
- إعادة اختبار CS-22 (حساب العربون على غرفة ماجوريل مع رمز RIAD10) حتى نتيجة حاسمة، والتأكد من أن الخصم يُطبَّق على الإقامة فقط وأن العربون يُحسب على المجموع المخفّض شاملًا ضريبة الإقامة.
- اختبار الإلغاء فعليًا على حجز قائم والتحقق من احترام شرط 48 ساعة قبل الوصول (CLI-05).
- اختبار منع الحجز المزدوج على تواريخ متداخلة (RG-17).
- إعادة اختبار نموذج الاتصال (CS-4، CL-8، CL-9) بعد إصلاح أو تحديد عنصر الإدخال، والتأكد من وصول الرسائل إلى المدير.
- توفير واجهات الإدارة واختبار MGR-02 وMGR-03 وMGR-04 (حجب التواريخ، إدارة الغرف والأسعار، معالجة رسائل الاتصال).
نطاق الرأي
- مختبَر : تصفح الموقع والتعرف على الغرف (VIS-01)، البحث عن التوفر (VIS-02)، متابعة الحجوزات (CLI-04، CS-6)، ترك تقييم (CLI-06، CS-5)، إنشاء حساب وتسجيل الدخول (CPT-01، CL-6)، تسيير تقويم الحجوزات (MGR-01، CU-2)، التحقق من المدخلات في البحث والحجز (CL-1 إلى CL-5، CL-20 إلى CL-23)، الأداء (Core Web Vitals على 5 صفحات)، الأمان التطبيقي (11 ملفًا حساسًا)، الامتثال (سياسة الخصوصية، الإشعارات القانونية)، المرونة (بدون خدمة عاملة)، من البداية إلى النهاية حسب الدور (صفحتان متصلتان)
- غير مختبَر : اختيار الغرفة (CLI-01)، إنشاء الحجز والملخص (CLI-02، محجوب)، دفع العربون 30% (CLI-03)، إلغاء الحجز (CLI-05)، التواصل مع الرياض (CLI-07، CS-4/CL-8/CL-9 غير قابلة للعب)، حجب التواريخ (MGR-02)، إدارة الغرف والأسعار (MGR-03)، معالجة رسائل الاتصال (MGR-04)، إنشاء حساب جديد وبريد التأكيد (CPT-01، RG-16)، منع الحجز المزدوج على تواريخ متداخلة (RG-17)، أمن البيانات (لا قاعدة بيانات مكتشفة)، واجهة API (لا مواصفات OpenAPI)، CLI-04 متابعة الحجوزات : cas conçus, non joués dans ce mode
درجة الثقة: متوسطة
يثبت Avalyz ما رآه ولا يضمن الباقي: ما لم يُختبر غير مشمول. دون حساب اختبار لا تُستكشف الصفحات المتصلة؛ ومع حساب اختبار، تسجيل الدخول هو النموذج الوحيد المُرسل.
التقرير الكامل للحساب (المسارات، الأدلة، صيغة ISO 29119) مخصص للحسابات.