← أحدث الأبحاث
💬 NLP

Mining Subscenario Refactoring Opportunities in Behaviour-Driven Software Test Suites: ML Classifiers and LLM-Judge Baselines

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

المؤلفون الأصليون: Ali Hassaan Mughal, Noor Fatima, Muhammad Bilal

نُشر 2026-05-15
📖 5 دقيقة قراءة🧠 قراءة متعمّقة

المؤلفون الأصليون: Ali Hassaan Mughal, Noor Fatima, Muhammad Bilal

البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل

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

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

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

إليك كيف تُقسم الورقة البحثية، باستخدام تشبيهات بسيطة:

1. المشكلة: فوضى "النسخ واللصق"

في الماضي، كان الباحثون يستطيعون فقط رصد ما إذا كانت القصة الكاملة (سيناريو الاختبار الكامل) مكررة. لكن الفوضى الحقيقية تحدث في منتصف القصص.

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

2. تحدي "إعادة الصياغة"

لا يمكن لروبوت أمين المكتبة أن يبحث فقط عن تطابق النصوص الحرفي. فالمطورون غالباً ما يعيدون صياغة الأشياء.

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

3. الطرق الثلاث لإصلاح الفوضى

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

  • الأداة (أ): "الخلفية" (داخل ملف واحد)

    • التشبيه: إذا كانت كل القصص في كتاب معين تبدأ بنفس الجمل الثلاث، فأنت لا تعيد كتابتها في كل فصل، بل تكتبها مرة واحدة في أعلى الكتاب كملحوظة "خلفية" (Background).
    • متى تُستخدم: عندما تتكرر نفس الخطوات داخل ملف واحد فقط.
  • الأداة (ب): "الفصل القابل لإعادة الاستخدام" (داخل مشروع واحد)

    • التشبيه: إذا كان تسلسل أحداث معين يحدث في 50 كتاباً مختلفاً في نفس المكتبة، فإنك تكتب هذا التسلسل مرة واحدة في كتاب "الفصول القابلة لإعادة الاستخدام". ثم في الكتب الخمسين الأخرى، تكتب فقط "انظر الفصل القابل لإعادة الاستخدام رقم 4".
    • متى تُستخدم: عندما تتكرر نفس الخطوات عبر ملفات مختلفة في نفس المشروع البرمجي.
  • الأداة (ج): "الأمر العالمي" (عبر شركات مختلفة)

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

4. "العقل الذكي" (تعلم الآلة مقابل النماذج اللغوية الكبيرة LLMs)

كان على المؤلفين تعليم الروبوت أي الشرائح المتكررة تستحق الإصلاح فعلياً. فليست كل التكرارات مفيدة؛ فبعضها مجرد أشياء مملة وتافهة (مثل "status 200" والتي تعني فقط "لقد نجح الأمر").

  • التدريب: استعانوا بثلاثة خبراء بشريين لمراجعة 200 شريحة عشوائية ليقرروا: "هل هذا يستحق الإصلاح؟" و "أي أداة (أ، ب، أو ج) يجب استخدامها؟".
  • المنافسة: قاموا بتدريب نموذج حاسوبي ذكي (يسمى XGBoost) ليتعلم من هؤلاء البشر. ثم وضعوه في تحدٍ ضد "حكام ذكاء اصطناعي" آخرين (نماذج لغوية كبيرة، أو LLMs).
  • النتيجة: كان نموذج XGBoost هو الفائز الواضح.
    • الخبير البشري (XGBoost): أصاب في قراره بنسبة 89%.
    • حكام الذكاء الاصطناعي (LLMs): أصابوا بنسبة 73% و 59% فقط.
    • لماذا؟ كانت النماذج اللغوية الكبيرة (LLMs) حذرة للغاية؛ فغالباً ما كانت تقول "لا، لا تصلح هذا" حتى عندما كانت الفكرة جيدة، بينما تعلم النموذج المتخصص بالضبط ما يبحث عنه البشر.

5. النتائج الكبرى

بعد تشغيل هذا الروبوت على مكتبة ضخمة تضم 1.1 مليون خطوة اختبار، إليكم ما وجدوه:

  • التكرار في كل مكان: حوالي 75% من ملفات الاختبار تحتوي على قطع متكررة يمكن تنظيفها باستخدام الأداة (أ) (الخلفية).
  • التكرار عبر الملفات شائع: حوالي 60% من المشاريع تحتوي على قطع يمكن تنظيفها باستخدام الأداة (ب) (الفصل القابل لإعادة الاستخدام).
  • التكرار عبر الشركات نادر ولكنه حقيقي: حوالي 12% فقط من المشاريع لديها قطع متكررة لدرجة أنها يمكن أن تُشارك عبر شركات مختلفة (الأداة ج).
  • فخ "المالك نفسه": لاحظوا أن العديد من التكرارات "عبر الشركات" كانت في الواقع شركة واحدة (مثل DataDog) تنشر نسخاً عديدة ومختلفة من برامجها بلغات مختلفة. لقد تعلم الروبوت تجاهل هذه الحالات، لأنها ليست "مشتركة" حقاً بين منظمات مختلفة.

6. الخلاصة

توفر هذه الورقة البحثية مخططاً وأداة للعثور تلقائياً على فوضى "النسخ واللصق" في اختبارات البرمجيات.

  • هي لا تكتفي بالقول: "مهلاً، هناك تكرار".
  • بل تقول: "هذا هو الجزء المكرر، وهذا هو سبب استحقاقه للإصلاح، وهذا هو التغيير البرمجي الدقيق الذي تحتاجه للقيام بالإصلاح".

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

غارق في أبحاث مجالك؟

تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.

جرّب Digest →