البرمجة وتطوير البرمجيات

Microsoft تطلق وكيلاً مفتوح المصدر لتوليد اختبارات الوحدات والتحقق منها

أعلنت Microsoft عن الوكيل مفتوح المصدر code-testing-generator، القادر على فهم مستودع المشروع وتحديد إطار الاختبار وكتابة اختبارات الوحدات والتحقق من بنائها وتشغيلها. أظهر الوكيل معدل إكمال بلغ 92.1% في اختبار داخلي من 152 مهمة، مقابل 78.9% لـ Copilot القياسي باستخدام النموذج نفسه.

31 يوليو 2026
4 دقائق قراءة
2 قراءة
Microsoft تطلق وكيلاً مفتوح المصدر لتوليد اختبارات الوحدات والتحقق منها

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

يتوفر الوكيل ضمن إضافة dotnet-test في مستودع dotnet/skills. ويعزل الكود قيد الاختبار، مع إنشاء محاكاة للخدمات الخارجية والاعتماديات الأخرى. ولا يشمل نطاقه الحالي اختبارات التكامل أو الاختبارات الشاملة أو اختبارات المتصفح أو اختبارات الأداء.

يبدأ بفهم المستودع قبل كتابة الاختبارات

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

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

ويختار الوكيل مستوى العمل وفقاً لحجم الطلب:

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

تحقق من فائدة الاختبارات لا من نجاحها فقط

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

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

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

نتائج الاختبار الداخلي

في أحدث اختبار معياري داخلي، أكمل الوكيل 140 مهمة من أصل 152، بمعدل 92.1%، مقابل 120 مهمة ومعدل 78.9% لـ Copilot القياسي، مع استخدام النموذج نفسه. وذكرت Microsoft أن عدد حالات الفشل انخفض بنسبة 63%.

ظهرت الفوارق الأكبر في الطلبات الغامضة التي تترك معظم القرارات للوكيل؛ إذ نجح الوكيل المتخصص في 79 مهمة من أصل 89، مقابل 59 مهمة لـ Copilot القياسي، وانخفضت حالات الفشل من 30 إلى 10. أما الطلبات المفصلة فكانت النتائج متقاربة، إذ نجح الوكيل في 61 مهمة من أصل 63.

وفي 15 مهمة طلبت كتابة اختبارات لتغيير محدد في الكود، نجح الوكيل في جميع المهام، بينما لم ينجح Copilot القياسي في أي منها. وعلى مستوى النتائج المشتركة، نجح النظامان في 119 مهمة، بينما نجح الوكيل المتخصص وحده في 21 مهمة، ونجح Copilot القياسي وحده في مهمة واحدة، وفشل النظامان في 11 مهمة.

ولّد الوكيل 6,963 اختباراً، مقارنة بـ7,129 اختباراً لـ Copilot القياسي، مع متوسط تغطية أسطر نهائية بلغ 72.4% مقابل 72.2%، ومتوسط تغطية فروع بلغ 49.8% مقابل 49.1%. كما بلغ متوسط زمن المهمة 359 ثانية للوكيل المتخصص و380 ثانية لـCopilot القياسي. وتقول Microsoft إن المكسب جاء من الاعتمادية، لا من إنتاج عدد أكبر من الاختبارات.

دعم لغات متعددة وتوفر الإضافة

تتضمن الإرشادات المرفقة دعماً لـ .NET وPython وTypeScript وJavaScript وJava وGo وRuby وRust وSwift وKotlin وPowerShell وC++. وأظهرت الاختبارات أن الوكيل يتعلم تقاليد كل مستودع بدلاً من تطبيق أنماط C# على جميع المشاريع.

في اختبار آخر على 44 مهمة من معيار SWE Atlas، أكمل الوكيل 16 مهمة، بمعدل 36.4%، مقابل 12 مهمة ومعدل 27.3% لـCopilot القياسي. كما اجتازت الاختبارات المولدة 550 حالة، وتمكنت من التقاط 360 خطأ محقوناً، مقابل 493 و316 على التوالي للنظام القياسي. وتقر Microsoft بأن هذا المعيار أصعب وأن معدلات الإكمال فيه أقل بكثير.

يمكن استخدام الإضافة في GitHub Copilot CLI، كما تتوفر في Visual Studio Code وVS Code Insiders عبر دعم الإضافات، وهو دعم ما يزال في مرحلة المعاينة. وتعمل Microsoft أيضاً على دعم Visual Studio. ولتثبيت الإضافة في GitHub Copilot CLI، يضيف المستخدم سوق الإضافات عبر الأمر /plugin marketplace add dotnet/skills، ثم يثبتها باستخدام /plugin install dotnet-test@dotnet-agent-skills، ويعيد تشغيل CLI ويختار الوكيل code-testing-generator.

من نفس التصنيف

مقالات قد تهمك

عرض جميع المقالات