جودة البرمجيات / أساسي: الاستدلال وتصميم الاختبار / الدرس 5
جداول القرار وانتقالات الحالة
نمذج القواعد المعتمدة على التركيبات والتاريخ. اشتق اختبارات فعلية لأهلية المنحة وإلغاء التسجيل دون اعتبار قائمة الشاشات نموذجاً سلوكياً كاملاً.
في هذه الصفحة
أهداف الدرس
- تحويل الشروط المركبة إلى قواعد قرار.
- اختبار انتقالات الحالة الصالحة وغير الصالحة.
- شرح تغطية النموذج والتواريخ الغائبة.
إظهار التركيبات بوضوح
تتاح المنحة عندما تكون أهلية المتعلم موثقة ولم يستخدم منحة خلال السنة. لا يكفي اختبار الشرطين منفردين إذا جمعهما التنفيذ بطريقة خاطئة. يظهر جدول القرار التركيبات ويربط كل تركيب بفعل. ابدأ بجميع التركيبات الممكنة، ثم بسّط فقط حين لا يستطيع شرط تغيير النتيجة فعلاً. وثّق التركيبات المستحيلة وسببها بدلاً من حذف الحالات المزعجة. اسأل إن كانت البيانات الغائبة أو المجهولة حالة ثالثة؛ فقد يخفي النموذج المنطقي تحققاً معلقاً تدعمه العملية الفعلية.
حالة محلولة: الموافقة على المنحة
جهّز متعلماً مستقلاً لكل قاعدة حتى لا تلوث الموافقات السابقة الحالات اللاحقة. في R1 تنتج الأهلية الموثقة وعدم الاستخدام السابق موافقة واحدة وسجل استخدام واحداً. وفي R2 يسبب الاستخدام السابق الرفض رغم التوثيق. ترفض R3 وR4 غير الموثقين بغض النظر عن الاستخدام السابق. افحص عدم إنشاء سجل استخدام للطلبات المرفوضة. إذا نجحت الأربع، فأبلغ عن تغطية القواعد الأربع في النموذج، لا جميع سلوكيات المنحة؛ فما زال تبدل السنة والتحقق المعلق بحاجة لفحوص.
القاعدة | موثق | مستخدم هذه السنة | النتيجة
R1 | نعم | لا | موافقة واحدة
R2 | نعم | نعم | رفض
R3 | لا | لا | رفض
R4 | لا | نعم | رفض
تبقى R4 مفيدة ولو ندرت؛ فهي تكشف منح الأهلية اعتماداً على التاريخ وحده.
يغير التاريخ معنى الفعل
قد يكون التسجيل معلقاً أو مؤكداً أو ملغى. يختلف معنى «إلغاء» حسب الحالة؛ فقد يحرر إلغاء المعلق حجزاً، ويطلب إلغاء المؤكد استرداداً، ولا ينبغي أن يكرر إلغاء الملغى الاسترداد. عرّف الانتقال بالحالة والحدث وشرط السماح والأثر. أدرج أحداثاً غير صالحة مثل تأكيد تسجيل ملغى. ليست الشاشة بالضرورة حالة؛ فقد تعرض شاشتان الحالة التجارية نفسها، بينما تمثل شاشة واحدة حالات متعددة تختلف أفعالها المسموحة.
حالة محلولة: إلغاء مكرر
أنشئ تسجيلاً معلقاً ثم أكّده وألغِه ثم ألغِه ثانية بالمعرف نفسه. بعد الإلغاء الأول توقّع حالة ملغاة وطلب استرداد واحداً وفق السياسة. وبعد الثاني توقّع الحالة نفسها وعدداً ثابتاً لطلبات الاسترداد. يفحص التسلسل أكثر من زيارة الحالات الثلاث؛ فهو يحقق في حدث ينطلق من حالة نهائية. احتفظ بالطوابع الزمنية والمعرفات دليلاً. لا تعِد ضبط الكائن بين الخطوات؛ فهذا يمحو التاريخ الذي صُممت الحالة لفحصه.
الحالية | الحدث | التالية والأثر المتوقع
معلق | تأكيد | مؤكد / تثبيت المقعد
مؤكد | إلغاء | ملغى / طلب استرداد واحد
ملغى | إلغاء | ملغى / لا استرداد إضافي
ملغى | تأكيد | رفض / يبقى ملغى
يفحص الصف الأخير انتقالاً غير صالح لا تفرضه تغطية الحالات وحدها.
تسمية معيار التغطية
تسأل تغطية الحالات هل وصل الاختبار إلى كل حالة في النموذج، وتسأل تغطية الانتقالات هل نفّذ كل انتقال فيه. لا تضمن أي منهما فحص كل مسار أو شرط أو حدث متزامن أو تاريخ طويل. قد يكون النموذج خاطئاً أو ناقصاً؛ فراجعه مع أمثلة أصحاب المصلحة وحوادث الاستخدام. رتّب التركيبات حسب الضرر المحتمل، واستخدم الاستكشاف لتحدي التبسيط. عند تغير العملية حدّث الجدول أو الرسم واختباراته المرتبطة معاً؛ فقد تجعل النمذجة القديمة نسبة تغطية مرتفعة مضللة.
الأخطاء الشائعة وإصلاحها
فحص الشروط دون تركيباتها
- لماذا يحدث؟
- إغفال التفاعل بين AND وOR.
- كيف تصلحه؟
- حصر القواعد الممكنة والتحقق من فعل كل منها.
- كيف تتجنب تكراره؟
- مراجعة جدول قرار للسياسات المركبة.
مساواة زيارة الشاشات بتغطية الحالات
- لماذا يحدث؟
- الخلط بين العرض والحالة التجارية.
- كيف تصلحه؟
- ملاحظة الحالة المحفوظة والأحداث المسموحة.
- كيف تتجنب تكراره؟
- تسمية الحالات بمفاهيم المجال.
اختبار الانتقالات الصالحة وحدها
- لماذا يحدث؟
- إغفال النموذج للأحداث الممنوعة أو المكررة.
- كيف تصلحه؟
- إضافة انتقالات غير صالحة والتحقق من ثبات الحالة.
- كيف تتجنب تكراره؟
- مراجعة الحالات النهائية وإعادة المحاولة صراحة.
اختبر فهمك
1. تتطلب القسيمة حساباً مدفوعاً أو رمز شريك. أعط جميع القواعد المنطقية.
اعرض الحل المشروح
تقبل تركيبات مدفوع/شريك نعم/نعم ونعم/لا ولا/نعم، وترفض لا/لا. استخدم حسابات جديدة وتحقق من الخصم وسجل استخدام واحد للمقبول، وعدم التسجيل للمرفوض. تكشف حالتا نعم/لا ولا/نعم تنفيذاً يشترط الأمرين معاً.
2. زارت الاختبارات كل الحالات لكن عيباً يسمح بشحن الملغى. ما الناقص؟
اعرض الحل المشروح
لا تتحقق زيارة الحالات من حدث الشحن الممنوع من حالة ملغاة. أنشئ طلباً ملغى واطلب شحنه، وتوقّع الرفض وثبات الحالة وعدم إنشاء سجل شحن. اربط الحالة بالنموذج كانتقال مرفوض.
أهم ما تعلمته
- تكشف جداول القرار التفاعلات وتكشف الانتقالات السلوك المعتمد على التاريخ.
- حدّد دائماً النموذج ومعيار التغطية اللذين تصفهما النتيجة.