Improving Test Case Prioritization in Continuous Integration Environments Using Multilayer Perceptron: An Empirical Comparative Study
تُثبت هذه الدراسة التجريبية أن المدرك متعدد الطبقات (MLP) يتفوق بشكل كبير على خمس خوارزميات تعلم آلي كلاسيكية في تحديد أولويات حالات الاختبار ضمن بيئات التكامل المستمر، محققاً كفاءة فائقة في اكتشاف الأخطاء ودلالة إحصائية عبر مجموعات بيانات صناعية متعددة.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
في عالم تطوير البرمجيات الحديث المتسارع والواسع، يتم تحديث البرامج باستمرار. وللحفاظ على موثوقية هذه الأنظمة، يقوم المهندسون بتشغيل فحوصات آلية تسمى "اختبارات التراجع" (regression tests) في كل مرة يتم فيها إجراء تغيير. تخيل مكتبة ضخمة حيث يجب فحص كل كتاب بحثاً عن أي تلف في كل مرة تُضاف فيها صفحة جديدة. إذا اضطر أمين المكتبة إلى فحص كل كتاب على حدة بالترتيب، فستستغرق العملية وقتاً طويلاً جداً، وستتأخر المكتبة عن مواكبة المستجدات. وفي عالم البرمجيات، يعني هذا الانتظار لفترة طويلة جداً لاكتشاف ميزة معطلة، وهو أمر قد يكون مكلفاً ومحبطاً. ولحل هذه المشكلة، يستخدم الباحثون استراتيجية تسمى "تحديد أولويات حالات الاختبار" (test case prioritization). فبدلاً من تشغيل الاختبارات بترتيب عشوائي، يحاولون معرفة أي الاختبارات المحددة هي الأكثر عرضة للفشل أولاً. ومن خلال تشغيل الاختبارات الأكثر اشتباهاً في البداية تماماً، يمكن للفرق العثور على المشكلات وإصلاحها بشكل أسرع بكثير، مما يوفر الوقت والموارد.
لسنوات طويلة، حاول علماء الحاسوب استخدام تعلم الآلة للمساعدة في مهمة الفرز هذه. وهذه عبارة عن برامج حاسوبية تتعلم من البيانات السابقة لتقديم تنبؤات. ومع ذلك، تشير دراسة حديثة من جامعة أبوبكر تافاوا باليوا في نيجيريا إلى أنه بينما توجد العديد من الأساليب، فإن نوعاً معيناً من نماذج التعلم قد يكون الأكثر فعالية لهذه المهمة. فقد سعى الباحثون، موسى إيسياكو، وعبد السلام ياو غيتال، وهارونا شيروما، لمعرفة ما إذا كان نموذج يسمى "المدرك متعدد الطبقات" (Multilayer Perceptron) يمكنه التفوق على الأساليب الشائعة الأخرى عند الفرز عبر آلاف حالات الاختبار في بيئة اختبار مستمرة. لم يعتمدوا على التخمين فحسب؛ بل وضعوا النموذج تحت الاختبار مقابل خمس خوارزميات أخرى راسخة باستخدام بيانات واقعية من شركات الروبوتات الصناعية وتكنولوجيا الشبكات.
جمع الفريق مجموعة ضخمة من سجلات الاختبار التاريخية من شركة ABB Robotics، وهي شركة تصنع الروبوتات الصناعية. احتوت هذه المجموعة من البيانات على أكثر من 64,000 عملية تنفيذ اختبار فردية من 106 دورات اختبار مختلفة. في هذا السيناريو الواقعي، تنجح معظم الاختبارات بنجاح، بينما يفشل جزء صغير فقط منها. وهذا يخلق موقفاً صعباً لنماذج الحاسوب: إذا خمن البرنامج ببساطة أن كل الاختبارات ستنجح، فسيكون محقاً في معظم الأوقات، ولكنه سيفقد تماماً الاختبارات القليلة التي تفشل بالفعل. احتاج الباحثون إلى نموذج يمكنه رصد تلك الإخفاقات النادرة دون أن يتشتت بالعدد الهائل من النجاحات. ولضمان أن نتائجهم ليست مجرد ضربة حظ، اختبروا نهجهم أيضاً على ثلاث مجموعات بيانات صناعية أخرى من شركات مختلفة، للتحقق مما إذا كانت النتائج ستصمد في بيئات مختلفة.
قارنوا نموذجهم المختار، "المدرك متعدد الطبقات"، بخمس تقنيات أخرى شائعة لتعلم الآلة وهي: الغابة العشوائية (Random Forest)، وXGBoost، والانحدار اللوجستي (Logistic Regression)، وآلة ناقلات الدعم (Support Vector Machine)، وk-الأقرب للجيران (k-Nearest Neighbors). ولجعل المقارنة عادلة، قاموا بتشغيل جميع النماذج الستة تحت نفس الظروف تماماً، باستخدام نفس تقسيمات البيانات ونفس الطرق لضبط إعداداتهم. كان الهدف هو معرفة أي نموذج يمكنه ترتيب الاختبارات الفاشلة في أعلى القائمة، مما يضمن تشغيلها أولاً. لم يقس الباحثون النجاح بمجرد عدد المرات التي كان فيها النموذج صحيحاً بشكل عام، بل بمدى سرعته في تحديد الإخفاقات. استخدموا درجة محددة تسمى "متوسط النسبة المئوية للأخطاء المكتشفة" (Average Percentage of Faults Detected)، والتي تقيس أساساً مدى ظهور الاختبارات السيئة في وقت مبكر من القائمة. وكلما زادت هذه الدرجة، كان النموذج أفضل في رصد المشكلات مبكراً.
كانت النتائج واضحة ومتسقة. ففي مجموعة البيانات الأساسية من شركة ABB Robotics، حقق نموذج "المدرك متعدد الطبقات" دقة بلغت 99.77 بالمائة وسجل 86.35 بالمائة في مقياس اكتشاف الأخطاء. وبينما قدمت النماذج الأخرى أداءً جيداً، إلا أن "المدرك متعدد الطبقات" نجح باستمرار في ترتيب الاختبارات الفاشلة في مرتبة أعلى قليلاً من المنافسين. استخدم الباحثون اختبارات إحصائية صارمة للتأكد من أن هذا الفرق ليس ناتجاً عن الصدفة. وأظهر التحليل أن "المدردرك متعدد الطبقات" كان متفوقاً إحصائياً على جميع النماذج الخمسة الأخرى، بمستوى من الثقة لا يدع مجالاً للشك. وحتى عندما قاموا بتعديل إعدادات النماذج لمعرفة ما إذا كان بإمكانهم تحسينها بشكل أكبر، ظل "المدرك متعدد الطبقات" هو الأفضل أداءً، بينما أصبح بعض النماذج الأخرى في الواقع أسوأ قليلاً بعد الضبط.
أحد أهم الدروس المستفادة من هذه الدراسة هو كيفية قياس النجاح. فقد وجد الباحثون أن النظر فقط إلى الدقة الإجمالية يمكن أن يكون مضللاً في هذا المجال. نظرًا لأن معظم الاختبارات تنجح، يمكن للنموذج أن يحصل على درجة دقة عالية جداً ببساطة عن طريق تجاهل الإخفاقات. أثبتت الدراسة أنه لفهم مدى جودة عمل نظام تحديد الأولويات حقاً، يجب النظر إلى مدى جودة عثوره على الأقلية من الاختبارات الفاشلة ومدى سرعة العثور عليها. وقد تفوق "المدرك متعدد الطبقات" في ذلك، مما أثبت أن نماذج التعلم العميق يمكنها التعامل مع الطبيعة المعقدة وغير المتوازنة لبيانات الاختبار الواقعية بشكل أفضل من الأساليب التقليدية.
نظرت الدراسة أيضاً فيما إذا كان هذا النموذج يمكنه العمل على بيانات من شركات مختلفة. وعند اختباره على مجموعات بيانات من IOFROL وPAINTCONTROL وWestermo Network Technologies، حافظ "المدرك متعدد الطبقات" على أداء قوي، مما أظهر أنه ليس مجرد ملاءمة محظوظة لمجموعة بيانات واحدة، بل هو أداة قوية يمكنها التكيف مع سياقات صناعية مختلفة. وخلص الباحثون إلى أنه بالنسبة للمؤسسات التي تدير اختبارات مؤتمتة واسعة النطاق، فإن اعتماد هذا النوع المحدد من نماذج تعلم الآلة يمكن أن يسرع بشكل كبير عملية اكتشاف الأخطاء. ومن خلال استخدام نموذج يتعلم الأنماط المعقدة من التاريخ، يمكن لفرق البرمجيات ضمان تشغيل اختباراتها الأكثر أهمية أولاً، مما يحافظ على موثوقية أنظمتها واستمرار دورات التطوير الخاصة بها دون تأخيرات غير ضرورية.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.