
un pas vers l'automatisation du codage ?
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 ?




Voir aussi :





Vous avez lu gratuitement 11 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.