مِخبارMIKHBAR
الذكاء الاصطناعي

ميتا تكشف عن نظام JiTTesting لاصطياد الأخطاء البرمجية قبل إطلاقها

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

ميتا تكشف عن نظام JiTTesting لاصطياد الأخطاء البرمجية قبل إطلاقها

من نموذج بحثي إلى بنية تحتية أساسية

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

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

نهج مختلف عن المراجعة التقليدية

تعتمد معظم الأساليب القائمة على الذكاء الاصطناعي لمنع الأخطاء في الكود على النماذج اللغوية الكبيرة أو الذكاء الاصطناعي الوكيل (Agentic AI) لمراجعة الكود وكشف العيوب بناءً على الخبرة السابقة. تعمل هذه الأنظمة عبر نفس عملية المراجعة التي يقوم بها المراجع البشري، ولكن بسرعة أكبر. في المقابل، يمثل نظام الاختبارات الفورية نهجاً مختلفاً جذرياً؛ فهو يولّد اختبارات قابلة للتنفيذ تُظهر فرقاً سلوكياً محدداً وملموساً أدخلته التعديلات.

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

سير عمل مزدوج لتوليد الاختبارات

لمعالجة هذه التحديات، طورت ميتا سير عملين متوازيين. الأول هو سير عمل «واعٍ بالنية» (Intent-aware)، الذي يستنتج نية تعديل الكود ومخاطره، ويستهدف توليد الاختبارات نحو نقاط الفشل المحتملة. أما الثاني فهو سير عمل «التعديل المشبوه» (Dodgy diff)، الذي يعامل كل تعديل كود كونه متحوّراً (Mutant) أو خطأً، ويولّد اختبارات لكشف فروق سلوكه دون الحاجة إلى الاستدلال على نيته. يعتمد هذا الأخير على توليد اختبارات موجهة بالتحورات باستخدام النماذج اللغوية الكبيرة.

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

تصفية النتائج الإيجابية الزائفة

بعد توليد الاصطيادات الضعيفة، يجب على النظام تحديد ما إذا كانت كل واحدة منها نتيجة إيجابية زائفة أم اصطياداً قوياً (إيجابياً حقيقياً). لتحقيق ذلك، اعتمدت ميتا على نهج تقليدي قائم على القواعد، بالإضافة إلى نهج تجميعي أسمته «النموذج اللغوي الكبير كقاضي» (LLM-as-Judge). يتكون هذا التجميع من مجموعة من أحدث النماذج اللغوية الكبيرة، التي تُكلَّف بتصنيف الاصطيادات الضعيفة على أنها إيجابية حقيقية أو زائفة على الأرجح.

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

البشري في الحلقة لتقليل العبء

بناءً على الترتيب الناتج عن آليتي التقييم، يقرر النظام ما إذا كان يجب التواصل مع المهندسين البشر. بدلاً من نهج «البشري في الحلقة» (Human-in-the-loop) حيث يراجع مهندس بشري كل مخرجات النظام، قللت ميتا من الاحتكاك من خلال نهج «البشري في الحلقة» (Human-on-the-loop). في هذا النهج، يحدد المهندسون المعايير ويراجعون النتائج على مستوى المجموع (Aggregate level) بدلاً من الإشراف على كل مخرج فردي. الهدف هو الحفاظ على اتساق التسمية البشرية مع تقليل احتمالية استدعاء مهندس لمراجعة اصطياد ضعيف.

يعمل النظام بأكمله عبر خمس مراحل، تبدأ بتشغيل النظام ليلاً على السعة الفائضة، مستهدفاً التعديلات المقدمة في اليوم السابق والتي تُصنف على أنها «مخاطرة» باستخدام آلية مشابهة لدرجة مخاطر التعديل (DRS) والمدربة على تغييرات الكود السابقة. يضمن هذا التركيز على التعديلات الأكثر احتمالاً لاحتواء انحدارات (Regressions) شديدة، مما يجعل توليد الاختبارات أكثر كفاءة.

نتائج ملموسة في بيئة الإنتاج

مع وجود نظام الاختبار في مكانه، كان الهدف هو إشراك المهندسين في نتائجه. حتى تاريخ كتابة هذا التقرير، تفاعل 589 مهندساً في ميتا (يمثلون 64% من إجمالي المنخرطين) مع نظام الاختبارات الفورية. أبلغ هؤلاء المهندسون عن أن النظام يكشف عن نتائج قابلة للتنفيذ فعلياً، مع معدل إيجابي حقيقي يبلغ 60%.

في النصف الأول من عام 2026، لعب نظام الاختبارات الفورية دوراً رئيسياً في رصد 74 خطأً خصوصياً خطيراً (SEV) في مرحلة التعديل (Diff)، قبل أن تصل إلى بيئة الإنتاج. أسهم هذا الرصد المبكر في خفض إجمالي حدوث أخطاء الخصوصية الخطيرة بنسبة 20% خلال تلك الفترة. مع تسارع تطوير البرمجيات الوكيلة (Agentic) الذي يساعد المطورين على كتابة ومراجعة وإطلاق الكود بسرعة غير مسبوقة، تزداد الحاجة إلى اختبارات أسرع. أثبتت ميتا أن النماذج اللغوية الكبيرة يمكن أن توفر طبقة أمان إضافية قادرة على حماية المستخدمين من الأخطاء قبل حدوثها.

المصادر

  • Meta EngineeringCatching Bugs Before They Land: JiTTesting’s Human-on-the-Loop Approach at Full Scale

تابع التسلسل الزمني

تغطية الكيانات المرتبطة