غالبًا ما يتم اكتشاف الأخطاء في اللحظة الأخيرة ، مما يؤخر دورة تطوير البرمجيات وبالتالي نشر البرامج. لمساعدة المطورين والشركات في التخفيف من حدتها ، وضعت شركة Altran ، وهي شركة تقدم خدمات البحث والتطوير والهندسة المستندة إلى الذكاء الاصطناعي ، أداة تحت اسم “Code Defect AI” لمساعدتهم على اكتشاف الأخطاء أثناء العملية الترميز وليس في النهاية. تم تطوير الأداة بالشراكة مع Microsoft وهي متاحة في مصدر مفتوح على GitHub بموجب ترخيص Apache v2.0.
فيما يلي التفاصيل الرئيسية التي يجب معرفتها حول “Code Defect AI” ، أداة Altran.
الأخطاء حقيقة واقعة في تطوير البرمجيات. كلما تم اكتشاف عيب لاحق في دورة التطوير ، زادت تكاليف تصحيحه. إذا تم اكتشاف عيب بعد النشر ، يتأثر العملاء ويقضي المطورون وقتًا أطول في إعادة إظهار المشكلة ثم نشر الإصلاح المناسب. إن عملية اكتشاف الأخطاء وإصلاحها وتحليلها طويلة ومكلفة. بالإضافة إلى ذلك ، يمكن أن يسبب هذا أيضًا تأخيرات في تسليم الميزات الجديدة.
لمساعدة الشركات والمطورين في العثور على الأخطاء وإصلاحها بشكل أسرع ، تقدم Altran حلاً قائمًا على الذكاء الاصطناعي. الهدف هو اتباع قواعد التعليمات البرمجية التي تحمل مخاطر عالية لإدخال خطأ. وفقًا لمايكروسوفت ، يمكن تعلم قواعد الكود هذه من خلال خوارزمية تعلم التصنيف للتنبؤ باحتمال أن أحد الملفات يقدم خطأ. يتيح لك هذا العثور على عيب في وقت وجيز ، مما يقلل من تكلفة إصلاح الأخطاء.
Code Defect AI عبارة عن مصنِّف للتعلم الآلي يتنبأ بملفات شفرة المصدر الملتزمة المعرضة لخطر من الأخطاء من خلال الإشارة إلى الالتزام التاريخي. بمعنى آخر ، باستخدام Code Defect AI ، يتم إنشاء نماذج تصنيف مخصصة لمشاريع GitHub ، استنادًا إلى البيانات الوصفية المرتبطة بالالتزام التاريخي. بهذه الطريقة ، عندما يكتشف Code Defect AI التزامًا جديدًا من المطورين ، فإنه يتنبأ بما إذا كانت بعض الملفات في الالتزام قد تكون معيبة.
تم تقديم الأساس المنطقي لهذا التوقع باستخدام LIME (تفسيرات نموذجية ملزمة للتفسير المحلي). LIME هي طريقة لشرح توقعات المصنف لتعلم الآلة. استخدم Altran هذه التقنية حتى يتمكن المطورون من الثقة والتعلم من هذا التنبؤ. ووفقًا لوليد نجم ، مدير الابتكار في Altran ، ستساعد هذه الأداة الجديدة المطورين على إصدار رمز الجودة بسرعة وخفض تكلفة إصلاح الأخطاء.
وقال “إن دورة إصدار البرمجيات تحتاج إلى خوارزميات يمكنها المساعدة في اتخاذ قرارات استراتيجية ، خاصة عندما يصبح الرمز أكثر تعقيدًا”. يستخدم العيب في الشفرة العديد من تقنيات ML ، بما في ذلك غابات القرار العشوائية ، وآلات المتجهات الداعمة ، ووجهة نظر متعددة الطبقات (MLP) والانحدار اللوجستي.
إليك كيفية عمل Code Defect AI :
- بالنسبة لمشروع GitHub مفتوح المصدر ، يتم جمع البيانات التاريخية باستخدام واجهات RESTFul و Git CLI. تتضمن هذه البيانات سجل الالتزام الكامل وتاريخ الخطأ الكامل ؛
- يتم تطبيق تقنيات المعالجة المسبقة مثل تحديد الخصائص وملصقات الترميز والتشفير الساخن والتحجيم وتطبيع البيانات على البيانات التاريخية التي تم جمعها ؛
- يتم وضع العلامات على البيانات المعالجة. تنطوي عملية وضع العلامات على فهم النموذج الذي يتم فيه تصنيف “عمليات الإصلاح” (حيث تم إغلاق الخطأ) لكل مشكلة مغلقة. بعد جمع تنفيذ التصحيح ، يتم تحديد الالتزام الذي أدخل الأخطاء من خلال الرجوع إلى التغييرات السابقة لكل ملف من عمليات التصحيح ؛
- إذا كانت مجموعة البيانات تحتوي على كمية صغيرة جدًا من بيانات الأخطاء مقارنة بالسجلات الخاصة بها ، يتم إنشاء البيانات الاصطناعية أيضًا لتجنب التحيز تجاه فئة الأغلبية ؛
- يتم تشكيل خوارزميات النمذجة المتعددة على البيانات المعدة ؛
- بمجرد أن يكون هناك نموذج له قيمة مقبولة للدقة والاستدعاء ، يتم نشر النموذج المحدد للتنبؤ بالتزام جديد.
بالإضافة إلى ذلك ، يمكن دمج Code Defect AI مع أدوات التحليل التابعة لجهات خارجية. وبالمثل ، يساعد أيضًا في تحديد الأخطاء في رمز برنامج معين. يسمح Code Defect AI أيضًا للمطورين بتقييم ميزات الرمز التي يجب أن تُعطى الأولوية في إصلاح الأخطاء. يمكن استضافتها في كل من المباني وعلى منصات الحوسبة السحابية مثل Microsoft Azure.
المصدر : صفحة البرنامج على GitHub ، Microsoft