@misc{10498/38427, year = {2025}, month = {12}, url = {http://hdl.handle.net/10498/38427}, abstract = {Este Trabajo de Fin de Grado se centra en el diseño y la implementación de un sistema de pruebas de mutaciones para MiniZinc, un lenguaje de programación de código abierto orientado al modelado de restricciones de alto nivel que permite expresar y resolver problemas de optimización. La prueba de mutaciones es una técnica de prueba de software que consiste en insertar errores artificiales en el código fuente con el objetivo de evaluar la capacidad de un conjunto de pruebas para identificar defectos de programación. La motivación de este trabajo no solo se basa en la ausencia, observada en la literatura, de un sistema de mutaciones específico para MiniZinc, sino también en la creciente importancia de garantizar la fiabilidad de los modelos desarrollados en contextos donde los errores pueden tener un impacto significativo, como en la logística, la planificación, la asignación de recursos o la investigación operativa. La prueba de mutaciones ofrece un enfoque objetivo para medir la capacidad de un conjunto de pruebas para detectar defectos, pero hasta ahora no se había adaptado al ecosistema de MiniZinc. Para cubrir esta carencia, se ha diseñado e implementado un conjunto de operadores de mutación que permite generar mutantes de programas, también denominados modelos, escritos en MiniZinc. Asimismo, se ha desarrollado una herramienta con una interfaz de intérprete de órdenes que automatiza el análisis de un modelo, la generación de los mutantes correspondientes, su ejecución y su comparación con el modelo original. Esto permite determinar la matriz de mutación, mediante la cual es posible identificar qué mutantes sobreviven, mueren o resultan en error. La herramienta es altamente configurable, lo que permite optimizar el proceso. Para evaluar la calidad del software desarrollado, se ha diseñado e implementado una batería de pruebas unitarias, de integración y de sistema. Además, se ha confeccionado un manual del usuario orientado al aprovechamiento de la herramienta, así como un manual del desarrollador destinado a facilitar su mantenimiento y la extensión de su funcionalidad en el futuro.}, keywords = {pruebas de software}, keywords = {pruebas de mutaciones}, keywords = {MiniZinc}, keywords = {intérprete de órdenes}, keywords = {programación con restricciones}, title = {MuMiniZinc: Un sistema de mutaciones para el lenguaje de programación con restricciones MiniZinc}, author = {Carmona Dionisio, Gonzalo}, }