Les bugs sont inévitables mais plus tard on les détecte, par exemple après le déploiement d’une application, plus leur résolution sera difficile à réaliser et plus leur coût sera élevé. Or, certains types de séquences dans le code d’un projet logiciel comportent un risque plus élevé que d’autres de générer un bug. Et ces séquences peuvent être apprises par un algorithme de classification qui pourra ensuite être utilisé pour prédire la probabilité d’un bug dans un fichier.
Pour mettre en oeuvre ces actions de prévention, Altran, société française d’ingénierie IT (récemment rachetée par Capgemini), a développé Code Defect AI, un classificateur basé sur l’apprentissage machine pour repérer dans les projets gérés sur GitHub les fichiers à haut risque de bugs. L’outil fournit aux développeurs les explications et les facteurs qui ont permis de le déterminer et suggère les tests qui permettront de les diagnostiquer et de les corriger. Les arbres décisionnels figurent parmi les techniques de machine learning qu’il utilise.
Des prédictions interprétées avec LIME
Dans cette initiative, Altran s’est associé à Microsoft. Sa solution, qui s’utilise avec le référentiel de projets GitHub, peut être hébergée sur site ou utilisée sur une plateforme cloud comme Azure.
L'architecture de déploiement de Code Defect AI s'appuie sur des services cloud Azure. (Crédit : Microsoft)
Des modèles de classification sont créés pour les projets GitHub en se basant sur les métadonnées associées aux soumissions de code (commits) historiques. Lorsque l’outil Code Defect AI trouve de nouveaux commits, il évalue s’il y a des risques qu’ils contiennent des bugs et livre ses prédictions en utilisant la technique LIME (Locally Interpretable Model-Agnostic Explanations) pour expliquer les prédictions en interprétant les modèles d’apprentissage machine.
Code Defect AI est accessible sur GitHub mais il peut être intégré à d’autres outils de gestion du code source que GitHub.