Automatizando tests en Go con EvoMaster
- Autores
- Basso, Juan Cruz
- Año de publicación
- 2024
- Idioma
- español castellano
- Tipo de recurso
- tesis de grado
- Estado
- versión publicada
- Colaborador/a o director/a de tesis
- Galeotti, Juan Pablo
- Descripción
- 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.
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.
Fil: Basso, Juan Cruz. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina. - Materia
-
APIS WEB
ALGORITMOS GENETICOS
METAHEURISTICAS
GO
REST
TESTING
WEB APIS
GENETIC ALGORITHMS
METAHEURISTICS - Nivel de accesibilidad
- acceso abierto
- Condiciones de uso
- https://creativecommons.org/licenses/by-nc-sa/2.5/ar
- Repositorio
.jpg)
- Institución
- Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
- OAI Identificador
- seminario:seminario_nCOM000775_Basso
Ver los metadatos del registro completo
| id |
BDUBAFCEN_fcdf1a47beb3666cd9ac45c50307982c |
|---|---|
| oai_identifier_str |
seminario:seminario_nCOM000775_Basso |
| network_acronym_str |
BDUBAFCEN |
| repository_id_str |
1896 |
| network_name_str |
Biblioteca Digital (UBA-FCEN) |
| spelling |
Automatizando tests en Go con EvoMasterBasso, Juan CruzAPIS WEBALGORITMOS GENETICOSMETAHEURISTICASGORESTTESTINGWEB APISGENETIC ALGORITHMSMETAHEURISTICSEn 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.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.Fil: Basso, Juan Cruz. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.Universidad de Buenos Aires. Facultad de Ciencias Exactas y NaturalesGaleotti, Juan Pablo2024-09-11info:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/publishedVersionhttp://purl.org/coar/resource_type/c_7a1finfo:ar-repo/semantics/tesisDeGradoapplication/pdfhttps://hdl.handle.net/20.500.12110/seminario_nCOM000775_Bassospainfo:eu-repo/semantics/openAccesshttps://creativecommons.org/licenses/by-nc-sa/2.5/arreponame:Biblioteca Digital (UBA-FCEN)instname:Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturalesinstacron:UBA-FCEN2025-11-06T09:40:42Zseminario:seminario_nCOM000775_BassoInstitucionalhttps://digital.bl.fcen.uba.ar/Universidad públicaNo correspondehttps://digital.bl.fcen.uba.ar/cgi-bin/oaiserver.cgiana@bl.fcen.uba.arArgentinaNo correspondeNo correspondeNo correspondeopendoar:18962025-11-06 09:40:43.341Biblioteca Digital (UBA-FCEN) - Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturalesfalse |
| dc.title.none.fl_str_mv |
Automatizando tests en Go con EvoMaster |
| title |
Automatizando tests en Go con EvoMaster |
| spellingShingle |
Automatizando tests en Go con EvoMaster Basso, Juan Cruz APIS WEB ALGORITMOS GENETICOS METAHEURISTICAS GO REST TESTING WEB APIS GENETIC ALGORITHMS METAHEURISTICS |
| title_short |
Automatizando tests en Go con EvoMaster |
| title_full |
Automatizando tests en Go con EvoMaster |
| title_fullStr |
Automatizando tests en Go con EvoMaster |
| title_full_unstemmed |
Automatizando tests en Go con EvoMaster |
| title_sort |
Automatizando tests en Go con EvoMaster |
| dc.creator.none.fl_str_mv |
Basso, Juan Cruz |
| author |
Basso, Juan Cruz |
| author_facet |
Basso, Juan Cruz |
| author_role |
author |
| dc.contributor.none.fl_str_mv |
Galeotti, Juan Pablo |
| dc.subject.none.fl_str_mv |
APIS WEB ALGORITMOS GENETICOS METAHEURISTICAS GO REST TESTING WEB APIS GENETIC ALGORITHMS METAHEURISTICS |
| topic |
APIS WEB ALGORITMOS GENETICOS METAHEURISTICAS GO REST TESTING WEB APIS GENETIC ALGORITHMS METAHEURISTICS |
| dc.description.none.fl_txt_mv |
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. 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. Fil: Basso, Juan Cruz. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina. |
| description |
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. |
| publishDate |
2024 |
| dc.date.none.fl_str_mv |
2024-09-11 |
| dc.type.none.fl_str_mv |
info:eu-repo/semantics/bachelorThesis info:eu-repo/semantics/publishedVersion http://purl.org/coar/resource_type/c_7a1f info:ar-repo/semantics/tesisDeGrado |
| format |
bachelorThesis |
| status_str |
publishedVersion |
| dc.identifier.none.fl_str_mv |
https://hdl.handle.net/20.500.12110/seminario_nCOM000775_Basso |
| url |
https://hdl.handle.net/20.500.12110/seminario_nCOM000775_Basso |
| dc.language.none.fl_str_mv |
spa |
| language |
spa |
| dc.rights.none.fl_str_mv |
info:eu-repo/semantics/openAccess https://creativecommons.org/licenses/by-nc-sa/2.5/ar |
| eu_rights_str_mv |
openAccess |
| rights_invalid_str_mv |
https://creativecommons.org/licenses/by-nc-sa/2.5/ar |
| dc.format.none.fl_str_mv |
application/pdf |
| dc.publisher.none.fl_str_mv |
Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales |
| publisher.none.fl_str_mv |
Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales |
| dc.source.none.fl_str_mv |
reponame:Biblioteca Digital (UBA-FCEN) instname:Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales instacron:UBA-FCEN |
| reponame_str |
Biblioteca Digital (UBA-FCEN) |
| collection |
Biblioteca Digital (UBA-FCEN) |
| instname_str |
Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales |
| instacron_str |
UBA-FCEN |
| institution |
UBA-FCEN |
| repository.name.fl_str_mv |
Biblioteca Digital (UBA-FCEN) - Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales |
| repository.mail.fl_str_mv |
ana@bl.fcen.uba.ar |
| _version_ |
1848046115503472640 |
| score |
13.087074 |