تقنيات تصميم حالات الاختبار
تقنيات تصميم حالات الاختبار
كتابة حالات الاختبار نشاطٌ تصميميٌّ بامتياز، لا مجرد إجراء ميكانيكي. المقاربة السذاجة — "اختبر كل شيء بكل مدخل ممكن" — مستحيلة رياضيًا حتى في الأنظمة المتواضعة. نموذج حجز عيادة يحتوي على حقل تاريخ وقائمة أوقات وحقل عمر المريض يُفضي إلى مليارات التوليفات المحتملة. مهمة المحلل هي انتقاء مجموعة تمثيلية صغيرة من المدخلات تمنح أقصى قدر من الثقة بأدنى قدر من الجهد. ثلاث تقنيات تجعل هذا الانتقاء علميًا لا اعتباطيًا: التقسيم إلى فئات متكافئة، وتحليل القيم الحدية، وجداول القرارات.
التقسيم إلى فئات متكافئة
التقسيم إلى فئات متكافئة (EP) يقوم على فكرة بسيطة: إذا كان النظام يعالج قيمةً داخل مجموعة بالطريقة ذاتها التي يعالج بها أي قيمة أخرى في تلك المجموعة، فيكفي اختبار قيمة واحدة ممثِّلة فقط. كل مجموعة تُسمى فئة متكافئة أو قسمًا متكافئًا.
لكل مدخل، تُقسَّم الفضاء القيمي إلى أقسام صالحة (مدخلات يجب على النظام قبولها) وأقسام غير صالحة (مدخلات يجب رفضها). ثم تختار قيمة اختبارية واحدة من كل قسم.
مثال — المتجر الإلكتروني: حقل كود الخصم. يجب أن يتألف كود الخصم من ثمانية أحرف وأرقام بالضبط. تكون الأقسام:
- صالح: ثمانية أحرف وأرقام بالضبط (مثال:
SAVE2024). - غير صالح — قصير جدًا: أقل من ثمانية أحرف (مثال:
SAVE). - غير صالح — طويل جدًا: أكثر من ثمانية أحرف (مثال:
SAVE20244). - غير صالح — رموز خاصة: يحتوي على رموز (مثال:
SAVE#24!).
بدلًا من اختبار كل سلسلة ثمانية أحرف ممكنة، تختبر قيمة واحدة لكل قسم — أربع حالات اختبار تغطي الفضاء المنطقي بأكمله. النظام إما يتحقق من الأكواد بصواب أو لا؛ مئات الأكواد الصالحة المختلفة تقع في القسم ذاته وتسلك السلوك نفسه.
تحليل القيم الحدية
تُظهر التجربة أن الأخطاء تتركز عند حواف الأقسام المتكافئة لا في وسطها. خطأ الإزاحة بمقدار واحد (> بدلًا من >=) لن يُكتشف إلا إذا اختبرت القيمة الحدية الدقيقة. تحليل القيم الحدية (BVA) يمتد فوق EP باختبار القيم عند حواف الأقسام وحولها عمدًا.
القاعدة الكلاسيكية في BVA تختبر ثلاث نقاط عند كل حد:
- أدنى الحد مباشرة (آخر قيمة في القسم الأدنى).
- عند الحد (القيمة الفاصلة الدقيقة).
- فوق الحد مباشرة (أول قيمة في القسم الأعلى).
مثال — شركة لوجستيات: وزن الطرد. يُطبّق نظام الشحن تعرفة عادية للطرود من 0.1 إلى 5.0 كجم وتعرفة سريعة من 5.1 إلى 20.0 كجم. الطرود التي تتجاوز 20.0 كجم تُرفض. نقاط اختبار BVA:
- حد العادي/السريع: اختبر 4.9 كجم (عادي)، 5.0 كجم (عادي)، 5.1 كجم (سريع).
- حد السريع/الرفض: اختبر 19.9 كجم (سريع)، 20.0 كجم (سريع)، 20.1 كجم (رفض).
- الحافة الدنيا: اختبر 0.0 كجم (رفض — أقل من الحد الأدنى)، 0.1 كجم (عادي — الحد الأدنى الصالح).
تسع قيم مختارة بعناية تكشف أي خطأ في ترميز الحدود. قيم عشوائية في المنتصف (3 كجم، 10 كجم) لن تجد أبدًا الخطأ الكامن عند 5.0 مقابل 5.1 كجم بالضبط.
جداول القرارات
جداول القرارات هي الأداة المثلى حين يعتمد سلوك النظام على توليفات من الشروط لا على نطاق مدخل واحد. تُجبرك على تعداد كل توليفة منطقية مميزة — مما يكشف الحالات التي نسيت المتطلبات تحديدها ويُظهر التناقضات حيث تنتج قاعدتان نتيجتين متعارضتين.
يتكون جدول القرارات من أربعة أرباع:
- رؤوس الشروط (يسار أعلى) — قائمة شروط المدخلات.
- إدخالات الشروط (يمين أعلى) — نعم/لا (أو قيم محددة) لكل شرط في كل عمود/قاعدة.
- رؤوس الإجراءات (يسار أسفل) — قائمة الإجراءات المحتملة للنظام.
- إدخالات الإجراءات (يمين أسفل) — علامة تحديد أو ✗ للإجراءات التي تُنفَّذ تحت كل قاعدة.
لـn من الشروط الثنائية تحصل على 2n قاعدة كحد أقصى. يبحث المحللون بعد ذلك عن قواعد يمكن دمجها (حين لا يؤثر شرط معين على الإجراء يُستبدل بشرطة "—") — وهذا ما يُعرف بـطي الجدول.
مثال — عيادة الحجز: منطق تأكيد الموعد. يجب أن يقرر نظام العيادة كيفية تأكيد موعد بناءً على ثلاثة شروط: (1) هل يمتلك المريض وثيقة تأمين سارية، (2) هل الفترة الزمنية المطلوبة متاحة، (3) هل لدى المريض فواتير غير مسددة.
قراءة الجدول: R1 (مؤمَّن، فترة متاحة، لا ديون) ← تأكيد الحجز. R2 (مؤمَّن، فترة متاحة، لديه ديون) ← تنبيه الدفع. R3 (مؤمَّن، فترة ممتلئة، لا ديون) ← قائمة انتظار. R4 (مؤمَّن، فترة ممتلئة، لديه ديون) ← تنبيه الدفع. R5 وR6 تندمجان في قاعدة واحدة: لا تأمين ← إعادة توجيه للدفع الذاتي بصرف النظر عن الفترة أو الفواتير (الشرطة "—" تُشير إلى الشروط غير المؤثرة). مع ثلاثة شروط ثنائية يبلغ الحد الأقصى النظري ثماني قواعد (23)، غير أن الطي يُخفضها إلى ست حالات اختبار مميزة.
اختيار التقنية المناسبة
في التطبيق العملي، هذه التقنيات الثلاث تُكمل بعضها. ابدأ بـالتقسيم إلى فئات متكافئة — فهو يُحدد الفئات التي تحتاج إلى تغطيتها. طبّق تحليل القيم الحدية في كل مكان يحتوي فيه القسم على حد رقمي أو مرتب — فهو يكتشف أخطاء الإزاحة التي يفوّتها EP. استعن بـجداول القرارات حين تجمع قاعدة عملية بين شرطين أو أكثر — في كل مرة تسمع فيها "إذا ... و... إذن" أو "إلا إذا ... أو..." في متطلب ما، فجدول القرارات هو الأداة الصحيحة تقريبًا.