مبادئ الاختبار السبعة
مبادئ الاختبار السبعة (Seven Testing Principles) إرشادات عامة قصيرة في منهج ISTQB للمستوى التأسيسي تنطبق على الاختبار كله، وتصف كيف يتصرّف: ما الذي يستطيع إثباته، ولماذا لا يستطيع تغطية كل شيء، ومتى يكون أجدى، وأين تختبئ العيوب، ولماذا لا يناسب نهج واحد كل منتج. وهي ليست قواعد ولا خطوات إجرائية، بل الأسباب التي تقف خلف اختيارات المختبِر اليومية.
مثال ذلك: ينتهي سبرنت (Sprint) وقد نجحت الاختبارات كلها، وعددها 300 اختبار. تخبرك المبادئ بما يعنيه ذلك وما لا يعنيه: قد تبقى عيوب موجودة، وهذه الاختبارات عيّنة صغيرة من عدد أكبر بكثير من الاختبارات الممكنة، وإذا كانت تُنفَّذ دون تغيير منذ أشهر فقد لا تعود قادرة على كشف عيوب جديدة.
لماذا يهم
الفرق التي تتجاهل هذه المبادئ ترتكب أخطاء متوقعة: تَعِد بإصدارات «خالية من الأخطاء»، وتختبر كل شيء بالعمق نفسه فينفد الوقت، ولا تبدأ الاختبار إلا بعد اكتمال الشيفرة، وتثق بحزمة انحدار توقفت عن كشف أي شيء منذ زمن. وكل خطأ من هذه يكلّف مالاً أو ثقة حين يصل الإخفاق إلى المستخدمين.
وبالنسبة إليك مختبِراً، فالمبادئ هي الحجج التي تقف خلف قراراتك: لماذا تنال وحدة الدفع اختباراً أكثر من صفحة الإعدادات، ولماذا تريد رؤية القصة قبل بنائها، ولماذا لا تكون عبارة «نجحت كل الاختبارات» هي التقرير كله. والقرار يُقبل بسهولة أكبر حين تستطيع تسمية سببه.
المبادئ السبعة في منهج ISTQB CTFL v4.0
يسرد القسم 1.3 من منهج ISTQB للمستوى التأسيسي (الإصدار 4.0) هذه المبادئ السبعة بهذه الأسماء. كل مبدأ خلاصة خبرة طويلة في مشاريع كثيرة، وكل مبدأ يغيّر شيئاً تفعله.
- المبدأ الأول، «الاختبار يُظهر وجود العيوب لا غيابها» (Testing shows the presence, not the absence of defects): يستطيع الاختبار أن يُظهر وجود عيوب، لكنه لا يستطيع إثبات خلوّ البرنامج منها. وهو يقلّل احتمال بقاء عيوب غير مكتشفة.
- المبدأ الثاني، «الاختبار الشامل مستحيل» (Exhaustive testing is impossible): اختبار كل شيء غير ممكن إلا في الحالات البسيطة جداً، لذا يُركَّز الجهد بتقنيات الاختبار وترتيب أولويات حالات الاختبار والاختبار المبني على المخاطر.
- المبدأ الثالث، «الاختبار المبكر يوفّر الوقت والمال» (Early testing saves time and money): العيب الذي يُزال مبكراً لا يسبّب عيوباً أخرى في نواتج العمل المبنية عليه، وتقلّ الإخفاقات التي تقع لاحقاً في دورة الحياة.
- المبدأ الرابع، «العيوب تتجمّع» (Defects cluster together): عدد قليل من المكوّنات يحتوي عادةً معظم العيوب المكتشفة، أو يسبّب معظم الإخفاقات أثناء التشغيل، وهذا مثال على مبدأ باريتو (Pareto principle).
- المبدأ الخامس، «الاختبارات تَبلى» (Tests wear out)، واسمه الأقدم مفارقة المبيد الحشري (Pesticide paradox): الاختبارات التي تتكرر مرات كثيرة دون تغيير تكشف عيوباً جديدة أقل فأقل.
- المبدأ السادس، «الاختبار يعتمد على السياق» (Testing is context dependent): لا يوجد نهج واحد يناسب كل منتج، فالاختبار يُجرى بطرق مختلفة في سياقات مختلفة.
- المبدأ السابع، «مغالطة غياب العيوب» (Absence-of-defects fallacy)، واسمها الأقدم مغالطة غياب الأخطاء (Absence-of-errors fallacy): التحقق (Verification) وحده لا يجعل النظام ناجحاً، إذ يجب أن يلبي أيضاً احتياجات مستخدميه، لذا يلزم التحقق من الصلاحية (Validation) أيضاً.
ما يستطيع الاختبار ادّعاءه وما لا يستطيع: المبادئ الأول والثاني والسابع
المبدأ الأول يغيّر طريقة إبلاغك. ينجح تطبيق مصرفي في اختبارات الانحدار كلها وعددها 250 اختباراً، وبعد أسبوع من الإصدار يكتشف العملاء أن التحويلات الدورية المجدولة يوم 31 تُتخطّى في الأشهر التي تقل أيامها عن 31 يوماً. لم يستخدم أي اختبار ذلك التاريخ. وكما رأيت في درس أهمية اختبار البرمجيات، فإن التنفيذ الناجح دليل على ما اختُبر، ولا يقول شيئاً عمّا لم يُختبر؛ لذا أبلِغ عن النطاق والنتائج وما لم يُختبر والمخاطر المتبقية، ولا تقل أبداً إن البرنامج «خالٍ من الأخطاء».
المبدأ الثاني يغيّر طريقة اختيارك للاختبارات. نموذج البحث عن فندق أدناه فيه خمسة حقول وأكثر من 17 مليون تركيبة صالحة، قبل احتساب القيم غير الصالحة والمتصفحات والأجهزة. لذا تختار الاختبارات بتقنيات تصميم الاختبار التي ستتعلّمها لاحقاً في المسار: أقسام التكافؤ والقيم الحدّية لكل حقل، وتركيبات الاختبار الزوجي (Pairwise) بين الحقول، وأكبر عمق حيث يكون الإخفاق أشدّ ضرراً.
المبدأ السابع يغيّر ما تفحصه إلى جانب المواصفات. بوابة تسجيل المقررات في جامعة تحقق كل القواعد المحددة وعددها 40 قاعدة، وقد أُصلح كل عيب اكتُشف، ومع ذلك يواصل الطلاب التسجيل في مقررات تتعارض أوقات محاضراتها، لأن البوابة لا تعرض جدولاً زمنياً أبداً. وكما في درس التحقق والتحقق من الصلاحية: راقب مستخدمين حقيقيين وهم يؤدّون المهمة الرئيسية، وشارك في اختبار القبول، وأبلِغ عن مثل هذه الفجوات حتى إن لم يُخالَف أي متطلب.
Hotel search: every valid combination
city 50
check-in 365 (dates up to one year ahead)
nights 30 (1..30)
guests 8 (1..8)
room type 4
------------------------------------------------
50 x 365 x 30 x 8 x 4 = 17,520,000 combinations
At one test per second: about 203 days, nonstopأين ومتى تضع الجهد: المبادئ من الثالث إلى السادس
المبدأ الثالث يغيّر توقيت بدايتك. تتبّع درس أهمية اختبار البرمجيات عيباً واحداً في متطلب عبر ثلاث لحظات، وكانت كلفته تزداد في كل لحظة لاحقة، والأمر نفسه ينطبق على كل قصة. تقول قصة مستخدم: «يمكن للمستخدم رفع صورة شخصية حتى 5 ميغابايت». في جلسة التنقيح (Refinement) تسأل: ما الصيغ المسموح بها؟ وهل تعني 5 ميغابايت 5,000,000 بايت أم 5,242,880 بايت؟ وماذا يرى المستخدم إذا كان الملف أكبر من الحد؟ ثلاث إجابات الآن قد تمنع ثلاثة عيوب لاحقاً. راجع القصص ومعايير القبول والتصاميم فور وجودها، ونفّذ الاختبارات فور وجود ما يمكن تشغيله.
المبدأ الرابع يغيّر المكان الذي تبحث فيه بأكبر جهد. في آخر ثلاثة إصدارات لمتجر إلكتروني، كان معظم العيوب المسجّلة في وحدة العروض الترويجية، حيث تتداخل قواعد الخصم. هذه الوحدة تنال حالات اختبار أكثر وجلسة اختبار استكشافي وتدقيقاً في كل تغيير، ويصبح هذا التجمّع مُدخلاً للاختبار المبني على المخاطر. واحتفظ باختبار أخفّ في كل مكان آخر، فميزة جديدة أو إعادة كتابة قد تبدأ تجمّعاً جديداً.
المبدأ الخامس يغيّر طريقة صيانتك للاختبارات. حزمة اختبارات إتمام الشراء تستخدم المنتجات الثلاثة نفسها وبطاقة اختبار واحدة منذ عام، وتبقى ناجحة بينما يصل إلى العملاء عيب في المنتجات ذات المقاسات المتعددة. نوّع بيانات الاختبار، وأضف اختبارات للميزات الجديدة والشيفرة المعدّلة ولكل عيب أفلت إلى الإنتاج. أما التكرار فيبقى صحيحاً في اختبارات الانحدار المؤتمتة، لأن مهمتها أن تُظهر أن ما كان يعمل ما زال يعمل.
المبدأ السادس يغيّر درجة الرسمية والعمق. حاسبة جرعات الإنسولين تحتاج إلى تصميم اختبار منهجي، وتتبّع إلى المتطلبات، وأدلة موثّقة، ومراجعة مستقلة. أما صفحة هبوط لحملة تسويقية مدتها أسبوعان فتحتاج إلى فحص سريع للمحتوى والروابط والنماذج والتخطيط على متصفحات زوّارها. وقبل اختيار النهج، اسأل عن المجال والمخاطر واللوائح ودورة حياة الفريق والموعد النهائي.
جرّبها: مولّد معايير القبول جرّبها: مولّد الاختبار المبني على المخاطر جرّبها: مولّد سيناريوهات الانحدار
مثال تطبيقي: «هل تؤكد لنا عدم وجود أخطاء قبل الخميس؟»
يضيف تطبيق لتوصيل الأدوية رفع الوصفات الطبية: يصوّر العميل الوصفة، ويفحصها صيدلي قبل تجهيز الطلب. يوم الإثنين يسأل مدير التوصيل: «هل تستطيع اختبار كل شيء وتأكيد عدم وجود أخطاء قبل إصدار الخميس؟». يجيب المختبِر بالمبادئ، فيحوّل الطلب إلى خطة بدلاً من «نعم» أو «لا»:
- المبدأ الأول: «لا أستطيع تأكيد عدم وجود أخطاء. يوم الخميس أستطيع أن أعرض ما اختبرته، وما فشل، وما لم أستطع اختباره، والمخاطر المتبقية».
- المبدأ الثاني: «كل الهواتف وصيغ الملفات وجودة الصور وحالات الوصفات معاً حالات أكثر بكثير مما يمكن تنفيذه، لذا سأختار أخطر التركيبات وأغطي الباقي بالاختبار الزوجي».
- المبدأ الرابع: «معظم عيوبنا في آخر إصدارين كانت في فحص الوصفات، لذا ينال هذا الجزء أعمق اختبار».
- المبدأ الخامس: «حزمة الانحدار لم تتغير منذ الربيع؛ سأضيف حالات للوصفات المنتهية الصلاحية والصور غير الواضحة، فهي لم تغطّها قط».
- المبدأ السادس: «هذه بيانات صحية وأدوية تُصرف بوصفة، لذا سأحتفظ بأدلة مربوطة بكل متطلب، بصورة أكثر رسمية مما نفعل مع شريط عروض ترويجية».
- المبدأ السابع: «هل يمكن لصيدلي أن يجرّب شاشة الفحص يوم الثلاثاء؟ قد تطابق المواصفات وتبقى مع ذلك بطيئة أمام زحام الصيدلية».
- المبدأ الثالث: «في الميزة القادمة، ادعُني إلى جلسة التنقيح، كي نجيب عن أسئلة مثل صيغ الملفات المقبولة قبل البرمجة».
| المبدأ | مثال من هذا الدرس | القرار الذي يغيّره |
|---|---|---|
| 1 · وجود العيوب لا غيابها | نجح 250 اختباراً، وما زالت التحويلات المجدولة يوم 31 تُتخطّى | أبلِغ عن النطاق والنتائج وما لم يُختبر والمخاطر المتبقية، لا عن «خلوّه من الأخطاء» |
| 2 · الاختبار الشامل مستحيل | نموذج البحث عن فندق: 17,520,000 تركيبة صالحة | اختر الاختبارات بالأقسام والقيم الحدّية والاختبار الزوجي والمخاطر |
| 3 · الاختبار المبكر يوفّر الوقت والمال | قاعدة الصورة حتى 5 ميغابايت تُناقَش في جلسة التنقيح | راجع القصص ومعايير القبول قبل وجود أي شيفرة |
| 4 · العيوب تتجمّع | معظم العيوب المسجّلة في وحدة العروض الترويجية | اختبر مكان التجمّع بأكبر عمق، مع اختبار أخف في بقية الأماكن |
| 5 · الاختبارات تَبلى | المنتجات والبطاقة نفسها منذ عام، فيفلت عيب في المقاسات | نوّع البيانات وأضف اختبارات جديدة، وأبقِ اختبارات الانحدار المؤتمتة |
| 6 · الاختبار يعتمد على السياق | حاسبة جرعات الإنسولين مقابل صفحة هبوط لأسبوعين | حدّد الرسمية والعمق بحسب المجال والمخاطر واللوائح |
| 7 · مغالطة غياب العيوب | القواعد الأربعون كلها متحققة، والطلاب ما زالوا يختارون محاضرات متعارضة | تحقّق من الصلاحية مع مستخدمين حقيقيين، لا مقابل المواصفات وحدها |
أسماء المبادئ كما في منهج ISTQB CTFL v4.0، القسم 1.3. وتسمي الإصدارات الأقدم من المنهج المبدأ الخامس مفارقة المبيد الحشري.
أخطاء شائعة
- قول «اختُبر بالكامل» أو «لا أخطاء» بعد تنفيذ ناجح، بدلاً من ذكر النطاق المختبَر والمخاطر المتبقية.
- الرد على استحالة الاختبار الشامل باختبار عشوائي أو سطحي، بدلاً من اختيار الاختبارات بالتقنيات وبحسب المخاطر.
- انتظار بناء قابل للاختبار قبل مراجعة أي شيء، فتظهر عيوب المتطلبات لاحقاً على أنها عيوب في الشيفرة.
- التركيز على تجمّع العيوب في الإصدار الماضي وحده، أو تجاهل سجل العيوب تماماً.
- ترك بيانات الاختبار وسيناريوهاته دون تغيير لأشهر، واعتبار سلسلة النجاح الطويلة دليلاً على عدم وجود عيوب جديدة.
- نسخ نهج اختبار من منتج آخر، أو اعتبار «نجاح كل المتطلبات» مساوياً لـ«تلبية احتياجات المستخدمين».
من منظور ضمان الجودة
تظهر المبادئ في لحظات ثابتة من أسبوع المختبِر. في جلسات التنقيح يدفعك الاختبار المبكر ومغالطة غياب العيوب إلى السؤال: «كيف سنعرف أن هذا يعمل، وهل يحل مشكلة المستخدم فعلاً؟». وفي تخطيط الاختبار تحدد استحالةُ الاختبار الشامل وتجمّعُ العيوب والسياقُ ما ينال اختباراً عميقاً ومقدار الرسمية المطلوبة؛ وسجل العيوب وحوادث الإنتاج، التي يشاركك فيها المطورون وفريق الدعم، هي دليلك على أماكن التجمّع.
وفي التقارير يحدد المبدأ الأول صيغة كل تقرير حالة: النطاق، والنتائج، والعيوب المفتوحة، وما لم يُختبر، والمخاطر المتبقية. وفي نهاية كل إصدار اسأل: أي الاختبارات لم تكشف شيئاً منذ زمن طويل؟ وأي العيوب أفلتت إلى الإنتاج؟ فهذا وقت تجديد الحزمة. وسجّل سبب العمق الذي اخترته، ليرى المختبِر التالي المنطق لا الاختبارات وحدها.
تمرين عملي
سمِّ المبدأ وراء كل عبارة
الملاحظات أدناه من اجتماع مراجعة بعد الإصدار (Retrospective) لبوابة دفع الرسوم المدرسية عبر الإنترنت. كل عبارة تتجاهل مبدأً من المبادئ السبعة. لكل عبارة، سمِّ المبدأ واكتب ما ستفعله أو تقوله بدلاً منها.
يظهر كل مبدأ مرة واحدة بالضبط.
مراجعة الإصدار 5.2، بوابة دفع الرسوم المدرسية
A. «حزمة الانحدار ناجحة منذ ثمانية أشهر، إذن وحدة الرسوم آمنة».
B. «ينضم فريق الاختبار حين يصل البناء إلى بيئة staging؛ ومراجعة القصص
مهمة محلل الأعمال».
C. «نفّذنا 412 حالة اختبار وأصلحنا كل عيب، إذن سيرضى أولياء الأمور عن
خطة التقسيط الجديدة».
D. «استخدموا قائمة الفحص الخاصة بتطبيق المستشفى، فقد نجحت هناك».
E. «قبل الجمعة، اختبروا كل تركيبة من 12 صفاً دراسياً و4 طرق دفع
ومن 1 إلى 10 أقساط و5 أنواع من الخصم».
F. «نجح الاختبار، إذن نستطيع إبلاغ المدرسة أنه لا توجد أخطاء».
G. «وزّعوا الاختبار بالتساوي: كل وحدة تحصل على يومين».- اقرأ كل عبارة وحدّد ما تفترضه عن الاختبار.
- طابقها مع أحد المبادئ السبعة، مستخدماً كل مبدأ مرة واحدة.
- اكتب في جملة واحدة القرار الذي ستتخذه بدلاً منها.
- في العبارة E، احسب عدد التركيبات التي تعنيها عبارة «كل تركيبة».
إظهار الإجابة النموذجية
A: الاختبارات تَبلى. ثمانية أشهر من النجاح تُظهر أن الحزمة ما زالت تنجح، لا أنها ما زالت قادرة على كشف عيوب جديدة. راجعها، ونوّع البيانات مثل خصم الإخوة والتسجيل في منتصف العام، وأضف اختبارات لما تغيّر في الإصدار 5.2.
B: الاختبار المبكر يوفّر الوقت والمال. اطلب مراجعة القصص ومعايير القبول في جلسة التنقيح؛ فالأسئلة عن الأقساط والاسترداد أرخص قبل البرمجة.
C: مغالطة غياب العيوب. نجاح الاختبارات وإصلاح العيوب يُظهران مطابقة البوابة لمواصفاتها، لا أن أولياء الأمور يستطيعون استخدام خطة التقسيط. اطلب من بعضهم تجربتها، أو راجع مكالمات الدعم بعد الإصدار.
D: الاختبار يعتمد على السياق. تطبيق المستشفى وبوابة الرسوم المدرسية يختلفان في المستخدمين والبيانات واللوائح والمخاطر؛ ابنِ قائمة الفحص من مخاطر هذا المنتج.
E: الاختبار الشامل مستحيل. 12 × 4 × 10 × 5 = 2,400 تركيبة، وبخمس دقائق لكل عملية دفع يصبح المجموع 200 ساعة. استخدم الاختبار الزوجي للتركيبات، والقيم الحدّية لعدد الأقساط (0 و1 و10 و11)، وعمقاً إضافياً لأخطر قواعد الخصم.
F: الاختبار يُظهر وجود العيوب لا غيابها. أبلِغ المدرسة بما اختُبر، وما زال مفتوحاً، وما لم يُختبر، والمخاطر المتبقية.
G: العيوب تتجمّع. راجع سجل العيوب: إذا كان حساب الرسوم والاسترداد قد احتويا معظم العيوب في الإصدارات السابقة، فامنحهما وقتاً أكثر، مع فحص أخف لبقية الوحدات.
أسئلة شائعة
هل المبادئ السبعة قواعد يجب أن ألتزم بها؟
لا. يصفها المنهج بأنها إرشادات عامة تنطبق على الاختبار كله، وليست خطوات أو التزامات. استخدمها لتعليل قراراتك وشرحها للآخرين؛ أما ما تفعله فعلاً فيبقى معتمداً على السياق، وهذا هو المبدأ السادس نفسه.
هل «الاختبارات تَبلى» هو نفسه مفارقة المبيد الحشري؟
نعم. يستخدم منهج ISTQB CTFL v4.0 اسم «الاختبارات تَبلى» (Tests wear out)، بينما تسمي الإصدارات الأقدم من المنهج ومقالات كثيرة الفكرة نفسها مفارقة المبيد الحشري (Pesticide paradox). ويذكر المنهج أيضاً أن تكرار الاختبارات نفسها قد يكون مفيداً في بعض الحالات، كما في اختبار الانحدار المؤتمت، لأن مهمته أن يُظهر أن شيئاً مما كان يعمل لم يتعطّل.
إذا كانت العيوب تتجمّع، فهل أختبر مكان التجمّع وحده؟
لا. التجمّعات تخبرك أين تضيف عمقاً، لا أين تتوقف. فميزة جديدة أو إعادة كتابة أو تكامل جديد قد يُنشئ تجمّعاً في مكان آخر، لذا حافظ على مستوى أخف من الاختبار في المنتج كله، وحدّث صورتك عن أماكن التجمّع في كل إصدار.
هل يعني الاختبار المبكر الاختبار قبل وجود أي شيفرة؟
جزئياً. يمكن أن يبدأ الاختبار الساكن (Static testing)، مثل مراجعة المتطلبات والتصاميم والشيفرة، فور وجود ناتج العمل، ويمكن أن يبدأ تحليل الاختبار وتصميمه من أساس الاختبار. ويبدأ الاختبار الديناميكي فور وجود ما يمكن تشغيله، مثل مكوّن واحد. والهدف أن يُكتشف كل عيب في أقرب نقطة من المكان الذي نشأ فيه.
المراجع
- ISTQB Certified Tester Foundation Level (CTFL) v4.0المنهج التأسيسي لاختبار البرمجيات: مستويات الاختبار وأنواعه وتقنيات تصميم الاختبارات وإدارة الاختبار والأدوات.
- ISTQB Glossaryالتعريفات القياسية لمصطلحات الاختبار — حالة الاختبار واختبار الانحدار والخطورة والأولوية وتحليل القيم الحدّية وغيرها.
- Lessons Learned in Software Testing: A Context-Driven Approach (Cem Kaner, James Bach, Bret Pettichord)دروس عملية في الإبلاغ عن الأخطاء وتصميم الاختبارات والأتمتة وإدارة الاختبار — مدرسة الاختبار المدفوع بالسياق.
تدرّب بأدوات متقن
ولّد أصغر مجموعة اختبارات زوجية (all-pairs) من المعاملات وقيمها.
قيّم الميزات حسب الاحتمالية والأثر، ثم ولّد خطة اختبار مبنية على المخاطر ومرتّبة حسب الأولوية.
ولّد سيناريوهات اختبار الانحدار من وصف التغيير وقائمة الوحدات المتأثرة والمرتبطة.
ولّد معايير قبول بصيغة Given/When/Then وقائمة تحقق لتعريف الإنجاز (Definition of Done) من قصة مستخدم.
للتعمّق أكثر
- الاختبار المبني على المخاطركيف تطبّق الاختبار المبني على المخاطر: تحديد مخاطر المنتج، وتقييم الاحتمال والأثر، وعمق الاختبار، واختيار اختبارات الانحدار، والمخاطر المتبقية.
- الاختبار الساكنالاكتشاف المبكر للعيوب ومنع العيوب
- اختبار الدخان والسلامة والانحدار: مقارنةاختيار اختبارات الانحدار: ماذا تشغّل
- استراتيجية الاختبار: دليل عمليكيف تختار المناهج وتدمجها
تقدّمك في هذا الموضوع
سجّل الدخول لتتابع تقدّمك
علّم الموضوعات مكتملة، وتابع من حيث توقفت، وافتح امتحانات التخصص.