نظرة عامة على تقنيات الاختبار
تقنية الاختبار (Test Technique) طريقة منهجية تقرر بها ماذا تختبر وكيف. تطبّقها على مصدر معلومات، مثل متطلب أو الشيفرة، فتساعدك على تحديد شروط الاختبار (Test Conditions) وعناصر التغطية (Coverage Items) واختيار بيانات الاختبار. ويصنّف منهج ISTQB للمستوى التأسيسي (الإصدار 4.0) التقنيات في ثلاث فئات بحسب ما تقوم عليه: تقنيات الصندوق الأسود (Black-box) تعتمد على السلوك المحدد، وتقنيات الصندوق الأبيض (White-box) على البنية الداخلية للشيفرة، والتقنيات المبنية على الخبرة (Experience-based) على معرفة المختبِر ومهارته.
خذ نموذج تسجيل فيه حقل عمر يقبل من 18 إلى 65. يعطيك تقسيم التكافؤ (Equivalence Partitioning)، وهو تقنية صندوق أسود، اختباراً واحداً لكل مجموعة أعمار. ويُظهر تقرير تغطية الفروع (Branch Coverage) لدى المطور، وهو مقياس صندوق أبيض، أن مسار الشيفرة الخاص بحقل العمر الفارغ لم يُنفَّذ قط. ويلصق مختبِر خبير عمراً تليه مسافة، لأن ذلك عطّل نموذجاً مشابهاً من قبل. ثلاث فئات، وثلاث زوايا مختلفة للحقل نفسه: كل منها قد يكشف عيوباً تفوت الفئتين الأخريين.
لماذا يهم
الاختبار الشامل مستحيل كما تقول المبادئ السبعة، لذا فكل حزمة اختبارات عيّنة. ومن دون تقنية تتبع العيّنة العادة: المسار السعيد (Happy Path) مرة أخرى، وأول القيم التي تخطر في البال، وفئات كاملة من العيوب لا يجرّبها أحد. أما التقنية فتجعل العيّنة مقصودة: تخبرك أي القيم تختار ولماذا.
والتقنيات تجعل عملك قابلاً للمراجعة أيضاً. فعبارة «اختبرتُ الأشياء المهمة» لا يمكن التحقق منها، أما «كل قسم وكل حدّ في قاعدة الرسوم، وكل انتقال صالح في حالة الطلب» فيمكن. فيكتشف المراجعون الثغرات قبل الإصدار لا بعده.
تقنيات الصندوق الأسود والصندوق الأبيض والمبنية على الخبرة
تقنيات الصندوق الأسود، وتسمى أيضاً التقنيات المبنية على المواصفات (Specification-based)، تستخرج الاختبارات من السلوك المحدد لموضوع الاختبار (Test Object): المتطلبات وقصص المستخدم وقواعد العمل وعقد الواجهة البرمجية. وهي لا تنظر في طريقة بناء البرنامج، لذا تبقى الاختبارات صالحة حين يعيد المطورون هيكلة الشيفرة (Refactoring).
تقنيات الصندوق الأبيض، وتسمى أيضاً التقنيات المبنية على البنية (Structure-based)، تستخرج الاختبارات من البنية الداخلية للشيفرة، مثل تعليماتها وفروعها، وتقيس مقدار ما نفّذته الاختبارات منها. وهي تحتاج إلى وجود التصميم أو الشيفرة. والمتطلب الذي لم يُنفَّذ أصلاً لا يترك شيفرة تُغطّى، فلا يستطيع اختبار الصندوق الأبيض أن يكشف عيب الإغفال هذا.
التقنيات المبنية على الخبرة تستخدم معرفة المختبِر بالمجال وبالعيوب السابقة وبالطرق التي تخفق بها البرمجيات عادةً. وهي تكشف عيوباً تفوتها التقنيات المنهجية، لكنها تعتمد كثيراً على الشخص، لذا فهي تكمّل الفئتين الأخريين ولا تحلّ محلهما.
- الصندوق الأسود: تقسيم التكافؤ، وتحليل القيم الحدّية، واختبار جداول القرار (Decision Table Testing)، واختبار انتقالات الحالة (State Transition Testing)، وهي التقنيات الأربع في المنهج التأسيسي، ثم اختبار حالات الاستخدام والاختبار الزوجي (Pairwise) والاختبار التوافيقي (Combinatorial) لاحقاً في هذه الوحدة.
- الصندوق الأبيض: اختبار التعليمات (Statement Testing) واختبار الفروع (Branch Testing)، وفيهما تُصمَّم الاختبارات لتنفيذ التعليمات القابلة للتنفيذ أو الفروع في الشيفرة، وتُقاس نسبة ما نُفِّذ منها على أنها تغطية؛ ثم تأتي تغطية الشروط والمسارات لاحقاً في هذه الوحدة.
- المبنية على الخبرة: تخمين الأخطاء (Error Guessing)، أي توقّع الأخطاء والعيوب المحتملة مما أخفق من قبل؛ والاختبار الاستكشافي (Exploratory Testing)، أي تصميم الاختبارات وتنفيذها وتقييمها في الوقت نفسه أثناء التعرّف على المنتج، وغالباً في جلسة محددة المدة يوجّهها ميثاق اختبار (Test Charter)، وهو بيان قصير بما يُستكشف ولماذا؛ والاختبار المبني على قوائم التحقق (Checklist-based Testing)، أي اختبار الشروط الواردة في قائمة تحقق مبنية على الخبرة.
الأساليب القائمة على التعاون: امنع العيوب ولا تكتفِ باكتشافها
تهدف التقنيات السابقة إلى اكتشاف العيوب. ويضيف المنهج أساليب الاختبار القائمة على التعاون (Collaboration-based Test Approaches)، وهي تهدف أيضاً إلى تجنّب العيوب بالتواصل قبل كتابة الشيفرة: الكتابة التعاونية لقصص المستخدم، ومعايير القبول، والتطوير الموجَّه باختبارات القبول (ATDD)، وقد تناولها درسا قصص المستخدم ومعايير القبول. فهي طريقة عمل مع ممثلي العمل والمطورين، لا فئة رابعة من التقنيات.
ومع ذلك تبقى التقنيات هي الأداة داخل هذه النقاشات. فحين يكتب الفريق المثال «الطلبات بقيمة 300 ريال فأكثر توصيلها مجاني»، يسأل المختبِر عن 299.99 و300.00، وهذا تحليل القيم الحدّية قبل أن يُكتب سطر واحد من الشيفرة.
اختيار التقنية
اسأل أولاً: من أي شيء تستخرج الاختبارات؟ القصة التي ما زالت في التنقيح (Refinement) تحتاج إلى التعاون. والسلوك المحدد يحتاج إلى تقنية صندوق أسود تختارها بحسب شكل القاعدة: مجموعات القيم لتقسيم التكافؤ، ومعه تحليل القيم الحدّية حين تكون القيم مرتبة كما في النطاق؛ وتوليفات الشروط لجدول القرار؛ والسلوك الذي يعتمد على ما حدث قبله لاختبار انتقالات الحالة؛ والمعاملات المستقلة الكثيرة للاختبار الزوجي. والشيفرة التي تحتاج إلى قياسها تستدعي تقنيات الصندوق الأبيض، أما التوثيق الضعيف أو المنطقة الجديدة فيستدعيان الاختبار الاستكشافي وتخمين الأخطاء.
الإجابة: قصة ما زالت في التنقيح
النتيجة: قصص المستخدم ومعايير القبول وATDDاتفقوا على الأمثلة قبل البرمجة لمنع العيوبقائم على التعاونالإجابة: سلوك محدد
سؤال 2: ما شكل القاعدة؟الإجابة: نطاقات أو مجموعات قيم
النتيجة: تقسيم التكافؤ وتحليل القيم الحدّيةعناصر التغطية: الأقسام، والقيم الحدّية حين تكون القيم مرتبةصندوق أسودالإجابة: توليفات من الشروط
النتيجة: اختبار جداول القرارعناصر التغطية: الأعمدة الممكنةصندوق أسودالإجابة: يعتمد على ما حدث قبله
النتيجة: اختبار انتقالات الحالةعناصر التغطية: الحالات أو الانتقالاتصندوق أسودالإجابة: معاملات مستقلة كثيرة
النتيجة: الاختبار الزوجيعناصر التغطية: أزواج قيم المعاملاتصندوق أسود
الإجابة: الشيفرة وبنيتها
النتيجة: اختبار التعليمات والفروعغالباً للمطورين في اختبار المكونات؛ لا يكشف المتطلبات غير المنفذةصندوق أبيضالإجابة: توثيق ضعيف أو منطقة جديدة
النتيجة: الاختبار الاستكشافي وتخمين الأخطاء وقوائم التحققيعتمد على المهارة؛ والميثاق والملاحظات تجعله قابلاً للمراجعةمبني على الخبرة
نقطة بداية لا قاعدة: معظم الميزات تحتاج إلى عدة تقنيات، والمخاطر تحدد مدى صرامة كل منها.
ثم دع السياق يعدّل اختيارك، وتوقّع أن تجمع بين عدة تقنيات، فمعظم الميزات تحوي قواعد بأشكال مختلفة.
- المخاطر: المخاطر الأعلى تستدعي تقنيات أكثر صرامة وتغطية أقوى، مثل الصيغة الثلاثية لتحليل القيم الحدّية، أو الانتقالات غير الصالحة إلى جانب الصالحة.
- مستوى الاختبار: يطبّق المطورون تقنيات الصندوق الأبيض غالباً في اختبار المكونات، أما الفئتان الأخريان فتصلحان لكل المستويات.
- أساس الاختبار (Test Basis): المواصفات الدقيقة تدعم تقنيات الصندوق الأسود، أما الغامضة فتحتاج إلى نقاش أولاً.
- القيود: في بعض المجالات تفرض العقود أو اللوائح تقنيات أو مستويات تغطية بعينها، ومهارات الفريق ووقته تحدّ مما هو واقعي.
جرّبها: مولّد أقسام التكافؤ جرّبها: مولّد الاختبار الزوجي (Pairwise)
مثال تطبيقي: تقنيات لطلب إرجاع
يضيف متجر إلكتروني طلبات الإرجاع. تأخذ كل قاعدة التقنية التي تناسب شكلها، وتبدأ الخطة بنقاش.
- التنقيح (التعاون): «يمكن طلب الإرجاع خلال 30 يوماً». يسأل المختبِر: من التسليم أم من الطلب؟ وهل اليوم الثلاثون داخل المهلة؟ وتصبح الإجابات معايير قبول.
- مهلة الإرجاع من 1 إلى 30 يوماً بعد التسليم (نطاق): يعطي تقسيم التكافؤ والصيغة الثنائية لتحليل القيم الحدّية 0 و1 و30 و31 يوماً.
- طريقة الاسترداد بحسب نوع الدفع (بطاقة أو دفع عند الاستلام)، وهل المنتج هدية، وهل فُتح (توليفات): جدول قرار فيه ما يصل إلى 2 × 2 × 2 = 8 أعمدة.
- حالة الإرجاع، والإلغاء مسموح فقط قبل أن تستلم شركة الشحن المنتج من العميل (حالات وأحداث): اختبار انتقالات الحالة، بما في ذلك محاولات غير صالحة مثل الإلغاء بعد استلام الشحنة.
- رسوم إعادة التخزين في دالة جديدة (شيفرة): يقيس المطور تغطية الفروع، ويسأل المختبِر عن الفروع التي ما زالت غير مغطاة.
- استلام المرتجعات عبر تكامل جديد مع شركة شحن، توثيقه قليل: جلسة استكشافية بميثاق اختبار، مع تخمين الأخطاء من عيوب سابقة مثل العناوين العربية الطويلة وانتهاء مهلة استجابة شركة الشحن.
أخطاء شائعة
- اعتبار تقنية واحدة هي العمل كله، مثل اختبار القيم الحدّية وحدها ثم القول إن الميزة اختُبرت.
- الاختيار بحكم العادة أو لأن هناك أداة له، لا بحسب شكل القاعدة: مثل قيم حدّية لخيارات غير مرتبة كطرق الدفع.
- عدّ تغطية الشيفرة المرتفعة دليلاً على أن المتطلبات مختبرة؛ فهي لا ترى المتطلبات التي لم تُنفَّذ قط.
- معاملة الاختبار المبني على الخبرة كأنه نقر بلا تخطيط: فمن دون ميثاق وملاحظات لا يعرف أحد ما الذي غُطّي.
- عدم تسجيل التقنية التي أنتجت حالة الاختبار، فلا يستطيع المراجعون الحكم على التغطية، ولا يعرف أحد سبب وجود الحالة.
من منظور ضمان الجودة
في الفريق الحقيقي يحدث الاختيار مرتين. ففي التنقيح تُصغي إلى شكل كل قاعدة وتطرح الأسئلة التي تجعلها قابلة للاختبار. وفي تصميم الاختبار تختار التقنية لكل قاعدة، وتسجّلها مع عناصر تغطيتها في حالة الاختبار أو في ملاحظات التصميم، وتجعل صرامتها على قدر المخاطر المتفق عليها في خطة الاختبار.
واقسم العمل بينك وبين المطورين: فهم يملكون تغطية الصندوق الأبيض على مستوى المكونات، وأنت تطلب الاطلاع على تقريرها للشيفرة عالية المخاطر. واحجز وقتاً لجلسات استكشافية على المناطق الجديدة أو المتغيرة. وحين يسأل أحد «هل اختُبرت بما يكفي؟» فأجب بالتقنيات والتغطية والمخاطر المتبقية، لا بالانطباع.
تمرين عملي
اختر التقنيات لتطبيق مواقف سيارات
لكل قاعدة من القواعد الخمس أدناه في تطبيق لمواقف السيارات في مدينة، سمِّ شكلها، وتقنية أو أسلوباً وفئته، وأول عناصر التغطية أو قيم الاختبار. ثم اكتب أسئلتك للتنقيح.
PARK-12 القصة: الدفع لموقف في الشارع عبر التطبيق
القاعدة 1: تستمر جلسة الوقوف من 15 إلى 240 دقيقة كاملة.
القاعدة 2: يعتمد السعر على المنطقة (A أو B أو C)، وهل لدى السائق
تصريح سكان، وهل السيارة كهربائية.
القاعدة 3: الجلسة «محجوزة» ثم «نشطة»، وتنتهي «مُنهاة» (أوقفها السائق)
أو «منقضية». يمكن إلغاء الجلسة المحجوزة فتصبح «ملغاة».
ويمكن تمديد الجلسة النشطة مرتين على الأكثر.
القاعدة 4: يعمل التطبيق على Android وiOS، بالعربية والإنجليزية،
ويقبل البطاقة أو المحفظة الرقمية أو رصيد الحساب.
القاعدة 5: تذكير SMS الجديد قبل انقضاء الوقت لا مواصفات له بعد.- سمِّ شكل كل قاعدة: نطاق، أو توليفات، أو حالات، أو معاملات مستقلة، أو لا مواصفات.
- اختر تقنية أو أسلوباً لكل قاعدة واكتب فئته.
- اكتب أول عناصر التغطية أو قيم الاختبار.
- اكتب أسئلتك لاجتماع التنقيح.
إظهار الإجابة النموذجية
القاعدة 1، نطاق: تقسيم التكافؤ وتحليل القيم الحدّية (صندوق أسود). اختبر 14 و15 و240 و241 دقيقة، مع قيمة معتادة مثل 60.
القاعدة 2، توليفات شروط: اختبار جداول القرار (صندوق أسود): ما يصل إلى 3 × 2 × 2 = 12 عموداً، ويقل العدد بعد دمج الأعمدة التي لا يغيّر فيها شرطٌ النتيجة.
القاعدة 3، حالات وأحداث: اختبار انتقالات الحالة (صندوق أسود). غطِّ الانتقالات الصالحة الخمسة، ومنها تمديد الجلسة النشطة، ومحاولات غير صالحة مثل تمديد ثالث أو تمديد جلسة منقضية.
القاعدة 4، معاملات مستقلة: الاختبار الزوجي (صندوق أسود). ستة اختبارات بدلاً من كل التوليفات وعددها 2 × 2 × 3 = 12 تغطي مع ذلك كل زوج من القيم.
القاعدة 5، لا مواصفات: تقنيات مبنية على الخبرة. جلسة استكشافية محددة المدة بميثاق، مع تخمين الأخطاء مثل تذكير يصل بعد تمديد الجلسة. واطلب من مالك المنتج معايير القبول بالتوازي.
الصندوق الأبيض: لا تحتاج أي قاعدة إلى أن تصمم أنت اختبارات صندوق أبيض؛ اطلب من المطورين تغطية الفروع لحساب السعر. الأسئلة: هل حدّ 240 دقيقة للحجز الواحد أم يشمل التمديدات؟ هل ينطبق تصريح السكان في كل المناطق؟ ساعةُ مَن تحدد انقضاء الوقت، الهاتف أم الخادم؟
أسئلة شائعة
ما أفضل تقنية اختبار؟
لا توجد تقنية هي الأفضل عموماً. فكل تقنية تستهدف نوعاً من القواعد ونوعاً من العيوب: تحليل القيم الحدّية يكشف أخطاء المقارنة بفارق واحد، وجداول القرار تكشف التوليفات المنسية، واختبار انتقالات الحالة يكشف الانتقالات الناقصة أو الممنوعة، والاختبار الاستكشافي يكشف مشكلات لم يحددها أحد. اختر بحسب شكل المشكلة والمخاطر، واجمع بين التقنيات.
هل يحتاج المختبِر إلى تقنيات الصندوق الأبيض إذا كان المطورون يكتبون اختبارات الوحدة؟
قد لا تصمم بنفسك إلا قليلاً من اختبارات الصندوق الأبيض، لكنك تحتاج إلى فهمها: لتقرأ تقرير التغطية، وتسأل أي الفروع عالية المخاطر لم تُختبر، وتعرف أن تغطية الفروع بنسبة 100% لا تقول شيئاً عن المتطلبات التي لم تُنفَّذ قط. والمختبِرون في أدوار الأتمتة كثيراً ما يكتبون اختبارات المكونات أيضاً.
هل الاختبار الاستكشافي هو نفسه الاختبار المرتجل (Ad hoc Testing)؟
لا. الاختبار المرتجل غير رسمي: يجري بلا تحليل اختبار ولا تصميم اختبار، وغالباً لا يترك سجلاً. أما الاختبار الاستكشافي فيصمم الاختبارات وينفذها ويقيّمها في الوقت نفسه، لكنه يمكن أن يكون منظماً: ميثاق يحدد المهمة، ومدة محددة للجلسة، وملاحظات تسجّل ما غُطّي وما وُجد. وعلى هذا البناء نفسه تقوم إدارة الاختبار بالجلسات (SBTM).
المراجع
- ISTQB Certified Tester Foundation Level (CTFL) v4.0المنهج التأسيسي لاختبار البرمجيات: مستويات الاختبار وأنواعه وتقنيات تصميم الاختبارات وإدارة الاختبار والأدوات.
- ISTQB Glossaryالتعريفات القياسية لمصطلحات الاختبار — حالة الاختبار واختبار الانحدار والخطورة والأولوية وتحليل القيم الحدّية وغيرها.
- Agile Testing: A Practical Guide for Testers and Agile Teams (Lisa Crispin, Janet Gregory)أرباع الاختبار الرشيق وكيف يعمل المختبرون داخل فريق التسليم — أساس «الاختبار في الطبقة الصحيحة».
تدرّب بأدوات متقن
اشتق فئات التكافؤ الصالحة وغير الصالحة لكل مدخل واختر قيم اختبار تمثيلية.
نفّذ تحليلاً كاملاً للقيم الحدّية (ثنائي القيم وثلاثي القيم) مع فئات التكافؤ والنتائج المتوقّعة.
أنشئ جداول القرار من الشروط والإجراءات، وولّد جميع تركيبات القواعد، واختزل المستحيل منها.
عرّف الحالات والأحداث، ثم ولّد جدول الانتقالات واختبارات الانتقالات الصالحة/غير الصالحة وتغطية 0-switch/1-switch.
ولّد أصغر مجموعة اختبارات زوجية (all-pairs) من المعاملات وقيمها.
ولّد معايير قبول بصيغة Given/When/Then وقائمة تحقق لتعريف الإنجاز (Definition of Done) من قصة مستخدم.
للتعمّق أكثر
تقدّمك في هذا الموضوع
سجّل الدخول لتتابع تقدّمك
علّم الموضوعات مكتملة، وتابع من حيث توقفت، وافتح امتحانات التخصص.