IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

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 , par Sandra Coret

53PARTAGES

7  0 
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é

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de tatayo
Expert éminent sénior https://www.developpez.com
Le 13/12/2021 à 17:08
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.
5  0 
Avatar de azad2b
Nouveau membre du Club https://www.developpez.com
Le 13/12/2021 à 17:00
Espérons qu'ils vont appliquer cette idée sur leurs propres créations. Ca ne pourrait que leur être profitable.
3  1 
Avatar de rbolan
Membre actif https://www.developpez.com
Le 13/12/2021 à 9:09
Je me demandais justement, n'étant pas du tout expert dans le domaine, quelle est la différence avec un compilateur conventionnel
1  0 
Avatar de marsupial
Expert éminent https://www.developpez.com
Le 15/12/2021 à 20:03
A plus de 60 000 failles logiciels en un an, source dvp, il s'agit d'un produit à fort potentiel à mettre au point.
0  0 
Avatar de Cpt Anderson
Membre émérite https://www.developpez.com
Le 13/12/2021 à 9:04
Ca s'appelle un compilateur. C'est vieux comme le métier de développeur presque.
3  5