الاختبار الاستكشافي

الاختبار الاستكشافي هو منهج لاختبار البرمجيات يُوصف بإيجاز بأنه تعلم متزامن، وتصميم الاختبار ، وتنفيذه. وقد عرّفه جيم كانر ، الذي صاغ هذا المصطلح عام 1984، [ 1 ] بأنه "أسلوب لاختبار البرمجيات يُركز على الحرية الشخصية ومسؤولية كل مُختبِر في تحسين جودة عمله باستمرار، وذلك من خلال اعتبار التعلم المتعلق بالاختبار، وتصميم الاختبار، وتنفيذه، وتفسير نتائجه أنشطة متكاملة ومتوازية طوال فترة المشروع". [ 2 ]

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

تاريخ

لطالما كان الاختبار الاستكشافي يُجرى بواسطة مختبرين ذوي خبرة. في أوائل التسعينيات، كان يُنظر إلى الاختبار العشوائي في كثير من الأحيان على أنه عمل غير متقن وغير دقيق. ونتيجة لذلك، بدأت مجموعة من خبراء منهجية الاختبار (يُطلقون على أنفسهم الآن اسم مدرسة الاختبار السياقي ) باستخدام مصطلح "استكشافي" بهدف التأكيد على عملية التفكير السائدة في الاختبار غير المخطط له، والبدء في تطوير هذه الممارسة لتصبح منهجًا تعليميًا. نُشر هذا المصطلح الجديد لأول مرة بواسطة جيم كانر في كتابه "اختبار برامج الحاسوب" [ 4 ] ، وتم التوسع فيه في كتابه "دروس مستفادة في اختبار البرمجيات" [ 5 ] . يمكن أن يكون الاختبار الاستكشافي منضبطًا تمامًا كأي نشاط فكري آخر.

وصف

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

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

في الواقع، غالباً ما يكون الاختبار مزيجاً من الاختبار الاستكشافي والاختبار المكتوب، ولكن مع ميل نحو أحدهما، اعتماداً على السياق.

بحسب كانر وجيمس ماركوس باخ ، فإن الاختبار الاستكشافي أقرب إلى كونه طريقة تفكير أو "أسلوبًا للتفكير في الاختبار" منه إلى كونه منهجية. [ 6 ] ويشيران أيضًا إلى أنه يمتد على طيف متدرج من الاستكشافي البسيط (الاختبار الذي يتسم ببعض الغموض أو الكتابة غير الواضحة) إلى الاستكشافي المتقدم (الاختبار الاستكشافي الحر). [ 7 ]

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

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

المزايا والعيوب

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

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

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

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

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

الدراسات العلمية

أظهرت تجربة مُكررة أنه على الرغم من أن الاختبارات المكتوبة والاستكشافية تُحقق فعالية مماثلة في اكتشاف العيوب (إجمالي عدد العيوب المكتشفة)، إلا أن الاختبارات الاستكشافية تُحقق كفاءة أعلى (عدد العيوب لكل وحدة زمنية) نظرًا لعدم بذل أي جهد في تصميم حالات الاختبار مسبقًا. [ 8 ] أشارت دراسة رصدية على مختبري الاختبارات الاستكشافية إلى أن استخدام المعرفة حول المجال والنظام قيد الاختبار والعملاء يُعد عاملًا مهمًا يُفسر فعالية هذه الاختبارات. [ 9 ] وجدت دراسة حالة لثلاث شركات أن القدرة على تقديم ملاحظات سريعة تُعد ميزة للاختبار الاستكشافي، بينما أشير إلى إدارة تغطية الاختبار كأحد أوجه القصور. [ 10 ] كشف استطلاع رأي أن الاختبار الاستكشافي يُستخدم أيضًا في المجالات الحيوية، وأن هذا النهج يفرض متطلبات عالية على الشخص الذي يُجري الاختبار. [ 11 ]

انظر أيضاً

مراجع

  1. جيم كانر، " دليل تعليمي في الاختبار الاستكشافي " مؤرشف بتاريخ 12-06-2013 في موقع Wayback Machine ، ص 2
  2. سيم كانر، برنامج تعليمي في الاختبار الاستكشافي مؤرشف في 2013-06-12 في Wayback Machine ، ص. 36.
  3. سيم كانر، دليل تعليمي في الاختبار الاستكشافي مؤرشف في 2013-06-12 في Wayback Machine ، ص. 37-39، 40- .
  4. سيم كانر، اختبار برامج الكمبيوتر ، كتب TAB، بلو ريدج ساميت، بنسلفانيا، 1988. ص. 6، 7-11.
  5. كانر، سيم ؛ باخ، جيمس؛ بيتيكورد، بريت (2001). دروس مستفادة في اختبار البرمجيات . جون وايلي وأولاده . ISBN 978-0-471-08112-8.
  6. سيم كانر، جيمس باخ، الاختبارات الاستكشافية والقائمة على المخاطر ، www.testingeducation.org ، مؤرشف في 11 مايو 2008 على موقع Wayback Machine ، 2004، صفحة 10
  7. سيم كانر، جيمس باخ، الاختبارات الاستكشافية والقائمة على المخاطر ، www.testingeducation.org ، مؤرشف في 11 مايو 2008 على موقع Wayback Machine ، 2004، صفحة 14
  8. إيتكونن، يوها؛ مانتيلا، ميكا ف. (11 يوليو 2013). "هل هناك حاجة لحالات الاختبار؟ مقارنة مُكررة بين اختبار البرمجيات الاستكشافي واختبار البرمجيات القائم على حالات الاختبار". هندسة البرمجيات التجريبية . 19 (2): 303-342 . CiteSeerX 10.1.1.363.6524 . doi : 10.1007/s10664-013-9266-8 . ISSN 1382-3256 . S2CID 254472881 .   
  9. ^ إتكونين، ج.؛ مانتيلا، إم في؛ لاسينيوس، سي. (2013/05/01). “دور معرفة المختبر في اختبار البرمجيات الاستكشافية”. معاملات IEEE في هندسة البرمجيات . 39 (5): 707-724 . دوى : 10.1109/TSE.2012.55 . ISSN 0098-5589 . S2CID 1763558 .  
  10. ^ إتكونين، ج.؛ راوتياينن، ك. (2005-11-01). “الاختبار الاستكشافي: دراسة حالة متعددة”. 2005 الندوة الدولية لهندسة البرمجيات التجريبية 2005 . ص 10 ص. دوى : 10.1109/ISESE.2005.1541817 . رقم ISBN  978-0-7803-9507-7. S2CID 7974121 . 
  11. بفال، ديتمار؛ يين، هويشي؛ مانتيلا، ميكا ف.؛ مونش، يورغن (2014-01-01). "كيف يُستخدم الاختبار الاستكشافي؟ دراسة استقصائية حول أحدث الممارسات". وقائع الندوة الدولية الثامنة المشتركة بين ACM وIEEE حول هندسة البرمجيات التجريبية والقياس . ESEM '14. نيويورك، نيويورك، الولايات المتحدة الأمريكية: ACM. الصفحات 5:1-5:10. doi : 10.1145/2652524.2652531 . hdl : 10138/153363 . ISBN  9781450327749. S2CID 17924562 .