Martin Monperrus y sus colegas del Real Instituto de Tecnología KTH de Estocolmo construyeron Repairnator, un bot que genera parches para compilaciones de software fallidas, y para probar si podía competir con humanos, lo disfrazaron. Crearon un usuario de GitHub llamado Luc Esape, «un ingeniero de software» del laboratorio, que «parece un desarrollador junior, deseoso de hacer contribuciones de código abierto». Luc era el bot. El camuflaje era necesario para probar la hipótesis de la competitividad humana, porque los moderadores humanos juzgan de manera diferente el trabajo de un bot y el de un humano. A las personas involucradas se les informó después.

La primera ejecución, de febrero a diciembre de 2017, puso a Repairnator en una lista fija de 14.188 proyectos de GitHub. Realizó unos 30 intentos de reparación al día, analizó más de 11.500 compilaciones con fallos, reprodujo más de 3.000 de ellos y desarrolló parches en solo 15 casos. Ninguno fue aceptado: el bot era demasiado lento o los parches de demasiado baja calidad.

La segunda ejecución puso a Luc a trabajar en el servicio de integración continua Travis de enero a junio de 2018, y el 12 de enero un moderador humano aceptó un parche de Repairnator en una compilación; en otras palabras, Repairnator fue competitivo con humanos por primera vez. A lo largo de seis meses produjo cinco parches aceptados.

El experimento sacó a la luz un obstáculo de gobernanza: en mayo de 2018 el proyecto eclipse/ditto rechazó una solicitud de incorporación de cambios (pull request) de Repairnator porque su «autor» no había firmado el Acuerdo de Licencia de Colaborador de la Fundación Eclipse, que un bot no puede firmar físicamente. ¿Quién es dueño de la propiedad intelectual y la responsabilidad de una contribución de un bot?, se preguntó el equipo: ¿el operador, el implementador o el diseñador del algoritmo?

Para probar si un bot compite con humanos, hay que ocultar cuál es el bot: los moderadores que saben que un parche es hecho por una máquina lo juzgan con estándares diferentes.

El engaño es el diseño experimental: la aceptación por parte de moderadores que no sabían que estaban revisando a un bot es la única medida honesta de la competitividad humana.

Los resultados son concretos, no aspiracionales: 14.188 proyectos vigilados, 11.500 compilaciones analizadas, 3.000 fallos reproducidos, cinco parches fusionados en bases de código reales.

La primera ejecución honesta (0 de 15 aceptados) hace que los cinco aceptados de la segunda ejecución sean una mejora medible en lugar de una demostración.

El rechazo del CLA de Eclipse anticipó años antes los debates actuales sobre contribuciones de IA: un bot no puede firmar una licencia, así que ¿quién responde por su código?

La competitividad humana es una propiedad de prueba a ciegas, no una puntuación de referencia: mide a un bot de la misma manera en que realmente se juzga el trabajo, por revisores que no saben qué lo produjo.

El equipo informó del engaño a las personas afectadas y publicó los resultados, calificando a Repairnator como un hito para la competitividad humana en la reparación automática de programas y una prefiguración de la colaboración entre bots y humanos en el software. La fuente no informa de más novedades.

CONSULTA LAS PRUEBAS

Las fuentes

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