Ejecución selectiva de pruebas unitarias en pipelines de Azure DevOps mediante análisis de cambios incrementales post-merge en proyectos Scala. Semestre de Industria

La ejecución de pruebas unitarias es un componente esencial dentro de los procesos de integración continua, especialmente en proyectos con grandes volúmenes de código y equipos de desarrollo colaborativo. En entornos como Azure DevOps, donde la eficiencia de los pipelines impacta directamente los ci...

Full description

Autores:
Palacio Arboleda, Juan Jacobo
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2025
Institución:
Universidad de Antioquia
Repositorio:
Repositorio UdeA
Idioma:
OAI Identifier:
oai:bibliotecadigital.udea.edu.co:10495/48193
Acceso en línea:
https://hdl.handle.net/10495/48193
Palabra clave:
Pipelines
Microsoft Azure (Computing platform)
Programas Informáticos
Software
http://id.loc.gov/authorities/subjects/sh85102372
http://id.loc.gov/authorities/subjects/sh2016001752
https://id.nlm.nih.gov/mesh/D012984
Rights
openAccess
License
http://creativecommons.org/licenses/by-nc-sa/4.0/
Description
Summary:La ejecución de pruebas unitarias es un componente esencial dentro de los procesos de integración continua, especialmente en proyectos con grandes volúmenes de código y equipos de desarrollo colaborativo. En entornos como Azure DevOps, donde la eficiencia de los pipelines impacta directamente los ciclos de desarrollo, resulta crucial optimizar el uso de recursos sin comprometer la calidad del software. En este contexto, se implementó una estrategia automatizada para ejecutar selectivamente pruebas unitarias en proyectos Scala gestionados con SBT, basada en el análisis de cambios incrementales detectados después de un merge. La solución consiste en un script YAML que identifica los archivos .scala modificados y determina, a partir de estos, las clases de prueba pertinentes para su ejecución, integrándose de forma transparente al pipeline de DevOps. Esta automatización contribuye a reducir tiempos de espera en las validaciones, evitando la ejecución innecesaria de pruebas no relacionadas con los cambios recientes, y promoviendo ciclos de retroalimentación más ágiles para los desarrolladores. La propuesta se alinea con los principios de eficiencia y escalabilidad propios de la integración continua, y puede ser adaptada a otros entornos que empleen herramientas similares, particularmente en contextos empresariales donde se prioriza la automatización y la calidad continua del software.