
Defensa Tesis Licenciatura Juan Cruz Basso
11 septiembre, 2024 @ 4:00 pm - 5:00 pm
Título: Automatizando tests en Go con EvoMaster
Director: Juan P. Galeotti
Jurados: Diego Garbervetsky, Hernán Melgratti
Resumen:
En este trabajo se introduce un nuevo Driver de EvoMaster, una herramienta open source para generación automática de testeos impulsada por un algoritmo evolutivo, para aplicaciones web REST implementadas en el lenguaje de programación Go. Esta herramienta cuenta con dos componentes principales: un Core, encargado de llevar a cabo el algoritmo de búsqueda denominado MIO que aplica heurísticas para la optimización de testeos maximizando
la cobertura de líneas y branches sobre el código de la aplicación a testear; y un Driver o controlador, encargado de alimentar al Core con las métricas necesarias para la evolución del algoritmo. Se describe el diseño e implementación de un controlador exclusivo para Go encargado de la comunicación con el Core bajo un protocolo ya establecido y la instrumentación de código mediante la aplicación de transformaciones sobre el árbol AST del código fuente original y la inyección del mismo al binario final en compilación.
Además, como parte de este trabajo se extiende el core para soportar la escritura de los tests en lenguaje Go y se provee un paquete de Go para la distribución y testeo del nuevo controlador. Por último, se reportan y analizan métricas de cobertura de líneas obtenidas a partir de tests generados automáticamente para casos de prueba diferentes, tanto artificiales y como originales de terceros, disponibles públicamente en GitHub.