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

Cargando...
Miniatura

Editor

Document language:

Inglés

Fecha

Título de la revista

ISSN de la revista

Título del volumen

Documentos PDF

Resumen

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)

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.

Descripción

Ilustraciones, diagramas, gráficos

Palabras clave

Citación