العودة إلى القاموس
الاختبار

اختبار الطفرات

تقنية لتقييم جودة الاختبارات عن طريق إدخال تغييرات صغيرة (طفرات) على الكود والتحقق مما إذا كانت الاختبارات تكتشفها. الطفرات غير المكتشفة تشير إلى اختبارات ضعيفة.

التعريف

يُنشئ اختبار الطفرات "متحولات" — نسخ من الكود بتغييرات صغيرة مثل قلب المشغلات (> إلى <)، إزالة العبارات، أو تغيير قيم الإرجاع. يجب أن تفشل الاختبارات الجيدة عند التشغيل ضد المتحولات ("قتلها"). المتحولات الناجية تكشف فجوات في تغطية الاختبارات أو التأكيدات. تشمل الأدوات Stryker (JavaScript/TypeScript) وPIT (Java) وmutmut (Python). نتيجة الطفرة = المتحولات المقتولة / إجمالي المتحولات.

لماذا هو مهم

يمكن أن تكون تغطية الكود عالية بينما الاختبارات لا تزال ضعيفة (مثل الاختبارات التي تنفذ الكود دون التحقق من النتائج). يقيس اختبار الطفرات فعالية الاختبار الفعلية. يُظهر البحث أن اختبار الطفرات يجد 2-4 أضعاف العيوب مقارنة بالاختبار المبني على التغطية.

مثال

الكود: if (age >= 18) return true. متحول يغير >= إلى >. إذا لم تلتقط الاختبارات هذا (كل مستخدمي الاختبار >18، لا أحد بالضبط 18)، المتحول ينجو، كاشفاً اختبار حالة حدية مفقود.

المصطلحات ذات الصلة

mutation testingStrykerPITmutant testingtest qualitymutation score

أتمتة مراجعة الكود مع diffray

نظام ذكاء اصطناعي متعدد الوكلاء لمراجعة الكود. يجد الأخطاء والثغرات الأمنية ومشاكل البنية تلقائياً.