ما هو الاختبار التخريبي في البرمجيات؟

⚡ ملخص ذكي

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

  • ؟؟؟؟ الفكرة الأساسية: تم تصميم التطبيق ليفشل عمداً حتى تصبح نقاط ضعفه مرئية وقابلة للقياس.
  • 🔎 لا توجد متطلبات مطلوبة: المعرفة المسبقة بالمواصفات اختيارية، على الرغم من أنها تُحسّن استراتيجية الاختبار.
  • 🇧🇷 الزوج المتقابل: الاختبار غير المدمر يسير في المسار الصحيح؛ أما الاختبار المدمر فيهاجمه من كل زاوية خاطئة.
  • 🧰 اقتراب: تحليل نقاط الفشل، ومراجعة الأقران من قبل المختبرين، ومراجعة الأعمال، والتشغيلات الاستكشافية باستخدام جداول التشغيل.
  • 🧪 الأساليب المعاد استخدامها: تخدم اختبارات الانحدار، والواجهات، وتقسيم التكافؤ، والحلقات، واختبارات القبول أهدافًا تدميرية.
  • 📉 حدود الصدق: يصعب ضمان التغطية، والجهد المبذول كبير، وقد يصعب إعادة إنتاج النتائج.

ما هو الاختبار التخريبي في البرمجيات؟ وما هي أساليبه وتقنياته؟

ما هو الاختبار المدمر؟

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

لا يُشترط الإلمام بالمتطلبات الأصلية لإجراء الاختبارات التدميرية. مع ذلك، فإن بعض المعرفة تُساعد في تطويرها.ping استراتيجية اختبار جيدة.

يوضح الرسم التوضيحي أدناه الفكرة - يعمل المختبر ضد المنتج بدلاً من العمل معه.

مفهوم الاختبار التخريبي: تطبيق يتم دفعه عمداً إلى نقطة الفشل

لماذا يتم إجراء الاختبارات التدميرية؟

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

الاختبارات التدميرية مقابل الاختبارات غير التدميرية

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

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

ما الذي يتم فحصه في الاختبارات التدميرية؟

يُركز الاختبار التخريبي على كلا جانبي حدود السلوك:

  • السلوك البرمجي السليم
  • سلوك غير سليم للبرمجيات
  • الاستخدام غير السليم
  • إدخال بيانات غير صحيحة
  • بيانات الإخراج الصحيحة

يجب أن يتحقق شرطان طوال فترة التمرين:

  • لا يجوز للبرنامج معالجة أو قبول بيانات إدخال غير صالحة.
  • بغض النظر عن صحة أو دقة بيانات الإدخال، يجب أن ينتج البرنامج دائمًا بيانات إخراج مناسبة.

كيفية القيام بالاختبار المدمر؟

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

توجد طرق عديدة لتشغيله. فيما يلي بعض الأمثلة.

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

مثال على الاختبارات التدميرية

لنأخذ مثالاً على ذلك شاشات تسجيل الدخول والملف الشخصي في تطبيق مصرفي. يمكن لهجوم اختراقي أن ينجح في حالات كهذه:

  • قم بلصق سلسلة نصية مكونة من 5,000 حرف في حقل يقتصر على 50 حرفًا، ثم تأكد من أن الحقل يرفضها بدلاً من اقتطاعها بصمت.
  • أدخل الأحرف والرموز والقيم السالبة في حقل المبلغ الرقمي.
  • كسر التسلسل المتوقع - افتح صفحة تأكيد الدفع مباشرة دون إكمال الخطوة السابقة.
  • اضغط على زر الإرسال بشكل متكرر وسريع لمعرفة ما إذا تم إنشاء سجلات مكررة.
  • افصل الشبكة في منتصف العملية وتحقق مما إذا كان التطبيق يستعيد البيانات بشكل كامل أم يترك سجلاً جزئياً.

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

طرق الاختبار المدمرة

تُستخدم الطرق التالية في هندسة البرمجيات لتحقيق أهداف الاختبار التخريبي:

تقنيات الاختبار المدمرة

يمكن استخدام التقنيات التالية مع بعض التعديلات:

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

مزايا وعيوب الاختبارات الإتلافية

من المهم توضيح المقايضة بوضوح قبل إدراج هذه التقنية في الإصدار.

المزايا

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

عيوب

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

الأسئلة الشائعة

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

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

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

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

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

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

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

احتفظ بسجلٍّ أثناء الجلسة يُسجّل كل إجراء ومدخل بالترتيب. أعد تشغيل السجل من حالة نظيفة، ثم اختصره إلى أقصر تسلسل لا يزال يُسبب الفشل.

تلخيص هذه التدوينة بـ: