El programador automatizado Repairnator hizo parches lo suficientemente buenos como para engañar a las personas
"Nada se puede afirmar definitivamente en este mundo, excepto la inevitabilidad de la muerte y los impuestos", escribió Benjamin Franklin en 1789. Si viviera hoy, aún podría agregar errores a la lista de programas.
Los programas de computadora modernos son tan complejos que inevitablemente aparecen errores durante el desarrollo. Por lo tanto, sus parches de búsqueda y escritura que los arreglan son una parte normal de cualquier programa de desarrollo de software. Incluso hay empresas que ofrecen a los desarrolladores ese servicio, por ejemplo, Travis.
Pero encontrar errores y escribir parches es un negocio largo, que requiere recursos significativos. Varios investigadores han desarrollado bots para automatizar este proceso, pero generalmente trabajan lentamente o producen código de baja calidad que no pasa la inspección. Por lo tanto, a los desarrolladores les gustaría confiar en un bot rápido y de alta calidad que busque errores y les escriba parches.

Hoy, sus sueños se hacen realidad gracias al
trabajo de Martin Monperas y sus amigos del Real Instituto de Tecnología de Estocolmo, Suecia. Finalmente hicieron un bot capaz de competir con las personas para encontrar errores y escribir parches de calidad.
Los chicos llamaron al robot Repairnator y lo probaron con éxito, lo que les permitió competir con programadores humanos en busca de soluciones. "Este es un hito importante en el camino para competir con las personas en la investigación de la corrección automática de programas", dicen.
Los informáticos han sido conscientes de la posibilidad de automatizar el proceso de escritura de parches. No está claro si los bots pueden hacer este trabajo tan rápido y eficientemente como los humanos.
Por lo tanto, Monperas y la compañía decidieron probar su bot disfrazándolo de desarrollador humano y permitiéndole competir con las personas en el desarrollo de parches para GitHub, un sitio para programación con control de versiones. "La idea clave de Repairnator es crear automáticamente parches que corrijan errores en los ensamblados, mostrarlos a las personas que son desarrolladores y ver si los desarrolladores aceptarán estos parches como una inclusión digna en el código", dijeron.
El equipo registró a Luc Esape como programador de su laboratorio en GitHub. "Luke tiene una foto de perfil, parece un desarrollador junior, ansioso por contribuir al desarrollo de código abierto en GitHub", dicen.
De hecho, Luke es un reparador encubierto. Se necesitaba engaño, porque los moderadores tienden a evaluar el trabajo de los bots y las personas de diferentes maneras. "El secreto era necesario para probar la hipótesis científica de la capacidad competitiva de las personas", dijo Monperas con la compañía, que ya había informado a todos los interesados sobre lo que estaba sucediendo.
El equipo hizo dos enfoques para verificar Repairnator. La primera prueba fue de febrero a diciembre de 2017, cuando lanzó Repairnator en una lista permanente de 14.188 proyectos con GitHub buscando errores. "Descubrimos que nuestro prototipo es capaz de hacer alrededor de 30 intentos de corrección por día", dijeron.
Durante este tiempo, Repairnator analizó más de 11,500 proyectos con errores. Pudo reproducir errores en más de 3,000 casos. En 15 casos, pudo desarrollar un parche.
Pero ninguno de estos parches fue aceptado en la asamblea, porque Repairnator los hizo demasiado largos o escribió parches de calidad inaceptable.
El segundo enfoque fue más exitoso. El equipo envió a Luke a trabajar en el servicio de integración continua de Travis de enero a junio de 2018. Aunque el equipo no especificó exactamente qué cambiaron en Repairnator, el 12 de enero escribió el primer parche que el moderador aceptó en la asamblea. "En otras palabras, Repairnator fue capaz de alcanzar el nivel del hombre", dicen. Durante los próximos seis meses, Repairnator emitió cinco parches aceptados por los moderadores.
Un logro impresionante que allana el camino para una nueva generación de métodos de desarrollo de software. También plantea preguntas interesantes. Los desarrolladores están prestando atención al parche que Repairnator desarrolló el 12 de mayo para el proyecto eclipse / ditto.
Después de eso, el equipo recibió una carta de uno de los desarrolladores del proyecto: "Aceptamos solicitudes de grupo de usuarios que han firmado el acuerdo de licencia de Eclipse Foundation Colaborador".
Esto plantea un problema desagradable porque el bot no puede firmar el acuerdo de licencia. "¿Quién posee la propiedad intelectual y quién es responsable de la contribución del bot: operador del bot, autor del bot, diseñador del algoritmo de reparación?" - El equipo de desarrolladores hace una pregunta.
Este tipo de problemas deben resolverse antes de que las personas y los bots puedan trabajar juntos aún más. Pero Monperas y su equipo son optimistas sobre el futuro. "Creemos que Repairnator es el prototipo del desarrollo de software futuro en el que los bots y las personas colaboran sin problemas y se convierten en socios para encontrar fallas de software", dicen.
Franklin, el famoso inventor, seguramente quedaría impresionado con lo que estaba sucediendo.