La fin des bugs logiciels en vue

© iStock

Le système Prophet nouvellement mis au point au MIT nous rapproche encore un peu plus du rêve des logiciels libres de tout bug.

Prophet a été développé au Massachusetts Institute of Technology par Fan Long et Martin Rinard. Ces chercheurs ont adapté la technique de l’apprentissage machine en vue d’accroître le succès de la génération automatique de patches (correctifs). Dans ce but, Prophet a été soumis à 777 erreurs de programmation et à leurs correctifs dans 8 applications open source largement utilisées et publiées via GitHub.

Fort de cette connaissance, Prophet paraît nettement plus efficient dans la réparation de bugs que les programmes correctifs automatiques existants. Lors d’un test effectué sur 8 autres applications open source dans GitHub caractérisées par 69 bugs, Prophet est parvenu à en identifier et corriger automatique 15 à 18. Plus Prophet disposait de temps, plus il corrigeait de bugs. Les programmes de patch automatiques existants, dénués de ‘connaissance préliminaire’, n’ont pas fait mieux qu’1 ou 2. Prophet démontre en outre aussi ses ‘talents’ dans de vastes applications comportant jusqu’à un millions de lignes de code, voire plus. Les programmes précédents ne vont en général pas au-delà de 100 lignes de code. Comme la valeur d’un patch dépend également de la question de savoir s’il ne va pas causer des problèmes ailleurs dans le logiciel concerné, Prophet effectue sur ce plan aussi un sérieux bond en avant.

Facteur 10

Mais même si une amélioration d’un facteur 10 est déjà une fameuse performance, l’on déduit quand même des chiffres cités que pour en arriver à des logiciels libres de tout bug, il faudra encore attendre quelque peu. Il va cependant de soi que Prophet et les systèmes comparables peuvent évidemment continuer d’apprendre. La conclusion la plus prometteuse, c’est peut-être que le bon code possède manifestement des propriétés universelles. Sinon, Prophet n’aurait pas pu acquérir ses ‘talents’ de correction du code d’un ensemble d’applications en étudiant les bugs déjà corrigés dans un autre ensemble. Si des scientifiques réussissent à identifier ce qu’est le code correct ou, mieux encore, s’ils arrivent à mettre au point un système qui le peut, cela aura un énorme effet positif sur le développement des logiciels.

Fan Long et Martin Rinard donnent une description détaillée de leur travail de développement dans le document Automatic Patch Generation by Learning Correct Code.

Source: Automatiseringgids

Vous avez repéré une erreur ou disposez de plus d’infos? Signalez-le ici

Contenu partenaire