Les bogues sont une réalité dans le développement de logiciels. Plus un défaut est découvert tardivement dans le cycle de développement, plus les coûts inhérents à sa correction sont élevés. Si un défaut est découvert après le déploiement, les clients sont touchés et les développeurs passent plus de temps à reproduire le problème, puis à publier une correction. Ce processus de déploiement, d'analyse et de correction des bogues est long et coûteux. Par ailleurs, cela peut également occasionner des retards dans les livraisons de nouvelles fonctionnalités.
Pour aider les entreprises et développeurs à trouver et corriger plus rapidement les bogues, Altran leur propose une solution basée sur l’IA. Le but est de suivre efficacement les bases de code qui comportent un risque élevé d’introduire un bogue. Selon Microsoft, ces bases de code peuvent être apprises par un algorithme d'apprentissage de classification pour prévoir la possibilité qu'un des fichiers présente un bogue. Cela permet de découvrir plus tôt un défaut, ce qui minimise le coût de la correction des bogues. Altran a publié cet outil sous le nom de “Code Defect AI”.
Code Defect AI est un classificateur d'apprentissage automatique qui prédit les fichiers de code source committé présentant un risque plus élevé de bogue en se référant aux commit historiques. En d’autres termes, en utilisant Code Defect AI, des modèles de classification personnalisés sont créés pour les projets GitHub, sur la base des métadonnées associées aux commit historiques. De cette façon, quand Code Defect AI découvre de nouveaux commit de développeurs, elle prédit si certains fichiers du commit risquent de présenter des défauts.
La justification de cette prédiction est présentée à l'aide de LIME (Local Interpretable Model-Agnostic Explanations). LIME est une méthode qui permet d’expliquer les prédictions d’un classificateur d'apprentissage automatique. Altran a employé cette technique afin que les développeurs puissent faire confiance à cette prédiction et en tirer des enseignements. Selon Walid Negm, directeur de l'innovation d’Altran, ce nouvel outil aidera les développeurs à publier rapidement un code de qualité et faire baisser les coûts de correction des bogues.
« Le cycle de publication des logiciels a besoin d'algorithmes qui peuvent aider à prendre des décisions stratégiques, surtout lorsque le code devient plus complexe », a-t-il Negm. Code Defect AI utilise plusieurs techniques de ML, dont les forêts de décision aléatoire, les machines à vecteurs de soutien, le perceptron multicouche (MLP) et la régression logistique. Voici comment fonctionne Code Defect AI :
- pour un projet GitHub open source, les données historiques sont collectées en utilisant les interfaces RESTFul et Git CLI. Ces données comprennent l'historique complet des commit et l'historique complet des bogues ;
- des techniques de prétraitement telles que l'identification des caractéristiques, l'encodage des étiquettes, un encodage à chaud, la mise à l'échelle et la normalisation des données sont appliquées aux données historiques collectées ;
- l'étiquetage est effectué sur les données prétraitées. Le processus d'étiquetage implique la compréhension du modèle dans lequel les “fix commits” (où un bogue a été fermé) sont étiquetés pour chacun des problèmes fermés. Après la collecte des commit de correction, les commit qui ont introduit les bogues sont identifiés en faisant un retour en arrière sur les changements historiques pour chaque fichier d'un commit de correction ;
- si un ensemble de données contient une très petite quantité de données de bogues par rapport aux enregistrements propres, des données synthétiques sont également générées pour éviter tout biais vers la classe majoritaire ;
- de multiples algorithmes de modélisation sont formés sur les données préparées ;
- une fois qu'il existe un modèle qui a une valeur acceptable de précision et de rappel, le modèle sélectionné est déployé pour la prédiction sur les nouveaux commit.
En outre, Code Defect AI peut être intégré avec des outils d'analyse tiers. De même, il permet également d’identifier les bogues dans un code de programme donné. Code Defect AI permet aussi aux développeurs d'évaluer quelles caractéristiques du code devraient être prioritaires en matière de correction des bogues. Il peut être hébergé aussi bien dans les locaux que sur des plateformes de cloud computing telles que Microsoft Azure.
Sources : Microsoft, Page GitHub de "Code Defect AI"
Et vous ?
Que pensez-vous de cet outil ?
Voir aussi
ESLint 7.0.0 est disponible, l'utilitaire de linting pour JavaScript supprime la prise en charge de Node.js 8 et vient avec plusieurs changements de ruptures
Suivi des linters JavaScript, outils d'analyse statique de code source, ESLint en 4.19.0 et standardJS en 11.0.0
Node.js : eslint-scope, un paquet npm, a été infecté par un hacker pour lui permettre de voler des identifiants npm