Descripción y Objetivos
El objetivo de este proyecto es desarrollar una herramienta software que, a partir de la especificación funcional (requisitos) de un
sistema (capturada en un modelo conceptual orientado a objetos), permita la generación completa, eficiente y fiable del código de las
pruebas unitarias del sistema software correspondiente a dicha especificación, de forma totalmente automatizada y, de este modo,
prescindir de acciones de programación manual por parte de los desarrolladores de juegos de prueba.
Esto es, automatizando la generación del código de las pruebas unitarias, estaremos también automatizando las tareas correspondientes
a probar el software desarrollado, la cual cosa permitirá a la industria de desarrollo de software:
- Reducir los tiempos de desarrollo de cualquier solución software.
- Verificar el correcto y completo desarrollo de los requisitos.
- Disminuir la cantidad de tareas repetitivas y de retroalimentación que comprenden estas fases del ciclo de desarrollo de software
- Aumentar la calidad del software desarrollado, permitiendo su fácil adaptabilidad y reutilización. No se trataría, por tanto, de una
solución a medida para un problema concreto, sino de una automatización aplicable a cualquier desarrollo
- Generar importantes ahorros en costes económicos directos e indirectos referidos al ciclo completo de desarrollo de un sistema de información.
Resultados observables del proyecto
El presente proyecto se centrará en la generación del código de pruebas unitarias en Java para la funcionalidad de la
lógica de negocio de un sistema de información.
Los procesos de generación automática de código de pruebas unitarias a partir de un modelo conceptual se integrarán en
los Transformation Engine para la capa de lógica de negocio. Esto es, se integrarán en los generadores de código que,
a partir de un modelo conceptual, generan código funcional para la capa de lógica de negocio.
Así, como resultado de la combinación de ambos procesos en un mismo Transformation Engine se espera que, como resultado
de aplicar el Transformation Engine a un modelo conceptual, se obtenga, además del código funcional (el que implementa
la lógica de negocio del sistema de información) el código de las pruebas unitarias (el que verificará el funcionamiento
del código funcional).
Se espera también que el código de las pruebas unitarias pueda ser ejecutado de forma automática y que todas las pruebas
pasen satisfactoriamente. Esto es, sin errores y sin discrepancias en cuanto a lo que cada prueba verifique.
Adicionalmente, se espera que el código de las pruebas unitarias alcance un nivel de cobertura del código funcional de,
por lo menos, un 80%. Esto es, que el código de las pruebas unitarias verifique al menos el 80% del código funcional.
Esto resultará en un aumento de la calidad del código generado automáticamente por los Transformation Engine.
Finalmente, se espera que el código generado (la combinación de código funcional y código de pruebas unitarias) se integre
fácilmente en pipelines de CI/CD utilizando herramientas tales como Jenkins.