Microsoft a mis au point une intelligence artificielle (IA) capable de trouver des bogues dans le code, afin d'aider les développeurs à déboguer leurs applications avec plus de précision et d'efficacité
Les chercheurs Miltos Allamanis, chercheur principal, et Marc Brockschmidt, directeur principal de la recherche, ont développé leur IA, BugLabs, de la même manière que les réseaux adversariaux génératifs (GAN).
Microsoft a opposé deux réseaux - l'un conçu pour introduire des petits bogues dans le code existant et l'autre visant à trouver ces bogues. Les deux réseaux sont devenus de plus en plus performants, ce qui a donné naissance à une IA capable d'identifier les bogues cachés dans le code réel.
L'avantage de cette approche est que le processus est entièrement auto-supervisé et ne nécessite pas de données étiquetées.
Les résultats sont présentés ci-dessous :
En théorie, nous pourrions appliquer le jeu de cache-cache à grande échelle, en apprenant à une machine à identifier des bogues arbitrairement complexes. Cependant, de tels bugs sont encore hors de portée des méthodes modernes d'IA. Nous nous concentrons plutôt sur un ensemble de bogues courants. Il s'agit notamment de comparaisons incorrectes (par exemple, l'utilisation de "<=" au lieu de "<" ou ">"), d'opérateurs booléens incorrects (par exemple, l'utilisation de "and" au lieu de "or" et vice versa), de mauvais usages de variables (par exemple, l'utilisation incorrecte de "i" au lieu de "j") et de quelques autres. Pour tester notre système, nous nous concentrons sur le code Python.
Une fois que notre détecteur est entraîné, nous l'utilisons pour détecter et réparer des bogues dans du code réel. Pour mesurer la performance, nous annotons manuellement un petit ensemble de bogues provenant de paquets dans le Python Package Index avec de tels bogues et nous montrons que les modèles formés avec notre méthode "hide-and-seek" sont jusqu'à 30% meilleurs par rapport à d'autres alternatives, par exemple, les détecteurs formés avec des bogues insérés aléatoirement. Les résultats sont prometteurs et montrent qu'environ 26 % des bogues peuvent être trouvés et corrigés automatiquement. Parmi les bogues que notre détecteur a trouvés, il y avait 19 bogues inconnus auparavant dans du code GitHub open-source réel. Cependant, les résultats ont également montré de nombreux faux positifs, ce qui suggère que des progrès supplémentaires sont nécessaires avant que de tels modèles puissent être déployés en pratique.
Ils concluent que leur approche est prometteuse, même si, bien entendu, il reste encore beaucoup à faire pour que ces détecteurs soient fiables et utilisables dans la pratique. Cependant, étant donné le travail de Microsoft sur GitHub pour GPT-3, il est tout à fait possible que ce travail soit commercialisé à terme.
Source : Microsoft
Et vous ?
Que pensez-vous de BugLabs ?
Croyez-vous que ce projet pourrait être viable à l'avenir ?
Voir aussi :
Les développeurs sont-ils trop lents pour innover ou pour déployer de nouvelles fonctionnalités ? la chasse aux bogues, les petites équipes et les limites budgétaires en seraient quelques causes
Des chercheurs ont mis au point Geneva, une IA capable de contourner la censure de l'Internet, en détectant les bogues et les lacunes dans le système de censure
Microsoft a mis au point une IA qui peut différencier les bugs dans 99 % des cas, et qui arrive à mesurer la gravité de 97 % des problèmes de sécurité
Partager