Automatizando tests en Go con EvoMaster - Basso, Juan Cruz (2024)
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 ̃no 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.