ما هي تقنيات تصميم اختبارات الصندوق الأسود؟
تشتق تقنيات الصندوق الأسود حالات الاختبار من المواصفات دون قراءة الشيفرة: تقسيم التكافؤ يجمع المدخلات التي يُفترض أن تتصرف بالطريقة نفسها، وتحليل القيم الحدّية يختبر أطراف كل مجموعة (0 و1 والحد الأقصى والحد الأقصى+1)، وجداول القرار تعدّد تركيبات الشروط، واختبار انتقال الحالات يتتبع التغيرات المسموحة والممنوعة، والاختبار الزوجي يغطي كل زوج من قيم المعاملات بحالات أقل بكثير من الجداء الكامل.
اقرأ الدليل: كيف تكتب حالات الاختبار (Test Cases)
كيفية استخدام مولّد جداول القرار
- أدخل الشروط بواقع شرط في كل سطر؛ واستخدم "Name: v1, v2" للشروط متعددة القيم.
- اذكر الإجراءات، واختيارياً القواعد التي تربط الشروط بالإجراءات.
- حدّد إجراءً افتراضياً وأبقِ الاختزال مفعّلاً للحصول على الجدول الأدنى.
- ولّد وصدّر جدول القرار وحالات الاختبار الخاصة به.
مزايا مولّد جداول القرار
- شروط منطقية ومتعددة القيم مع مصفوفة التركيبات الكاملة (حتى 1,024 قاعدة)
- قواعد مكتوبة بصيغة IF … AND … THEN مع الإجراءات، أو أسطر موضعية بقيم Y وN و-
- إجراء افتراضي للتركيبات التي لا تطابق أي قاعدة
- اختزال القواعد ذات النتائج المتطابقة في مدخلات «لا يهم» (don't-care)
- حالة اختبار واحدة لكل قاعدة، تكون الشروط فيها بيانات الاختبار والإجراءات النتيجة المتوقّعة
مثال على مولّد جداول القرار
قواعد الخصم
الإدخال:
Conditions: Customer logged in / Has valid coupon / Cart total: <50, >=50
Actions: Apply coupon discount / Free shipping / Show login prompt
Rules:
IF Customer logged in = N THEN Show login prompt
IF Customer logged in = Y AND Has valid coupon = Y AND Cart total = >=50 THEN Apply coupon discount, Free shipping
IF Customer logged in = Y AND Has valid coupon = Y AND Cart total = <50 THEN Apply coupon discount
IF Customer logged in = Y AND Has valid coupon = N AND Cart total = >=50 THEN Free shipping
Default action: No actionالنتيجة:
Rule Customer logged in Has valid coupon Cart total Actions
R1 Y Y <50 Apply coupon discount
R2 Y Y >=50 Apply coupon discount, Free shipping
R3 Y N <50 No action
R4 Y N >=50 Free shipping
R5 N - - Show login promptCustomer logged in = N لها الإجراء نفسه، فتُدمج في قاعدة واحدة بمدخلات «لا يهم».| التركيبة | الإجراءات | القاعدة بعد الاختزال |
|---|---|---|
1Y, Y, <50 | Apply coupon discount | R1Y, Y, <50 |
2Y, Y, >=50 | Apply coupon discount, Free shipping | R2Y, Y, >=50 |
3Y, N, <50 | No action | R3Y, N, <50 |
4Y, N, >=50 | Free shipping | R4Y, N, >=50 |
5N, Y, <50 | Show login prompt | R5N, -, - |
6N, Y, >=50 | Show login prompt | R5N, -, - |
7N, N, <50 | Show login prompt | R5N, -, - |
8N, N, >=50 | Show login prompt | R5N, -, - |
- مدموجة: قاعدة واحدة تغطي الآن عدة تركيبات
حسبتها الأداة من مدخلات المثال. القيم بترتيب Customer logged in، Has valid coupon، Cart total؛ وتعني «-» «لا يهم»: أي قيمة لذلك الشرط.
الأسئلة الشائعة حول مولّد جداول القرار
كيف أدخل الشروط؟
شرط واحد في كل سطر. يصبح الاسم المجرّد شرطاً بنعم/لا؛ بينما تعرّف الصيغة "Name: v1, v2, v3" شرطاً متعدد القيم. ويبني المولّد كل التركيبات (حتى 1,024 قاعدة).
كيف تعمل القواعد؟
اكتب "IF Condition = value AND Other = value THEN action, action" أو سطراً موضعياً بصيغة "Y, N, - => action". وتحصل التركيبات التي لا تطابق أي قاعدة على الإجراء الافتراضي.
ماذا يفعل الاختزال؟
تُدمج القواعد ذات الإجراءات المتطابقة التي تختلف في شرط واحد فقط في قاعدة واحدة بمدخل «لا يهم» ("-")، لتحصل على الجدول الأدنى الذي ينفّذه المختبِرون فعلياً.
لماذا تُولَّد حالات اختبار من الجدول؟
تصبح كل قاعدة حالة اختبار واحدة تكون فيها قيم الشروط بيانات الاختبار والإجراءات النتيجة المتوقّعة — تغطية كاملة للقرارات دون إغفال أي تركيبة.
المراجع
- ISTQB Certified Tester Foundation Level (CTFL) v4.0المنهج التأسيسي لاختبار البرمجيات: مستويات الاختبار وأنواعه وتقنيات تصميم الاختبارات وإدارة الاختبار والأدوات.
- ISTQB Glossaryالتعريفات القياسية لمصطلحات الاختبار — حالة الاختبار واختبار الانحدار والخطورة والأولوية وتحليل القيم الحدّية وغيرها.
- ISO/IEC/IEEE 29119-1:2022 — Software and systems engineering — Software testing — Part 1: General conceptsالمعيار الدولي لاختبار البرمجيات: المفاهيم والعمليات والتوثيق والتقنيات.