Lenguajes formales y derivación automática de código de pruebas a partir de modelos de software con restricciones OCL - Rosenfeld, Ilan (2015)
Qué testear es un tema siempre vigente. Con tal propósito, y en caso de querer derivar casos de prueba automáticamente desde un modelo de software, no contamos con la precisión necesaria en los mismos para generar los tests acordes a nuestros intereses. Lenguajes formales como OCL permiten enriquecer cualquier modelo mediante información adicional o restricciones sobre sus elementos; entonces, la derivación de código y casos de prueba a partir de un modelo enriquecido con restricciones y especificaciones en este lenguaje permitirá contar con un soporte mucho más robusto de nuestro sistema. Tras el análisis de varias herramientas de generación automática de código a partir de modelos de software, se llegó a la conclusión de que casi ninguna de ellas incluye la traducción de restricciones en el modelo escritas en un lenguaje formal. Es por ello que la tesina consistió en un análisis de varios lenguajes formales de especificación (o modelado), especialmente de los lenguajes UML/OCL y Alloy. A partir de ello se desarrolló una herramienta para Eclipse, que permite, a partir de una especificación de un modelo UML poseyendo restricciones OCL, la generación automática de código Java, incluyendo las clases del modelo junto con sus respectivos Casos de Prueba, regulados por OCL. Paralelamente se genera de forma automática una especificación Alloy que permite el análisis formal estático del modelo.