Registro:
Documento: | Tesis de Grado |
Título: | Automatizando tests en Go con EvoMaster |
Autor: | Basso, Juan Cruz |
Editor: | Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales |
Publicación en la web: | 2025-06-12 |
Fecha de defensa: | 2024-09-11 |
Fecha en portada: | 2024 |
Grado Obtenido: | Grado |
Título Obtenido: | Licenciado en Ciencias de la Computación |
Departamento Docente: | Departamento de Computación |
Director: | Galeotti, Juan Pablo |
Jurado: | Garbervetsky, Diego David; Melgratti, Hernán Claudio |
Idioma: | Español |
Palabras clave: | APIS WEB; ALGORITMOS GENETICOS; METAHEURISTICAS; GOREST; TESTING; WEB APIS; GENETIC ALGORITHMS; METAHEURISTICS |
Formato: | PDF |
Handle: |
http://hdl.handle.net/20.500.12110/seminario_nCOM000775_Basso |
PDF: | https://bibliotecadigital.exactas.uba.ar/download/seminario/seminario_nCOM000775_Basso.pdf |
Registro: | https://bibliotecadigital.exactas.uba.ar/collection/seminario/document/seminario_nCOM000775_Basso |
Ubicación: | Dep.COM 000775 |
Derechos de Acceso: | Esta obra puede ser leída, grabada y utilizada con fines de estudio, investigación y docencia. Es necesario el reconocimiento de autoría mediante la cita correspondiente. Basso, Juan Cruz. (2024). Automatizando tests en Go con EvoMaster. (Tesis de Grado. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales.). Recuperado de http://hdl.handle.net/20.500.12110/seminario_nCOM000775_Basso |
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 ̃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.
Abstract:
In this work, we introduce a new Driver for EvoMaster, an open-source tool for automatic test generation powered by an evolutionary algorithm, specifically designed for REST web applications implemented in the Go programming language. This tool has two main components: a Core, responsible for executing the search algorithm known as MIO, which applies heuristics for test optimization by maximizing line and branch coverage in the application code under test; and a Driver or controller, which feeds the Core with the necessary metrics for the evolution of the algorithm. The design and implementation of an exclusive controller for Go is described, which handles communication with the Core under an established protocol and code instrumentation through the application of transformations on the AST (Abstract Syntax Tree) of the original source code and its injection into the final binary during compilation. Additionally, as part of this work, the core is exten ded to support test writing in Go, and a Go package is provided for the distribution and testing of the new controller. Finally, line coverage metrics obtained from automatically generated tests for different test cases, both artificial and third-party, publicly available on GitHub, are reported and analyzed.
Citación:
---------- APA ----------
Basso, Juan Cruz. (2024). Automatizando tests en Go con EvoMaster. (Tesis de Grado. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales.). Recuperado de https://hdl.handle.net/20.500.12110/seminario_nCOM000775_Basso
---------- CHICAGO ----------
Basso, Juan Cruz. "Automatizando tests en Go con EvoMaster". Tesis de Grado, Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales, 2024.https://hdl.handle.net/20.500.12110/seminario_nCOM000775_Basso
Estadísticas:
Descargas mensuales
Total de descargas desde :
https://bibliotecadigital.exactas.uba.ar/download/seminario/seminario_nCOM000775_Basso.pdf
Distrubución geográfica