اختبار القرود
في مجال اختبار البرمجيات ، يُعدّ اختبار القرد أسلوبًا يقوم فيه المستخدم باختبار التطبيق أو النظام من خلال إدخال بيانات عشوائية والتحقق من سلوكه أو معرفة ما إذا كان سيتعطل. وعادةً ما يُنفّذ اختبار القرد كاختبارات وحدة عشوائية وآلية .
بينما لا يزال أصل تسمية "القرد" غير مؤكد، يعتقد البعض أن التسمية مرتبطة بنظرية القرد اللانهائي ، [ 1 ] التي تنص على أن قردًا يضغط عشوائيًا على مفاتيح لوحة مفاتيح آلة كاتبة لفترة زمنية غير محدودة سيكتب نصًا معينًا، مثل الأعمال الكاملة لويليام شكسبير ، بشكل شبه مؤكد . ويعتقد آخرون أن التسمية مشتقة من تطبيق "القرد" الكلاسيكي لنظام التشغيل ماك، الذي طوره ستيف كابس قبل عام 1983. كان التطبيق يستخدم خاصية تسجيل الأحداث لتغذية برامج ماك بأحداث عشوائية، وكان يُستخدم لاختبار الأخطاء في برنامج ماك بينت . [ 2 ]
يُعد اختبار Monkey جزءًا من أدوات الاختبار القياسية لاختبارات التحمل في Android Studio . [ 3 ]
أنواع التجارب التي تُجرى على القرود
يمكن تصنيف اختبارات القرود إلى اختبارات القرود الذكية أو اختبارات القرود الغبية .
اختبارات القرود الذكية
عادة ما يتم التعرف على القرود الذكية من خلال الخصائص التالية: [ 4 ]
- احصل على فكرة موجزة عن التطبيق أو النظام
- اعرف موقعها، وإلى أين يمكنها الذهاب، وأين كانت.
- اعرف قدراتها وقدرات النظام
- ركز على كسر النظام
- أبلغ عن الأخطاء التي تجدها
يُشار أيضًا إلى بعض القرود الذكية باسم القرود اللامعة ، والتي تقوم بإجراء الاختبارات وفقًا لسلوك المستخدم ويمكنها تقدير احتمالية وجود أخطاء معينة.
اختبارات القرد الغبي
عادةً ما يتم التعرف على القرود الغبية، والمعروفة أيضًا باسم "القرود الجاهلة"، من خلال الخصائص التالية:
- ليس لدي أي معرفة بالتطبيق أو النظام
- لا أعرف ما إذا كانت مدخلاتهم أو سلوكهم صحيحًا أم لا
- لا أعرف إمكانياتهم أو إمكانيات النظام، ولا آلية عمل التطبيق.
- يمكنها العثور على عدد أقل من الأخطاء مقارنةً بالقرود الذكية، ولكنها تستطيع أيضاً العثور على أخطاء مهمة يصعب على القرود الذكية اصطيادها.
المزايا والعيوب
المزايا
يُعدّ اختبار القرود طريقة فعّالة لتحديد بعض الأخطاء غير المتوقعة. ونظرًا لأنّ السيناريوهات المختبرة عادةً ما تكون مخصصة ، يُمكن أن يكون اختبار القرود أيضًا وسيلة جيدة لإجراء اختبارات التحميل والضغط. كما أنّ العشوائية المتأصلة في اختبار القرود تجعله وسيلة جيدة لاكتشاف الأخطاء الجسيمة التي قد تُعطّل النظام بأكمله. إعداد اختبار القرود سهل، لذا فهو مناسب لأي تطبيق. يُمكن للقرود الذكية، إذا تمّ إعدادها بشكل صحيح بنموذج حالة دقيق، أن تكون بارعة في اكتشاف أنواع مختلفة من الأخطاء.
العيوب
غالباً ما تجعل عشوائية اختبار البرمجيات باستخدام القرود من الصعب أو المستحيل إعادة إنتاج الأخطاء المكتشفة. كما أن تحليل الأخطاء غير المتوقعة التي يتم اكتشافها بهذه الطريقة قد يكون صعباً ويستغرق وقتاً طويلاً. في بعض الأنظمة، قد يستمر اختبار البرمجيات باستخدام القرود لفترة طويلة قبل اكتشاف أي خطأ. بالنسبة للقرود الذكية، تعتمد الفعالية بشكل كبير على نموذج الحالة المُقدّم، وقد يكون تطوير نموذج حالة جيد مكلفاً. [ 1 ]
تقنيات واختلافات متشابهة
على الرغم من أن اختبار القرود يُعامل أحيانًا على أنه اختبار عشوائي [ 5 ] ويُستخدم المصطلحان معًا عادةً [ 6 ]، إلا أن البعض يعتقد أنهما مختلفان، إذ يرى أن اختبار القرود يركز على الإجراءات العشوائية، بينما يركز الاختبار العشوائي على إدخال البيانات العشوائية [ 7 ] . كما يختلف اختبار القرود عن الاختبار المخصص، حيث يُجرى الاختبار المخصص دون تخطيط أو توثيق، ويهدف إلى تقسيم النظام عشوائيًا إلى أجزاء فرعية وفحص وظائفها، وهو ما لا ينطبق على اختبار القرود.
انظر أيضاً
مراجع
- 1 2 "ما هو اختبار القرد | التدريب والاستشارات في مجال تكنولوجيا المعلومات - إكسفورسيس" . www.exforsys.com . 17 ديسمبر 2011. تم الاطلاع عليه بتاريخ 22 أبريل 2016 .
- ↑ "Folklore.org: Monkey Lives" . www.folklore.org . تم الاطلاع عليه بتاريخ 22-04-2016 .
- ↑ "UI/Application Exerciser Monkey | Android Developers" . developer.android.com . تم الاطلاع عليه بتاريخ 25-04-2016 .
- ↑ باتون، رون (2001). "الاختبار العشوائي: القرود والغوريلا". اختبار البرمجيات . إنديانابوليس، إنديانا: سامز. ISBN 978-0-672-31983-9.
- ↑ برومير، روبرت؛ لونسينغ، فلوريان؛ بير، أرمين (11 يوليو 2010). ستريشمان، عوفر؛ سزيدر، ستيفان (محررون). الاختبار الآلي وتصحيح أخطاء خوارزميات حل SAT وQBF . سلسلة محاضرات في علوم الحاسوب. سبرينغر برلين هايدلبرغ. الصفحات 44-57 . CiteSeerX 10.1.1.365.777 . doi : 10.1007/978-3-642-14186-7_6 . ISBN 9783642141850.
- ↑ "اختبار التشويش في دلفي - أدوات دلفي" . www.delphitools.info . تم الاطلاع عليه بتاريخ 22-04-2016 .
- ↑ "الفرق بين "اختبار التشويش" و"اختبار القرد"" . stackoverflow.com . تم الاطلاع عليه بتاريخ 22-04-2016 .
- اختبار البرمجيات
