Un bot déguisé en programmeur corrige les erreurs de code

Le programmeur de Repairnator automatisé a fait des correctifs assez bons pour tromper les gens


«Rien ne peut être déclaré définitivement dans ce monde, sauf l'inévitabilité de la mort et des impôts», écrivait Benjamin Franklin en 1789. S'il vivait aujourd'hui, il pourrait encore ajouter des erreurs à la liste des programmes.

Les programmes informatiques modernes sont si complexes que des erreurs y apparaissent inévitablement pendant le développement. Par conséquent, leurs correctifs de recherche et d'écriture qui les corrigent font partie intégrante de tout calendrier de développement logiciel. Il y a même des entreprises qui proposent aux développeurs un tel service - par exemple, Travis.

Mais trouver des bogues et écrire des correctifs est une longue entreprise, qui nécessite des ressources importantes. Divers chercheurs ont développé des robots pour automatiser ce processus, mais ils fonctionnent généralement lentement ou produisent un code de mauvaise qualité qui ne passe pas l'inspection. Par conséquent, les développeurs aimeraient vraiment compter sur un bot rapide et de haute qualité qui recherche les erreurs et leur écrit des correctifs.



Aujourd'hui, leurs rêves se réalisent grâce au travail de Martin Monperas et de ses amis du Royal Institute of Technology de Stockholm, en Suède. Ils ont finalement créé un bot capable de rivaliser avec les gens pour trouver des bugs et écrire des correctifs de qualité.

Les gars ont nommé le bot Repairnator et l'ont testé avec succès, leur permettant de rivaliser avec des programmeurs humains à la recherche de correctifs. "Il s'agit d'une étape importante sur la voie de la concurrence avec les gens dans la recherche de correction automatique de programme", disent-ils.

Les informaticiens sont depuis longtemps conscients de la possibilité d'automatiser le processus d'écriture des correctifs. Il n'est pas clair si les robots peuvent faire ce travail aussi rapidement et efficacement que les humains.

Par conséquent, Monperas et la société ont décidé de tester leur bot en le déguisant en développeur humain et en lui permettant de rivaliser avec les gens dans le développement de correctifs pour GitHub, un site de programmation avec contrôle de version. "L'idée clé de Repairnator est de créer automatiquement des correctifs qui corrigent les bogues dans les assemblys, de les montrer aux personnes qui sont des développeurs et de voir si les développeurs accepteront ces correctifs comme une inclusion digne dans le code", ont-ils déclaré.

L'équipe a enregistré Luc Esape en tant que programmeur de leur laboratoire sur GitHub. "Luke a une photo de profil, il ressemble à un développeur junior, désireux de contribuer au développement de l'open source sur GitHub", disent-ils.

En fait, Luke est un réparateur infiltré. La tromperie était nécessaire, car les modérateurs ont tendance à évaluer le travail des robots et des personnes de différentes manières. "Le secret était nécessaire pour tester l'hypothèse scientifique de la capacité concurrentielle des gens", a déclaré Monperas avec l'entreprise, qui avait déjà informé tous les intéressés de ce qui se passait.

L'équipe a fait deux approches pour vérifier Repairnator. Le premier test s'est déroulé de février à décembre 2017, lorsqu'elle a lancé Repairnator sur une liste permanente de 14188 projets avec GitHub à la recherche de bugs. "Nous avons constaté que notre prototype est capable d'effectuer environ 30 tentatives de corrections par jour", ont-ils déclaré.

Pendant ce temps, Repairnator a analysé plus de 11 500 projets avec des erreurs. Il a pu reproduire des erreurs dans plus de 3 000 cas. Dans 15 cas, il a pu développer un patch.

Mais aucun de ces correctifs n'a été accepté dans l'assemblage, car Repairnator les a rendus trop longs ou a écrit des correctifs d'une qualité inacceptable.

La deuxième approche a été plus efficace. L'équipe a envoyé Luke travailler sur le service d'intégration continue de Travis de janvier à juin 2018. Bien que l'équipe n'ait pas précisé ce qu'ils ont exactement changé dans Repairnator, le 12 janvier, il a écrit le premier patch que le modérateur a accepté dans l'assemblage. «En d'autres termes, Repairnator a d'abord pu atteindre le niveau de l'homme», disent-ils. Au cours des six mois suivants, Repairnator a publié cinq correctifs acceptés par les modérateurs.

Une réalisation impressionnante qui ouvre la voie à une nouvelle génération de méthodes de développement logiciel. Cela soulève également des questions intéressantes. Les développeurs prêtent attention au correctif que Repairnator a développé le 12 mai pour le projet eclipse / ditto.

Après cela, l'équipe a reçu une lettre de l'un des développeurs du projet: «Nous acceptons les demandes de pool des utilisateurs qui ont signé l'accord de licence de contributeur Eclipse Foundation.»

Cela pose un problème désagréable car le bot ne peut pas signer l'accord de licence. "À qui appartient la propriété intellectuelle et qui est responsable de la contribution du bot: opérateur de bot, auteur du bot, concepteur de l'algorithme de correction?" - l'équipe de développeurs pose une question.

Ces types de problèmes doivent être résolus avant que les gens et les robots puissent continuer à travailler ensemble. Mais Monperas et son équipe sont optimistes quant à l'avenir. «Nous pensons que Repairnator est le prototype du développement logiciel futur dans lequel les robots et les personnes collaborent de manière transparente et deviennent des partenaires pour trouver des failles logicielles», disent-ils.

Franklin, le célèbre inventeur lui-même, serait sûrement impressionné par ce qui se passait.

Source: https://habr.com/ru/post/fr427775/


All Articles