Method for the semi-automatic generation of integration test cases in the process of architectural evolution from monolith to microservices, using model-driven software engineering
| dc.contributor.advisor | Vergara Vargas, Jeisson Andrés | |
| dc.contributor.advisor | Oliveira Neves, Vânia | |
| dc.contributor.author | Ocampo Gamboa, Luis Alejandro | |
| dc.contributor.cvlac | Ocampo Gamboa, Luis Alejandro [0002152619] | |
| dc.contributor.orcid | Ocampo Gamboa, Luis Alejandro [0009-0000-2733-9029] | |
| dc.contributor.researchgroup | Colectivo de Investigación en Ingeniería de Software Colswe | |
| dc.date.accessioned | 2026-02-12T12:55:25Z | |
| dc.date.available | 2026-02-12T12:55:25Z | |
| dc.date.issued | 2025 | |
| dc.description | Ilustraciones, diagramas, gráficos | spa |
| dc.description.abstract | In recent years, the evolution from monolithic architectures to microservice-based systems has become a common strategy to improve scalability, flexibility, and maintainability. However, this transition introduces significant challenges for software quality assurance, particularly regarding the validation of interactions among independently deployed services. Manual creation and maintenance of integration tests in distributed environments are error-prone and inefficient, and existing approaches to architectural evolution typically emphasize functional and non-functional requirements without explicitly incorporating integration testing into the process. This master's final work proposes a model-driven method to support the architectural evolution from monolithic to microservice systems through the iterative and semi-automatic generation of integration test cases. The method relies on architectural design artifacts, specifically a component-and-connector structure of the evolving architecture and the network configuration of deployed microservices, to derive executable integration tests. A sequence of iterative steps aligns the evolution process with test generation and execution, ensuring that integration validation is embedded in each stage of architectural transformation. To implement the method, a supporting tool was developed that implements the defined Model-to-Text transformation rules. This tool enables the generation and execution of integration test cases in parallel with the deployment of microservices, facilitating early detection of integration errors and reducing risks during architectural evolution. The proposed approach contributes to modern software engineering by strengthening the alignment between architectural design, system evolution, and software testing, ultimately promoting a more robust transition toward modular and scalable architectures. | eng |
| dc.description.abstract | En los últimos años, la evolución de las arquitecturas monolíticas a los sistemas basados en microservicios se ha convertido en una estrategia común para mejorar la escalabilidad, la flexibilidad y la facilidad de mantenimiento. Sin embargo, esta transición plantea importantes retos para el control de calidad del software, especialmente en lo que respecta a la validación de las interacciones entre servicios implementados de forma independiente. La creación y el mantenimiento manuales de pruebas de integración en entornos distribuidos son propensos a errores e ineficientes, y los enfoques existentes para la evolución arquitectónica suelen hacer hincapié en los requisitos funcionales y no funcionales sin incorporar explícitamente las pruebas de integración en el proceso. Este trabajo final de maestría propone un método dirigido por modelos para soportar la evolución arquitectónica de sistemas monolíticos a sistemas de microservicios mediante la generación iterativa y semiautomática de casos de prueba de integración. El método se basa en artefactos de diseño arquitectónico, concretamente en la estructura de componentes y conectores de la arquitectura en evolución y la configuración de red de los microservicios implementados, para derivar pruebas de integración ejecutables. Una secuencia de pasos iterativos alinea el proceso de evolución con la generación y ejecución de pruebas, lo que garantiza que la validación de la integración se incorpore en cada etapa de la transformación arquitectónica. Para poner en práctica el método, se desarrolló una herramienta de apoyo que implementa las reglas de transformación de modelo a texto definidas. Esta herramienta permite generar y ejecutar casos de prueba de integración en paralelo con la implementación de microservicios, lo que facilita la detección temprana de errores de integración y reduce los riesgos durante la evolución de la arquitectura. El enfoque propuesto contribuye a la ingeniería de software moderna al reforzar la alineación entre el diseño arquitectónico, la evolución del sistema y las pruebas de software, lo que en última instancia promueve una transición más sólida hacia arquitecturas modulares y escalables. (Texto tomado de la fuente) | spa |
| dc.description.degreelevel | Maestría | |
| dc.description.degreename | Maestría en Ingeniería de Sistemas y Computación | |
| dc.description.notes | Public repository of the implemented tool: https://github.com/alejandrosd/integration-test-semi-automatic-generation-tool | eng |
| dc.description.researcharea | Ingeniería de Software | |
| dc.description.researcharea | Pruebas de Software | |
| dc.format.extent | xiv, 62 páginas | |
| dc.format.mimetype | application/pdf | |
| dc.identifier.instname | Universidad Nacional de Colombia | spa |
| dc.identifier.reponame | Repositorio Institucional Universidad Nacional de Colombia | spa |
| dc.identifier.repourl | https://repositorio.unal.edu.co/ | spa |
| dc.identifier.uri | https://repositorio.unal.edu.co/handle/unal/89519 | |
| dc.language.iso | eng | |
| dc.publisher | Universidad Nacional de Colombia | |
| dc.publisher.branch | Universidad Nacional de Colombia - Sede Bogotá | |
| dc.publisher.faculty | Facultad de Ingeniería | |
| dc.publisher.place | Bogotá, Colombia | |
| dc.publisher.program | Bogotá - Ingeniería - Maestría en Ingeniería - Ingeniería de Sistemas y Computación | |
| dc.relation.references | ARCURI, Andrea: RESTful API Automated Test Case Generation with EvoMaster. In: Association for Computing Machinery 28 (2019), S. 1–37. – https://doi.org/10.1145/3293455 | |
| dc.relation.references | CAI, Shen H. Y.: A model-driven approach to test case generation from architecture description languages. In: Journal of Systems and Software (2015), S. 1579–1591. – 10.1016/j.jss.2015.08.001 | |
| dc.relation.references | CHIKOFSKY, Cross J. H. E. J. J. E. J.: Reverse engineering and design recovery: A taxonomy. In: IEEE Software 7(1) (1990), S. 13–17. – 10.1109/52.43044 | |
| dc.relation.references | DAVIDE TAIBI, Claus P. Valentina Lenarduzzi L. Valentina Lenarduzzi: Architectural Patterns for Microservices: A Systematic Mapping Study. In: Conference: 8th International Conference on Cloud Computing and Services Science 1 (2018), S. 221–232. – 10.5220/0006798302210232 | |
| dc.relation.references | DMITRY DYGALO, Zac Hatfield-Dodds: Deriving Semantics-Aware Fuzzers from Web API Schemas. In: ArXiv 0 (2021), S. 0. – https://ar5iv.labs.arxiv.org/html/2112.10328 | |
| dc.relation.references | DRAGONI, Giazzi A.-Lago P. Mazzara M. Montesi F. Mustafin R. Safina L. N.: Microservices: yesterday, today, and tomorrow. Springer, 2017 | |
| dc.relation.references | EMPIRICAL STANDARS: Action Research Empirical Standard. https://www2.sigsoft.org/EmpiricalStandards/docs/standards?standard=ActionResearch, 2025. – Accessed: 2025-09-08 | |
| dc.relation.references | FRITZSCH, Jonas ; BOGNER, Justus ; ZIMMERMANN, Alfred ; WAGNER, Stefan: From Monolith to Microservices: A Classification of Refactoring Approaches. In: First International Workshop, DEVOPS 2018, Chateau de Villebrumier, France 1 (2019), S. 128–141. – 10.1007/978-3-030- 06019-0_10 | |
| dc.relation.references | JAMSHIDI, Pahl C.-Mendonça N. C. Lewis J. Tilkov S. P.: Microservices: The Journey So Far and Challenges Ahead. In: IEEE Software 1 (2018), S. 24–35. – 10.1109/MS.2018.2141039 | |
| dc.relation.references | LEHMANN, Ramil-J. F. M.: Rules and tools for software evolution planning and management. In: Annals of Software Engineering 11 (2001), S. 15–44. – 10.1023/A:1012535017876 | |
| dc.relation.references | MARCO BRAMBILLA, Jordi C. ; WIMMER, Manuel: Model-Driven Software Engineering in Practice. Morgan Claypool, 2017 | |
| dc.relation.references | MARTIN-LOPEZ, Alberto ; SEGURA, Sergio ; RUIZ-CORTÉS, Antonio: Test coverage criteria for RESTful web APIs. In: Proceedings of the 10th ACM SIGSOFT International Workshop on Automating TEST Case Design, Selection, and Evaluation. New York, NY, USA : Association for Computing Machinery, 2019 (A-TEST 2019). – ISBN 9781450368506, 15–21 | |
| dc.relation.references | MAZLAMI, Cito Jurgen-Leitner P. Genc: Ivano Malavolta, Patricia Lago, Henry Muccini, Patrizio Pelliccione, and Antony Tang. In: Institute of Electrical and Electronics Engineers Inc. 39 (2013), S. 869 – 891. – 10.1109/TSE.2012.74. | |
| dc.relation.references | MAZLAMI, Cito Jurgen-Leitner P. Genc: Extraction of Microservices from Monolithic Software Architectures. In: Institute of Electrical and Electronics Engineers Inc. 1 (2017), S. 524 – 531. – 10.1109/ICWS.2017.61 | |
| dc.relation.references | MICHAEL GYSEL, Wolfgang G. Lukas Kölbener K. Lukas Kölbener ; ZIMMERMANN, Olaf: Service Cutter: A Systematic Approach to Service Decomposition. In: Springer International 1 (2016), S. 185–200. – DOI: 10.1007/978-3-319-44482-6_12 | |
| dc.relation.references | NEWMAN, Sam: Building Microservices: Designing Fine-Grained Systems. O’Reilly Media, 2015 | |
| dc.relation.references | NEWMAN, Sam: Monolith to Microservices: Evolutionary Patterns to Transform Your Monolith. O’Reilly Media, 2019 | |
| dc.relation.references | PAOLO DI FRANCESCO, Ivano M. Patricia Lago L. Patricia Lago: Research on Architecting Microservices: Trends, Focus, and Potential for Industrial Adoption. In: IEEE International Conference on Software Architecture (2017), S. 21–30. – DOI 10.1109/ICSA.2017.24 | |
| dc.relation.references | PIERRE BOURQUE, Richard E. F.: Guide to the Software Engineering Body of Knowledge (SWEBOK). IEEE Computer Society, 2014 | |
| dc.relation.references | POLISHCHUK, Vaggelis Atlidakis; Patrice Godefroid; M.: RESTler: Stateful REST API Fuzzing. In: 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE) (2019), S. 748–758. – 10.1109/ICSE.2019.00083 | |
| dc.relation.references | PRESSMAN, ROGER S. ; MAXIM, BRUCE R.: Software Engineering A PRACTITIONER’S APPROACH. McGrawHill, 2019 | |
| dc.relation.references | RICHARDS, Mark ; FORD, Neal: Fundamentals of Software Architecture: An Engineering Approach. O’Reilly Media, 2020 | |
| dc.relation.references | RICK KAZMAN, Paul C. Len Bass B. Len Bass: Software Architecture In Practice. Addison-Wesley Longman, 2003 | |
| dc.relation.references | RICK KAZMAN, Paul C. Mark Klein K. Mark Klein: ATAM: Method for Architecture Evaluation. Carnegie Mellon Software Engineering Institute, 2000 | |
| dc.relation.references | SENDALL, S. ; KOZACZYNSKI, W.: Model transformation: the heart and soul of model-driven software development. In: IEEE Software 20 (2003), S. 42–45. – 10.1109/MS.2003.1231150 | |
| dc.relation.references | SHAW, M. ; GARLAND, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, 1996 | |
| dc.relation.references | SOLDANI, Tamburri D. A. van den Heuvel W. J. J.: The pains and gains of microservices: A systematic grey literature review. In: Journal of Systems and Software 146 (2018), S. 215–232. – 10.1016/j.jss.2018.09.082 | |
| dc.relation.references | STEPHANY BELLOMO, Robert L. N. Neil Ernst E. Neil Ernst ; OZKAYA, Ipek: Evolutionary Improvements of Cross-cutting Concerns: Performance in Practice. In: 4 IEEE International Conference on Software Maintenance and Evolution (2014), S. 545–548.. – 10.1109/ICSME.2014.91 | |
| dc.relation.references | TAM, T.: Swagger: The world’s most popular API framework. In: Swagger.io 0 (2015), S. 0. – https://swagger.io | |
| dc.relation.references | TOCKEY, Steve: Return On Software: Maximizing The Return On Your Software Investment. AddisonWesley Professional, 2005 | |
| dc.relation.references | TOM MENS, Anthony C. Alexander Serebrenik S. Alexander Serebrenik: Object-oriented software engineering. A use case driven approach. Addison-Wesley, 1992 | |
| dc.relation.references | TOM MENS, Anthony C. Alexander Serebrenik S. Alexander Serebrenik: Evolving Software Systems. Springer, 2014 | |
| dc.relation.references | VARGAS, Jeisson Andres V.: A model-driven deployment approach for applying the performance and scalability perspective from a set of software architecture styles. In: Repositorio Institucional UNAL 1 (2017), S. 0–71. – https://repositorio.unal.edu.co/items/530d75f2-117b4186-b907-0627ea9559f4 | |
| dc.relation.references | VELEPUCHA, Flores P. V.: Monoliths to microservices - Migration Problems and Challenges: A SMS. In: 2021 Second International Conference on Information Systems and Software Technologies (ICI2ST) 1 (2021), S. 135–142. – https://doi.org/10.1109/ICI2ST51859.2021.00027 | |
| dc.relation.references | ZIMMERMANN, Olaf: Architectural Refactoring – a Task-Centric View on Software Evolution. In: IEEE Software 32 (2015), S. 26–29. – http://doi.ieeecomputersociety.org/10.1109/MS.2015.37 | |
| dc.rights.accessrights | info:eu-repo/semantics/openAccess | |
| dc.rights.license | Atribución-NoComercial 4.0 Internacional | |
| dc.rights.uri | http://creativecommons.org/licenses/by-nc/4.0/ | |
| dc.subject.blaa | Arquitectura de software | spa |
| dc.subject.blaa | Desarrollo ágil de software | spa |
| dc.subject.ddc | Arquitectura de software a gran escala | spa |
| dc.subject.proposal | Software Architecture Evolution | eng |
| dc.subject.proposal | Architectural Evolution | eng |
| dc.subject.proposal | Model-Driven Engineering | eng |
| dc.subject.proposal | Semi-Automatic Test Generation | eng |
| dc.subject.proposal | Monolith | eng |
| dc.subject.proposal | Microservices | eng |
| dc.subject.wikidata | Arquitectura de microservicios | spa |
| dc.subject.wikidata | Microservices | eng |
| dc.title | Method for the semi-automatic generation of integration test cases in the process of architectural evolution from monolith to microservices, using model-driven software engineering | eng |
| dc.title.translated | Método para la generación semiautomática de casos de prueba de integración en el proceso de evolución arquitectónica de monolito a microservicios, mediante el uso de ingeniería de software dirigida por modelos. | spa |
| dc.type | Trabajo de grado - Maestría | |
| dc.type.coar | http://purl.org/coar/resource_type/c_bdcc | |
| dc.type.coarversion | http://purl.org/coar/version/c_ab4af688f83e57aa | |
| dc.type.content | Text | |
| dc.type.driver | info:eu-repo/semantics/masterThesis | |
| dc.type.redcol | http://purl.org/redcol/resource_type/TM | |
| dc.type.version | info:eu-repo/semantics/acceptedVersion | |
| dcterms.audience.professionaldevelopment | Especializada | |
| dcterms.audience.professionaldevelopment | Estudiantes | |
| dcterms.audience.professionaldevelopment | Investigadores | |
| dcterms.audience.professionaldevelopment | Público general | |
| oaire.accessrights | http://purl.org/coar/access_right/c_abf2 |
Archivos
Bloque original
1 - 1 de 1
Cargando...
- Nombre:
- Tabajo Final de Maestría_Luis_Alejandro_Ocampo_Gamboa.pdf
- Tamaño:
- 2.02 MB
- Formato:
- Adobe Portable Document Format
Bloque de licencias
1 - 1 de 1
Cargando...
- Nombre:
- license.txt
- Tamaño:
- 5.74 KB
- Formato:
- Item-specific license agreed upon to submission
- Descripción:

