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.advisorVergara Vargas, Jeisson Andrés
dc.contributor.advisorOliveira Neves, Vânia
dc.contributor.authorOcampo Gamboa, Luis Alejandro
dc.contributor.cvlacOcampo Gamboa, Luis Alejandro [0002152619]
dc.contributor.orcidOcampo Gamboa, Luis Alejandro [0009-0000-2733-9029]
dc.contributor.researchgroupColectivo de Investigación en Ingeniería de Software Colswe
dc.date.accessioned2026-02-12T12:55:25Z
dc.date.available2026-02-12T12:55:25Z
dc.date.issued2025
dc.descriptionIlustraciones, diagramas, gráficosspa
dc.description.abstractIn 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.abstractEn 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.degreelevelMaestría
dc.description.degreenameMaestría en Ingeniería de Sistemas y Computación
dc.description.notesPublic repository of the implemented tool: https://github.com/alejandrosd/integration-test-semi-automatic-generation-tooleng
dc.description.researchareaIngeniería de Software
dc.description.researchareaPruebas de Software
dc.format.extentxiv, 62 páginas
dc.format.mimetypeapplication/pdf
dc.identifier.instnameUniversidad Nacional de Colombiaspa
dc.identifier.reponameRepositorio Institucional Universidad Nacional de Colombiaspa
dc.identifier.repourlhttps://repositorio.unal.edu.co/spa
dc.identifier.urihttps://repositorio.unal.edu.co/handle/unal/89519
dc.language.isoeng
dc.publisherUniversidad Nacional de Colombia
dc.publisher.branchUniversidad Nacional de Colombia - Sede Bogotá
dc.publisher.facultyFacultad de Ingeniería
dc.publisher.placeBogotá, Colombia
dc.publisher.programBogotá - Ingeniería - Maestría en Ingeniería - Ingeniería de Sistemas y Computación
dc.relation.referencesARCURI, 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.referencesCAI, 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.referencesCHIKOFSKY, 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.referencesDAVIDE 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.referencesDMITRY 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.referencesDRAGONI, Giazzi A.-Lago P. Mazzara M. Montesi F. Mustafin R. Safina L. N.: Microservices: yesterday, today, and tomorrow. Springer, 2017
dc.relation.referencesEMPIRICAL STANDARS: Action Research Empirical Standard. https://www2.sigsoft.org/EmpiricalStandards/docs/standards?standard=ActionResearch, 2025. – Accessed: 2025-09-08
dc.relation.referencesFRITZSCH, 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.referencesJAMSHIDI, 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.referencesLEHMANN, 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.referencesMARCO BRAMBILLA, Jordi C. ; WIMMER, Manuel: Model-Driven Software Engineering in Practice. Morgan Claypool, 2017
dc.relation.referencesMARTIN-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.referencesMAZLAMI, 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.referencesMAZLAMI, 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.referencesMICHAEL 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.referencesNEWMAN, Sam: Building Microservices: Designing Fine-Grained Systems. O’Reilly Media, 2015
dc.relation.referencesNEWMAN, Sam: Monolith to Microservices: Evolutionary Patterns to Transform Your Monolith. O’Reilly Media, 2019
dc.relation.referencesPAOLO 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.referencesPIERRE BOURQUE, Richard E. F.: Guide to the Software Engineering Body of Knowledge (SWEBOK). IEEE Computer Society, 2014
dc.relation.referencesPOLISHCHUK, 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.referencesPRESSMAN, ROGER S. ; MAXIM, BRUCE R.: Software Engineering A PRACTITIONER’S APPROACH. McGrawHill, 2019
dc.relation.referencesRICHARDS, Mark ; FORD, Neal: Fundamentals of Software Architecture: An Engineering Approach. O’Reilly Media, 2020
dc.relation.referencesRICK KAZMAN, Paul C. Len Bass B. Len Bass: Software Architecture In Practice. Addison-Wesley Longman, 2003
dc.relation.referencesRICK KAZMAN, Paul C. Mark Klein K. Mark Klein: ATAM: Method for Architecture Evaluation. Carnegie Mellon Software Engineering Institute, 2000
dc.relation.referencesSENDALL, 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.referencesSHAW, M. ; GARLAND, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, 1996
dc.relation.referencesSOLDANI, 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.referencesSTEPHANY 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.referencesTAM, T.: Swagger: The world’s most popular API framework. In: Swagger.io 0 (2015), S. 0. – https://swagger.io
dc.relation.referencesTOCKEY, Steve: Return On Software: Maximizing The Return On Your Software Investment. AddisonWesley Professional, 2005
dc.relation.referencesTOM MENS, Anthony C. Alexander Serebrenik S. Alexander Serebrenik: Object-oriented software engineering. A use case driven approach. Addison-Wesley, 1992
dc.relation.referencesTOM MENS, Anthony C. Alexander Serebrenik S. Alexander Serebrenik: Evolving Software Systems. Springer, 2014
dc.relation.referencesVARGAS, 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.referencesVELEPUCHA, 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.referencesZIMMERMANN, 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.accessrightsinfo:eu-repo/semantics/openAccess
dc.rights.licenseAtribución-NoComercial 4.0 Internacional
dc.rights.urihttp://creativecommons.org/licenses/by-nc/4.0/
dc.subject.blaaArquitectura de softwarespa
dc.subject.blaaDesarrollo ágil de softwarespa
dc.subject.ddcArquitectura de software a gran escalaspa
dc.subject.proposalSoftware Architecture Evolutioneng
dc.subject.proposalArchitectural Evolutioneng
dc.subject.proposalModel-Driven Engineeringeng
dc.subject.proposalSemi-Automatic Test Generationeng
dc.subject.proposalMonolitheng
dc.subject.proposalMicroserviceseng
dc.subject.wikidataArquitectura de microserviciosspa
dc.subject.wikidataMicroserviceseng
dc.titleMethod for the semi-automatic generation of integration test cases in the process of architectural evolution from monolith to microservices, using model-driven software engineeringeng
dc.title.translatedMé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.typeTrabajo de grado - Maestría
dc.type.coarhttp://purl.org/coar/resource_type/c_bdcc
dc.type.coarversionhttp://purl.org/coar/version/c_ab4af688f83e57aa
dc.type.contentText
dc.type.driverinfo:eu-repo/semantics/masterThesis
dc.type.redcolhttp://purl.org/redcol/resource_type/TM
dc.type.versioninfo:eu-repo/semantics/acceptedVersion
dcterms.audience.professionaldevelopmentEspecializada
dcterms.audience.professionaldevelopmentEstudiantes
dcterms.audience.professionaldevelopmentInvestigadores
dcterms.audience.professionaldevelopmentPúblico general
oaire.accessrightshttp://purl.org/coar/access_right/c_abf2

Archivos

Bloque original

Mostrando 1 - 1 de 1
Cargando...
Miniatura
Nombre:
Tabajo Final de Maestría_Luis_Alejandro_Ocampo_Gamboa.pdf
Tamaño:
2.02 MB
Formato:
Adobe Portable Document Format

Bloque de licencias

Mostrando 1 - 1 de 1
Cargando...
Miniatura
Nombre:
license.txt
Tamaño:
5.74 KB
Formato:
Item-specific license agreed upon to submission
Descripción: