ما هي تقنيات تصميم اختبارات الصندوق الأسود؟
تشتق تقنيات الصندوق الأسود حالات الاختبار من المواصفات دون قراءة الشيفرة: تقسيم التكافؤ يجمع المدخلات التي يُفترض أن تتصرف بالطريقة نفسها، وتحليل القيم الحدّية يختبر أطراف كل مجموعة (0 و1 والحد الأقصى والحد الأقصى+1)، وجداول القرار تعدّد تركيبات الشروط، واختبار انتقال الحالات يتتبع التغيرات المسموحة والممنوعة، والاختبار الزوجي يغطي كل زوج من قيم المعاملات بحالات أقل بكثير من الجداء الكامل.
اقرأ الدليل: كيف تكتب حالات الاختبار (Test Cases)
كيفية استخدام مولّد الاختبار الزوجي (Pairwise)
- أدخل المعاملات بصيغة "Name: value1, value2, value3"، بواقع معامل في كل سطر.
- أضف قيوداً للتركيبات المستحيلة عند الحاجة.
- ولّد وراجع إحصاءات التغطية؛ ثم صدّر الجدول بصيغة CSV أو JSON.
مزايا مولّد الاختبار الزوجي (Pairwise)
- توليد جميع الأزواج بخوارزمية جشعة على نمط IPO
- قيود: IF A = x THEN B <> y، وأزواج إلزامية، وتركيبات محظورة
- إحصاءات التغطية: عدد الاختبارات، والعدد الشامل، ونسبة التقليص، والأزواج المغطاة
- جدول مرقّم مع تصدير بصيغة CSV وJSON
- يتعامل مع ما يصل إلى 30 معاملاً و400 قيمة
مثال على مولّد الاختبار الزوجي (Pairwise)
مصفوفة المتصفح × نظام التشغيل × الدور
الإدخال:
Browser: Chrome, Firefox, Safari
OS: Windows, macOS, Linux
Role: admin, user
Constraint: IF OS = Linux THEN Browser <> Safariالنتيجة:
# Browser OS Role
1 Chrome Windows admin
2 Chrome macOS user
3 Chrome Linux admin
4 Firefox Windows user
…
8 tests instead of 16 allowed combinations (18 before the constraint); pairs covered 100%| يغطيه الاختبار رقم | WindowsOS | macOSOS | LinuxOS | adminRole | userRole |
|---|---|---|---|---|---|
ChromeBrowser | 1 | 2 | 3 | 1, 3 | 2 |
FirefoxBrowser | 4 | 5 | 6 | 5 | 4, 6 |
SafariBrowser | 7 | 8 | خارج | 7 | 8 |
adminRole | 1, 7 | 5 | 3 | ليس زوجاً: المعامل نفسه | ليس زوجاً: المعامل نفسه |
userRole | 4 | 2, 8 | 6 | ليس زوجاً: المعامل نفسه | ليس زوجاً: المعامل نفسه |
- زوج تغطيه الاختبارات المذكورة
- زوج يستبعده
IF OS = Linux THEN Browser <> Safari
- الاختبارات المولَّدة
- #1
Chrome · Windows · admin - #2
Chrome · macOS · user - #3
Chrome · Linux · admin - #4
Firefox · Windows · user - #5
Firefox · macOS · admin - #6
Firefox · Linux · user - #7
Safari · Windows · admin - #8
Safari · macOS · user
تذكر كل خانة الاختبارات التي تحتوي على القيمتين معاً. 8 اختبارات بدلاً من 16 تركيبة مسموحة (18 قبل القيد)، كما حسبتها الأداة.
الأسئلة الشائعة حول مولّد الاختبار الزوجي (Pairwise)
ما الاختبار الزوجي (pairwise)؟
أسلوب توافقي يضمن ظهور كل زوج من قيم المعاملات في اختبار واحد على الأقل. ولأن معظم العيوب تتعلق بعامل واحد أو عاملين، يكشفها أسلوب جميع الأزواج بجزء يسير من التركيبات الشاملة.
كيف أضيف القيود؟
استخدم "IF OS = iOS THEN Browser <> Edge" لاستبعاد زوج، أو "IF A = x THEN B = y" لفرض زوج، أو "A = x AND B = y" لحظر تركيبة. تُراعى القيود أثناء التوليد ويُبلَّغ عن الأزواج المستحيلة.
ما مدى التقليص الذي يحققه؟
لقيم 4×5×3×3×3 تبلغ المجموعة الشاملة 540 اختباراً؛ بينما تتراوح المجموعة الزوجية عادةً بين 20 و25. وتعرض الإحصاءات نسبة التقليص بالضبط وعدد أزواج القيم المغطاة.
هل الخوارزمية هي نفسها في PICT؟
هو مولّد جشع على نمط IPO قريب في روحه من PICT وAllPairs. والنتائج شبه دنيا وليست دنيا بشكل مثبت؛ أعد تشغيله بعد إعادة ترتيب المعاملات لمقارنة الأحجام.
ملاحظات تقنية
التوليد حتمي: المدخل نفسه يعطي الجدول نفسه دائماً. تُعدَّد أولاً جميع أزواج القيم مع استبعاد ما يحظره قيد بمفرده. ويبدأ كل صف من أول زوج غير مغطّى، ثم تُملأ بقية المعاملات بترتيب الإدخال بالقيمة التي تغطي أكبر عدد من الأزواج غير المغطاة مقابل الخلايا المثبّتة سلفاً، وعند التعادل تُختار القيمة الأسبق. وتُهمل الصفوف التي تخالف قيداً أو لا تضيف جديداً؛ ويتوقف التوليد عند 5,000 صف.
التغطية ثنائية (2-way): يظهر كل زوج مسموح مرة على الأقل، ولا تُستهدف التوليفات الثلاثية، وعدد الصفوف ليس أدنى حدّ مُثبتاً لكنه لا ينزل عن حاصل ضرب أكبر مجالين (5 × 4 = 20 في المثال). ويتوسّع القيد IF A = x THEN B = y إلى زوج محظور لكل قيمة أخرى من B؛ أما التوليفات المحظورة الممتدة على ثلاثة معاملات فأكثر فتستبعد الصفوف دون إنقاص عدد الأزواج. ويستند العدّ الشامل ونسبة الاختزال إلى التوليفات التي تسمح بها القيود فقط (تُعدَّد حتى 200,000 توليفة؛ وفوق ذلك يُعرض حاصل الضرب غير المقيّد مع الإشارة إلى أنه «قبل القيود»).
المراجع
- 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المعيار الدولي لاختبار البرمجيات: المفاهيم والعمليات والتوثيق والتقنيات.