Martin Monperrus e colegas do Instituto Real de Tecnologia KTH, em Estocolmo, criaram o Repairnator, um bot que gera patches para builds de software que falham — e, para testar se ele poderia competir com humanos, o disfarçaram. Criaram um usuário do GitHub chamado Luc Esape, “um engenheiro de software” do laboratório, que “parece um desenvolvedor júnior, ansioso por fazer contribuições de código aberto”. Luc era o bot. O disfarce era necessário para testar a hipótese da competitividade com humanos, porque moderadores humanos julgam o trabalho de bots e de humanos de forma diferente. As pessoas envolvidas foram informadas depois.

A primeira rodada, de fevereiro a dezembro de 2017, colocou o Repairnator em uma lista fixa de 14.188 projetos do GitHub. Ele realizou cerca de 30 tentativas de reparo por dia, analisou mais de 11.500 builds com falhas, reproduziu mais de 3.000 delas — e desenvolveu patches em apenas 15 casos. Nenhum foi aceito: o bot era lento demais ou os patches tinham qualidade baixa demais.

A segunda rodada colocou Luc para trabalhar no serviço de integração contínua Travis, de janeiro a junho de 2018, e, em 12 de janeiro, um moderador humano aceitou um patch do Repairnator em um build — em outras palavras, o Repairnator foi competitivo com humanos pela primeira vez. Ao longo de seis meses, ele produziu cinco patches aceitos.

O experimento revelou um obstáculo de governança: em maio de 2018, o projeto eclipse/ditto rejeitou um pull request do Repairnator porque seu “autor” não havia assinado o Acordo de Licença de Contribuidor da Eclipse Foundation — que um bot não pode assinar fisicamente. Quem detém a propriedade intelectual e a responsabilidade de uma contribuição de bot, perguntou a equipe — o operador, o implementador ou o projetista do algoritmo?

Para testar se um bot compete com humanos, é preciso esconder qual deles é o bot: moderadores que sabem que um patch é feito por máquina o julgam por padrões diferentes.

O disfarce é o desenho experimental: a aceitação por moderadores que não sabiam estar revisando um bot é a única medida honesta de competitividade com humanos.

Os resultados são concretos, não aspiracionais — 14.188 projetos observados, 11.500 builds analisados, 3.000 falhas reproduzidas, cinco patches integrados em bases de código reais.

A primeira rodada honesta (0 de 15 aceitos) torna as cinco aceitações da segunda rodada uma melhoria mensurável, e não uma demonstração.

A rejeição pelo CLA da Eclipse antecipou em anos os debates atuais sobre contribuições de IA: um bot não pode assinar uma licença, então quem responde pelo seu código?

A competitividade com humanos é uma propriedade de teste cego, não uma pontuação de benchmark: meça um bot da mesma forma como o trabalho é de fato julgado — por revisores que não sabem o que o produziu.

A equipe informou as pessoas afetadas sobre o artifício e publicou os resultados, chamando o Repairnator de marco para a competitividade com humanos no reparo automático de programas e de prefiguração da colaboração entre bots e humanos no software. A fonte não relata outros desdobramentos.

CONFIRA AS EVIDÊNCIAS

As fontes

  1. A bot disguised as a human software developer fixes bugs MIT Technology Review · technologyreview.com ·