Muy buenos días y bienvenidos a inteligencia artificial, el podcast donde hablamos del presente y el futuro de la inteligencia artificial, analizamos casos donde ya se están usando estas tecnologías y vemos como podemos aplicarlo en el día a día de nuestros trabajos, proyectos y empresas.
Yo soy Pocho Costa, ingeniero en sistemas, programador y amante de la tecnologia, y me podes encontrar en pochocosta.com donde ahí también encontraras las notas del programa y otros medios para ponerte en contacto conmigo.
EMPEZAMOS!
Hoy quiero hablarles de una historia real alrededor de un proyecto. Se trata de un bot que busca errores en software de código abierto que estén alojados en Github. Para los que no estén relacionados con el mundo de la programación o el desarrollo de software puede sonarles a chino básico, pero para simplificar y que todos entiendan les cuento que cuando digo software estamos hablando de archivos de texto con código escrito en un lenguaje de programación que sirve para armar programas de computadora, y esos archivos están abiertos al mundo a través de Github una plataforma que presta sus servidores para guardar estos archivos. Esta es una explicación muy simplificada pero creo que puede ser entendible para todos.
Un Bot de IA busca y corrige errores de Software
Bueno, resulta que un grupo de investigadores de distintas universidades crearon un bot que se pusiera a revisar los aportes que subían las personas a distintos repositorios de código abierto en Github. Estos repositorios debían alojar código escrito en el lenguaje de programación Java y también debían cumplir con algunas otras especificaciones técnicas que no las voy a mencionar ahora, porque no son relevantes para lo que quiero explicar, pero dejo el enlace en las notas para los que estén interesados en saber más.
La detección de errores la hicieron usando Travis, una plataforma de integración continua que se encarga de compilar y ejecutar pruebas unitarias en los bloques de código.
Y el bot, fue entrenado para corregir errores mostrandole ejemplos de cómo humanos habían corregido los errores en el pasado.
Ahora, para lo que la tesis de estos investigadores quería probar, no solo alcanzaba con que el bot encontrara los errores y propusiera un parche para corregirlos, sino que además debía hacerlo de manera rápida, para proponer la solución antes de que una persona lo haga, y la corrección debía ser lo suficientemente buena como para que el creador del proyecto la acepte y la integre en el código del programa real.
La hipótesis de los investigadores
A todo esto, se agregaba un tema más a considerar: Los humanos tenemos un sesgo que nos hace pensar que los bots no son lo suficientemente buenos escribiendo código, entonces como Github además de funcionar como repositorio de código también funciona como una red social, lo que hicieron fue crear un perfil falso al que le pusieron de nombre Luc Esape, lo presentaron como un programador junior del laboratorio de investigación de la universidad, y le pusieron una foto como si fuera un chico joven, como para mostrarlo con ansias de contribuir en un proyecto de código abierto.
Con todo esto empezaron a hacer funcionar el experimento, el bot estaba monitoreando los cambios en los repositorios, cuando encontraba un error intentaba crear un parche para corregirlo. Si lo lograba se lo pasaba a un ingeniero del equipo de investigadores para que lo revise y si lo veía correcto y el bug aun se encontraba vigente entonces enviaba la propuesta al desarrollador original para que éste lo revise y lo integre al código del programa.
Por lo que se sabe, después de un par de ciclos de experimentos donde fueron mejorando el bot, empezaron a proponer parches que fueron aceptados por los desarrolladores originales. Esto debió ser muy gratificante para los investigadores que desarrollaron el bot cuando se encontraban con respuestas de los desarrolladores originales de los programas que les decían por ejemplo “ Ey gracias por el parche! pensé que había solucionado ese error pero se ve que se me pasó” o cosas por el estilo.
Repairnator, el bot programador
Y bien, este bot se llama Repairnator y la historia está relatada con lujo de detalles por Martin Monperrus, el líder del proyecto, les dejo el link en las notas del programa. Y este no es el único bot de inteligencia artificial encargado de este tipo de tareas, Facebook por ejemplo, tiene el suyo propio que se llama Sapfix para los que tengan ganas de saber mas les dejo el link a un post en el blog de desarrolladores de Facebook donde cuentan cómo trabaja y cómo ahorra tiempo a los desarrolladores para probar y corregir errores.
Como vemos en estos casos, la inteligencia artificial es un gran aliado que nos ayuda a que los humanos hagamos mejor nuestro trabajo y solucionemos problemas en tiempos mucho menores.
Por esto me pareció super interesante y quise compartirlo, ademas les dejo el enlace al repositorio para que puedan ver el código!
Hasta aquí el programa de hoy, gracias a todos por estar ahí. Y si quieres que enterarse cada vez que salga un nuevo episodio de este podcast suscribiste en Itunes, iVoox, Google Podcast o Spotify. Les agradezco enormemente las reseñas de 5 estrellas en iTunes y los me gusta y comentarios en iVoox, o los corazones en spotify que nos ayudan a que nos conozca más gente. Y si te gustó compartirlo en redes sociales.
Nos escuchamos en el próximo episodio donde seguiremos hablando de este hermoso mundo de la inteligencia artificial.
Comentarios
3 respuestas a «Bot para corregir bugs en programas»
Excelente podscast!!
Excelente podscast!!
Muchas gracias Andres!