Developpez.com - Programmation

Le Club des Développeurs et IT Pro

Microsoft a mis au point une intelligence artificielle 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é

Le 2021-12-10 17:16:08, par Sandra Coret, Communiqués de presse
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é
  Discussion forum
5 commentaires
  • tatayo
    Expert éminent sénior
    Un compilateur "conventionnel" te dira si la syntaxe de ton code est incorrecte (un point-virgule manquant, une parenthèse oubliée…).
    Mais pour reprendre un exemple cité dans l'article, il ne te dira pas que ta comparaison est incorrecte ("<" au lieu de "<=", "and" au lieu de "or".

    Pour les utilisateurs de Visual Studio, ça me fait penser à Intellicode, mais en plus avancé.

    Tatayo.
  • azad2b
    Nouveau membre du Club
    Espérons qu'ils vont appliquer cette idée sur leurs propres créations. Ca ne pourrait que leur être profitable.
  • rbolan
    Membre actif
    Je me demandais justement, n'étant pas du tout expert dans le domaine, quelle est la différence avec un compilateur conventionnel
  • marsupial
    Expert éminent
    A plus de 60 000 failles logiciels en un an, source dvp, il s'agit d'un produit à fort potentiel à mettre au point.
  • Cpt Anderson
    Membre émérite
    Ca s'appelle un compilateur. C'est vieux comme le métier de développeur presque.