Cargando Eventos

Título: «MimicryMonitors: Verificación de programas con fragmentos comunes».
Directores: Javier Godoy, Diego Garbervetsky
Jurados: Dra. Flavia Bonomo, Dr. Juan Pablo Galeotti

Resumen:

En el desarrollo de software moderno, es común que los sistemas evolucionen mediante pequeños cambios incrementales. Esta característica se puede explotar en diversos escenarios, especialmente en el testing de regresión, donde surge una pregunta fundamental: cuando se modifica una parte de un programa previamente verificado, ¿es necesario re-evaluar todo el sistema o se puede aprovechar el trabajo de verificación ya realizado? En particular, ¿se puede utilizar la noción de que dos versiones comparten gran parte de su código para reducir el esfuerzo de testeo? En este contexto, esta tesis explora e implementa los Mimicry Monitors (MM), una técnica que justamente capitaliza los fragmentos comunes entre dos versiones de un programa. La técnica permite verificar en tiempo de ejecución si el comportamiento de un programa bajo análisis (PUA) puede ser imitado por un programa de referencia u oráculo (OP), sin necesidad de ejecutar este último. Para validar la técnica, se realizó una evaluación experimental sobre cinco herramientas de GNU Core Utilities, seleccionando dos versiones de cada una y utilizando sus conjuntos de pruebas existentes para simular escenarios reales de testing de regresión. Se define la efectividad de los Mimicry Monitors como su capacidad de emitir veredictos anticipados sobre la existencia de una contraparte del OP para la ejecución actual del PUA. Los resultados revelan entonces que la efectividad de los MMs está intrínsecamente ligada a la naturaleza de las modificaciones entre versiones. Para programas con modificaciones localizadas como cat, se obtuvo hasta un 60.87 % de casos verificados, permitiendo terminación temprana. En contraste, programas con modificaciones estructurales fundamentales como ls no mostraron resultados igualmente favorables. Los resultados demuestran que los Mimicry Monitors constituyen una herramienta valiosa para la optimización de testing de regresíón, validando parcialmente la hipótesis de que es posible evitar ejecuciones redundantes mediante el análisis de fragmentos comunes.