ما هي تغطية الاختبار؟
تقيس تغطية الاختبار مقدار ما تمارسه الاختبارات من شيء ما — المتطلبات أو المخاطر أو فروع الشيفرة أو أقسام المدخلات. تجيب تغطية المتطلبات عن «هل اختُبر كل معيار قبول؟»، بينما تجيب تغطية الشيفرة عن «أي الأسطر نُفّذت؟»؛ والنسبة المرتفعة للثانية لا تقول شيئاً عن جدوى التحققات، لذا التغطية خريطة للفجوات لا نتيجة تُرفع إلى أقصاها.
كيفية استخدام محلّل تغطية الاختبار بالذكاء الاصطناعي
- الصق المتطلبات أو قصة المستخدم في المربع الأول وحالات الاختبار الحالية في الثاني.
- اختر لغة المخرجات ثم اضغط «تحليل».
- راجع مصفوفة التتبع: يُصنَّف كل متطلب مغطّى كلياً أو جزئياً أو غير مغطّى، مع الاختبارات التي تغطيه وما بقي دون اختبار.
- أضف الاختبارات الناقصة إلى مجموعتك (يستطيع مولّد حالات الاختبار بالذكاء الاصطناعي كتابتها) واستبعد الزائدة؛ ونزّل التقرير بصيغة CSV أو Markdown أو JSON.
(1 + 1 + 0) ÷ 3 = 67% ويحصل R-3 غير المختبَر على الاختبار الناقص MT-1.| القاعدة | TC-001الحذف ينجح | TC-002خطأ القيمة المرتبطة | التغطية |
|---|---|---|---|
R-1المسؤول يحذف قيمة غير مرتبطة | ✓ | ✓ | كاملةتُحتسب 1 |
R-2القيم المرتبطة يُمنع حذفها | ✓ | ✓ | كاملةتُحتسب 1 |
R-3الحذف للمسؤولين فقط | لا يغطيه هذا الاختبار | لا يغطيه هذا الاختبار | معدومةتُحتسب 0 · الفجوة ← MT-1 |
- كاملة = 1: المسار الإيجابي وأهم الحالات السلبية أو الحدّية مختبَرة
- جزئية = 0.5: المسار الناجح وحده مختبَر (لا يوجد في هذا المثال)
- معدومة = 0: لا اختبار، فيُقترح اختبار ناقص
MT-1طلبDELETEمن غير المسؤول يعيد403ويسدّ R-3، بأولوية P0، ونوعه أمني
الاختبارات التي تغطي كل قاعدة في المثال، بعمود لكل اختبار. ويُحتسب الاختبار المكتوب لقاعدة مجاورة إذا كان يمارس تلك الحالة: فرفض حذف قيمة مرتبطة (TC-002) هو الحالة السلبية لـ R-1.
مزايا محلّل تغطية الاختبار بالذكاء الاصطناعي
- مصفوفة تتبّع من المتطلبات إلى الاختبارات بتغطية كاملة/جزئية/معدومة
- نسبة التغطية الإجمالية والمخاطر لكل متطلب
- قائمة مرتّبة حسب الأولوية بالاختبارات المفقودة
- يرصد الاختبارات الزائدة التي لا ترتبط بأي متطلب
مثال على محلّل تغطية الاختبار بالذكاء الاصطناعي
التغطية
الإدخال:
R: Admin deletes unreferenced value; referenced values blocked; only Admins.
T: TC-001 delete succeeds; TC-002 referenced value errorالنتيجة:
R-1 full (TC-001 + TC-002) · R-2 full (TC-002 + TC-001) · R-3 none
Coverage (1 + 1 + 0) ÷ 3 = 67% → MT-1 Non-admin DELETE returns 403 (R-3, P0, security)الأسئلة الشائعة حول محلّل تغطية الاختبار بالذكاء الاصطناعي
كيف تُحسب نسبة التغطية؟
تُحتسب التغطية الكاملة 1، والجزئية 0.5، والمعدومة 0؛ ويُقسم المجموع على عدد المتطلبات.
لماذا يُصنَّف متطلب مختبَر على أنه مغطّى جزئياً؟
لأن التغطية الكاملة تعني اختبار المسار الإيجابي وأهم الحالات السلبية أو الحدّية معاً. والمتطلب الذي لا يملك إلا اختباراً للمسار الناجح يبقى مغطّى جزئياً حتى تُغطّى حالات الخطأ والحدود أيضاً. ويُحتسب الاختبار المكتوب لقاعدة مجاورة إذا كان يمارس تلك الحالة: فرفض حذف قيمة مرتبطة بسجلات هو الحالة السلبية لحذف قيمة غير مرتبطة.
ما الاختبارات التي تُصنَّف زائدة؟
الاختبارات التي لا ترتبط بأي متطلب، أو التي تكرر اختباراً آخر — وهي مرشحة للإزالة لتبقى المجموعة سريعة وموثوقة.
ملاحظات تقنية
تُقسَّم المتطلبات إلى قواعد ذرّية (R-1 وR-2 …)، بما فيها القواعد الضمنية في معايير القبول. ولا تُعدّ القاعدة مغطّاة كلياً إلا عندما يُختبر مسارها الإيجابي وأهم حالاتها السلبية أو الحدّية. وتذكر الاختبارات الناقصة (MT-1 وMT-2 …) المتطلب الذي تسدّه مع نوع وأولوية؛ والاختبارات الزائدة هي التي لا ترتبط بأي متطلب أو تكرر اختباراً آخر.
المراجع
- ISTQB Glossaryالتعريفات القياسية لمصطلحات الاختبار — حالة الاختبار واختبار الانحدار والخطورة والأولوية وتحليل القيم الحدّية وغيرها.
- ISO/IEC/IEEE 29119-1:2022 — Software and systems engineering — Software testing — Part 1: General conceptsالمعيار الدولي لاختبار البرمجيات: المفاهيم والعمليات والتوثيق والتقنيات.