Ilán Rosenfeld aprobó su tesina de grado tiulada: “Lenguajes formales y derivación automática de código de pruebas a partir de modelos de software con restricciones OCL”

willayEn noviembre de 2015, el Lic. Ilán Rosenfeld aprobó su tesina de grado tiulada: “Lenguajes formales y derivación automática de código de pruebas a partir de modelos de software con restricciones OCL”, correspondiente a la carrera Licenciatura en Informática.

Este trabajo estuvo dirigido por la Dra. Claudia Ponds y contó con el asesoramiento profesional de Gabriela Alejandra Pérez.

La tesina de Ilán 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 el tesista 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  generó de forma automática una especificación Alloy que permite el análisis formal estático del modelo.

Es importante remarcar que para llevar a cabo un testeo y en caso de querer derivar casos de prueba automáticamente desde un modelo de software, actualmente no se cuenta con la precisión necesaria en los mismos para generar los tests acordes a nuestros intereses.

Asimismo, hay que tener en cuenta que 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 del  sistema.

Tras el análisis de varias herramientas de generación automática de código a partir de modelos de software, el tesista 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 Ilán decidió realizar este trabajo.

Entre los trabajos a futuros se encuentran: , permitir especificar las restricciones en el modelo fuente directamente en el lenguaje Alloy; lograr que Acceleo regenere el código sin alterar las actualizaciones realizadas o aquel texto que estuviera delimitado por separadores especiales y contar con tests menos abstractos y desprenderse de a poco del uso de mocks, para generar tests más específicos. Otros trabajos pendientes son: generar contraejemplos en lenguaje natural/Java y soluciones posibles a las inconsistencias y realizar el mismo proceso permitiendo la selección de diversos lenguajes de programación destino.

Descargar portada

 

 

Vuelve al inicio