خطة الجودة الرئيسية
صيغة حالة الاختبار
صيغة حالة الاختبار — التوثيق قيد الإعداد.
كل حالة اختبار QC على المنصّة تَتبع نفس البنية الخماسية: ID، الشروط المُسبَقة، الخطوات، المُتوَقَّع، الخطورة. الاتّساق هو الانضباط الذي يَجعل مجموعات الانحدار قابلة للقراءة، قابلة للمقارنة، ومستقرّة عبر الإصدارات. حالة الاختبار التي لا تَلائم هذه الصورة ليست حالة اختبار — هي ملاحظة.
الحقول الخمسة
- ID
- مُعَرِّف فريد مستقرّ. الصيغة: <MODULE>-<LAYER>-<NNN>. مثال: CAL-FUNC-014 = Calendar / functional / حالة 14. الـ IDs ثابتة بعد النشر — الحالة المُهمَلة تَحتفظ بـ ID وتُعَلَّم DEPRECATED بدلاً من الحذف.
- الشروط المُسبَقة
- الحالة التي يجب أن توجد قبل بدء الاختبار. أمثلة: "مستخدم مُسَجَّل دخوله كمؤسّس"، "على الأقل 3 فعاليات مُتحقَّق منها موجودة بـ country=EG"، "viewport=mobile". الشروط المُسبَقة لا تَشمل آثاراً جانبية أبداً — هي تأكيدات على حالة البداية.
- الخطوات
- قائمة مُرَتَّبة من الأفعال، كل واحد قابل للملاحظة من الخارج. "Navigate to /calendar/events" خطوة؛ "the page renders" ليس. الخطوات مكتوبة كأوامر، ليست أوصافاً. كل خطوة قابلة للتحقّق بشكل مستقلّ.
- المُتوَقَّع
- الشرط الوحيد الذي، لو صحيح بعد تشغيل الخطوات، يَجعل الاختبار PASS. المتوقّعات المُرَكَّبة ("A و B و C") تَنقسم إلى حالات اختبار منفصلة. المُتوَقَّع قابل للملاحظة — يُؤكِّد ما يَراه المستخدم/النظام، ليس الحالة الداخلية.
- الخطورة
- 4 مستويات: blocker (يُوقف الإصدار)، critical (يجب-إصلاحه هذا sprint)، major (ينبغي-إصلاحه)، minor (تلميع). يُستخدم للفرز حين يَفشل اختبار — blocker fails تَعكس البناء تلقائياً؛ minor fails مُؤرشَفة لكنها لا تُوقف القطار.
مثال مُنَفَّذ
ID: CAL-FUNC-014 · الخطورة: blocker · الشروط: على الأقل CalendarEvent واحد بـ status='closing-soon' موجود في mock-calendar-events؛ viewport=desktop · الخطوات: (1) Navigate to /en/calendar (2) اعثر على شريط "Closing soon" · المُتوَقَّع: الشريط يَرسم على الأقل كرت فعالية واحد مع شارة "closing soon" بصبغة warning وشريحة موعد تَعرض الأيام المتبقّية.
