ما هو اختبار الطفرة؟ (مثال)

ما هو اختبار الطفرة؟

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

يجب أن تظل التغييرات التي يتم إجراؤها في البرنامج المتحول صغيرة للغاية بحيث لا تؤثر على الهدف العام للبرنامج. يُطلق على اختبار الطفرة أيضًا اسم استراتيجية الاختبار المبني على الخطأ لأنه يتضمن إنشاء خطأ في البرنامج وهو نوع من أبيض Box الاختبار والذي يستخدم بشكل رئيسي ل وحدة التجارب.

تم اقتراح الطفرة في الأصل عام 1971، لكنها فقدت حماستها بسبب التكاليف الباهظة المترتبة عليها. الآن، مرة أخرى، اكتسبت شعبية كبيرة وتستخدم على نطاق واسع للغات مثل جافا و XML.

كيفية تنفيذ اختبار الطفرة؟

تنفيذ اختبار الطفرة

فولوwing هي خطوات تنفيذ اختبار الطفرة (تحليل الطفرة):

الخطوة الثانية: يتم إدخال الأخطاء في الكود المصدري للبرنامج عن طريق إنشاء العديد من الإصدارات تسمى المسوخات. يجب أن يحتوي كل متحول على خطأ واحد، والهدف هو التسبب في فشل النسخة المتحولة مما يوضح فعالية حالات الاختبار.

الخطوة الثانية: يتم تطبيق حالات الاختبار على البرنامج الأصلي وأيضا على البرنامج المتحول. أ حالة الاختبار يجب أن تكون كافية، ويتم تعديلها لاكتشاف الأخطاء في البرنامج.

الخطوة الثانية: مقارنة نتائج البرنامج الأصلي والمتحول.

الخطوة الثانية: إذا كان البرنامج الأصلي والبرامج المتحولة يولدان مخرجات مختلفة، فسيتم قتل المتحول بواسطة حالة الاختبار. ومن ثم فإن حالة الاختبار جيدة بما يكفي لاكتشاف التغيير بين البرنامج الأصلي والبرنامج المتحول.

الخطوة الثانية: إذا قام البرنامج الأصلي والبرنامج المتحول بإنشاء نفس المخرجات، فسيتم الاحتفاظ بـ Mutant على قيد الحياة. في مثل هذه الحالات، يجب إنشاء حالات اختبار أكثر فعالية تقتل جميع المسوخات.

كيفية إنشاء برامج متحولة؟

إنشاء برامج متحولة

الطفرة ليست سوى تغيير نحوي واحد يتم إجراؤه على بيان البرنامج. يجب أن يختلف كل برنامج متحور عن البرنامج الأصلي بطفرة واحدة.

البرنامج الأصلي برنامج المتحولة
إذا (س>ص)

طباعة "مرحبا"

آخر

طباعة "مرحبا"

لو(س <ص)

طباعة "مرحبا"

آخر

طباعة "مرحبا"

ما الذي يجب تغييره في برنامج Mutant؟

هناك العديد من التقنيات التي يمكن استخدامها لإنشاء برامج متحولة. دعونا ننظر إليهم

Operaالاستبدال الثاني operaالاختصاصات تعديل التعبير Operaالاختصاصات تعديل البيان Operaالاختصاصات
استبدال operaومع آخر operand (x مع y أو y مع x) أو بالقيمة الثابتة. استبدل ان operaتور أو إدراج جديد operaتورس في بيان البرنامج. يتم تعديل البيانات البرمجية لإنشاء برامج متحولة.
مثال-

إذا (x>y) استبدل قيمتي x وy

إذا (5>y) استبدل x بالثابت 5

مثال-

إذا (س==ص)

يمكننا استبدال == بـ >= ويكون لدينا برنامج متحول كـ

إذا (x>=y) وإدراج ++ في البيان

إذا (س==++ص)

مثال-

احذف الجزء else في عبارة if-else

احذف عبارة if-else بأكملها للتحقق من سلوك البرنامج

بعض طفرة العينة operaتورس:

  • GOTO استبدال التسمية
  • استبدال بيان الإرجاع
  • حذف البيان
  • أحادي operaإدراج تور (أعجبني – و++)
  • استبدال الموصل المنطقي
  • استبدال اسم الصفيف القابل للمقارنة
  • إزالة جزء else من عبارة if-else
  • إضافة أو استبدال operaالاختصاصات
  • استبدال البيان عن طريق تغيير البيانات
  • تعديل البيانات للمتغيرات
  • تعديل أنواع البيانات في البرنامج

أتمتة اختبار الطفرة

يستغرق اختبار الطفرات وقتًا طويلاً للغاية ومعقدًا عند تنفيذه يدويًا. لتسريع العملية، يُنصح باستخدام أدوات الأتمتة. تعمل أدوات الأتمتة على تقليل تكلفة الاختبار أيضًا.

قائمة الأدوات المتاحة-

أنواع اختبار الطفرة

In هندسة البرمجياتيمكن تصنيف اختبار الطفرة بشكل أساسي إلى ثلاثة أنواع: طفرة البيان، طفرة القرار، طفرة القيمة.

  1. طفرة البيان – يقوم المطور بقص ولصق جزء من الكود مما قد يؤدي إلى إزالة بعض الأسطر
  2. طفرة القيمة- يتم تعديل قيم المعلمات الأولية
  3. طفرة القرار- يجب تغيير بيانات التحكم

نقاط الطفرة

يتم تعريف درجة الطفرة على أنها النسبة المئوية للطفرات المقتولة مع العدد الإجمالي للطفرات.

  • نتيجة الطفرة = (الطفرات المقتولة / العدد الإجمالي للطفرات) * 100

نقاط الطفرة

تكون حالات الاختبار كافية للتحول إذا كانت النتيجة 100%. أظهرت النتائج التجريبية أن اختبار الطفرة هو أسلوب فعال لقياس مدى كفاية حالات الاختبار. لكن العيب الرئيسي هو التكلفة العالية لتوليد الطفرات وتنفيذ كل حالة اختبار ضد هذا البرنامج المتحور.

مزايا اختبار الطفرة

فولوwing هي مزايا اختبار الطفرة:

  • إنه أسلوب قوي لتحقيق تغطية عالية للبرنامج المصدر.
  • هذا الاختبار قادر على اختبار البرنامج المتحول بشكل شامل.
  • يوفر اختبار الطفرات مستوى جيدًا من اكتشاف الأخطاء لمطور البرامج.
  • تكشف هذه الطريقة عن الغموض في الكود المصدري ولديها القدرة على اكتشاف جميع الأخطاء في البرنامج.
  • يستفيد العملاء من هذا الاختبار من خلال الحصول على نظام أكثر موثوقية واستقرارًا.

عيوب اختبار الطفرة

على الجانب الآخر، فولوwing هي عيوب اختبار المسوخ:

  • يعد اختبار الطفرات مكلفًا للغاية ويستغرق وقتًا طويلاً نظرًا لوجود العديد من برامج الطفرات التي يجب إنشاؤها.
  • نظرًا لأنه يستغرق وقتًا طويلاً، فمن العدل أن نقول إن هذا الاختبار لا يمكن إجراؤه بدون أداة التشغيل الآلي.
  • سيكون لكل طفرة نفس عدد حالات الاختبار الموجودة في البرنامج الأصلي. لذلك، قد يلزم اختبار عدد كبير من البرامج المتحولة مقابل مجموعة الاختبار الأصلية.
  • نظرًا لأن هذه الطريقة تتضمن تغييرات في كود المصدر، فهي غير قابلة للتطبيق على الإطلاق اسود Box الاختبار.

وفي الختام

هل تريد اختبارًا شاملاً لتطبيقك؟ الجواب هو اختبار الطفرة. إنها التقنية الأكثر شمولاً لاختبار البرنامج. هذه هي الطريقة التي تتحقق من فعالية ودقة برنامج الاختبار لاكتشاف الأخطاء أو الأخطاء في النظام.