La programmation peut-elle être automatisée ? En réponse à cette question, bon nombre de développeurs ici nous diront probablement de venir reposer la question dans 10 ou 20 ans. Mais une chose est sure, c'est que certaines tâches faisant partie de la programmation devraient et peuvent être automatisées. C'est le cas par exemple de la correction de bogues.
Comme on a coutume de le dire, programmer c'est l'art de créer des bogues. Alors, les programmes informatiques étant de plus en plus complexes, des bogues apparaissent de manière inévitable au cours du processus de développement. Raison pour laquelle la recherche des bogues ainsi que l'écriture de patchs pour les corriger font partie intégrante de tout projet de développement logiciel.
Cependant, la recherche de bogues et le développement de correctifs prennent beaucoup de temps et mobilisent des ressources importantes. C'est pourquoi plusieurs chercheurs et entreprises ont travaillé, et continuent de le faire, sur des moyens d'automatiser ce processus. Mais jusque-là, les résultats n'ont pas vraiment été à la hauteur des attentes, puisque les bots développés pour réaliser ces tâches ont tendance à être bien plus lents que les humains, sans oublier la qualité du code qu'ils produisent. On ne sera satisfait des solutions d'automatisation de recherche et de corrections de bogues que si le résultat est comparable est à celui d'un développeur humain. Mais quand pourrait-on atteindre cette étape ? La question se pose...
Pour une équipe de chercheurs de l'Institut royal de technologie de Stockholm, pilotée par Martin Monperrus, ce rêve ne devrait pas tarder à se réaliser. Et c'est ce que vient de prouver Repairnator, un bot ou programmateur automatisé qu'ils ont développé et qui pourrait rivaliser avec les développeurs humains pour trouver des bogues et écrire des correctifs de haute qualité. Repairnator a en effet été capable de trouver des bogues et écrire des correctifs assez rapidement et de bonne qualité pour être acceptés et intégrés dans des bases de code de projets open source.
Monperrus et ses coéquipiers ont testé Repairnator en le déguisant en développeur humain et en lui permettant de rivaliser avec les humains pour développer des correctifs sur GitHub. Le test consistait notamment pour le bot à « générer automatiquement des patchs qui corrigent les échecs de génération (échecs de builds) puis à les montrer aux développeurs humains, pour enfin voir si ces développeurs les accepteraient comme des contributions valables à la base de code », déclare Monperrus.
Les chercheurs ont pour cela créé un utilisateur GitHub appelé Luc Esape, qui semblait être un ingénieur logiciel travaillant dans leur laboratoire. « Luc a une photo de profil et ressemble à un développeur junior, désireux de faire des contributions open source sur GitHub », disent-ils. Mais Luc est en réalité Repairnator déguisé en développeur humain. Ce camouflage était nécessaire parce que les modérateurs humains ont tendance à évaluer le travail des bots et des humains différemment. Or les chercheurs voulaient tester l'hypothèse selon laquelle le bot était comparable aux humains dans ce domaine.
Le test s'est déroulé en deux étapes. Lors de la première étape, de février à décembre 2017, les chercheurs ont positionné Repairnator sur une liste fixe de 14 188 projets GitHub à la recherche d’erreurs. Et ils ont constaté que leur prototype pouvait effectuer environ 30 tentatives de corrections de bogues par jour. En chiffres, Repairnator a analysé plus de 11 500 builds avec échecs. Parmi celles-ci, il a été capable de reproduire l'erreur dans plus de 3000 cas et il a ensuite développé un patch dans 15 cas. Cependant, aucun de ces correctifs n'a été accepté dans les builds, car Repairnator prenait trop de temps pour les développer ou écrivait des correctifs qui étaient peu performants pour être acceptés.
Mais dans la deuxième étape du test, qui s'est déroulée de janvier à juin 2018, Repairnator a connu plus de succès. Après des améliorations qui lui ont été apportées, le 12 janvier, Repairnator a écrit un correctif qu'un modérateur humain a accepté dans une build. « En d'autres termes, Repairnator pouvait rivaliser avec les humains pour la première fois », estiment les chercheurs. Au cours des mois qui ont suivi, le programmeur automatisé a pu produire quatre autres correctifs qui ont été acceptés dans des bases de code de projets open source. Les chercheurs se sont réjouis de ce travail impressionnant qui, selon eux, est une étape importante dans la recherche en génie logiciel sur la réparation automatique de programmes.
Source : MIT Technology Review
Et vous ?
Qu’en pensez-vous ?
Quelles sont les limites aujourd'hui de la correction automatique de bogues ?
Pensez-vous que le rêve de ces chercheurs pourrait devenir une réalité de sitôt ? Pourquoi ?
Considérez-vous ce travail comme un pas de plus vers une programmation automatisée de bout en bout ?
Voir aussi :
Qui doit bénéficier des fruits de l'automatisation des tâches sur le lieu du service ? Les programmeurs ? Leurs employeurs ? Les deux ?
Les efforts de Tech pour enseigner le codage aux enfants ne sont-ils qu'en faveur de leur réussite ? Ils viseraient à réduire les salaires
Une étude révèle que l'automatisation pourrait détruire plus de 2 millions d'emplois en France, mais va-t-elle en créer beaucoup plus ?
Les salariés français plébiscitent l'automatisation des tâches de routine, car 55 % d'entre eux y consacraient au moins 40 % de leur temps en 2017
Une banque suédoise ayant opté pour l'automatisation poussée réalise des bénéfices record, le secteur bancaire prochain eldorado de l'automatisation ?
Repairnator, un bot capable de rivaliser avec les développeurs pour trouver et corriger des bogues,
Un pas vers l'automatisation du codage ?
Repairnator, un bot capable de rivaliser avec les développeurs pour trouver et corriger des bogues,
Un pas vers l'automatisation du codage ?
Le , par Michael Guilloux
Une erreur dans cette actualité ? Signalez-nous-la !