Generación De Mutantes Con Algoritmos Genéticos
Resumen. Las técnicas de caja blanca y, más precisamente, las técnicas de prueba de mutaciones
dependen del lenguaje de programación empleado. El trabajo que se expone presenta un
generador de mutantes independiente del lenguaje de programación empleado, mediante el
empleo de algoritmos genéticos. Una de las características del generadores que no se necesitan
generar todos los mutantes posibles, sino que la heurística aplicada permitirá realizar una
selección de los mejores mutantes. El generador es capaz de detectar los posibles mutantes
equivalentes.
Palabras Clave: Prueba de mutaciones, Generador de mutantes, Algoritmos genéticos.
1 Introducción
Las técnicas de caja blanca y, más en concreto, la prueba demutaciones, tienen un alto grado de
dependencia del lenguaje de programación, por lo que no podemos reutilizar herramientas empleadas
en otros lenguajes. En este sentido, es necesario el desarrollo de herramientas que, de forma
automática, generen mutantes para cualquier lenguaje de programación. Los algoritmos genéticos
(AG) han demostrado ser una estrategia de optimización heurística eficaz paraoptimizar funciones
con numerosos óptimos locales. Sin embargo, dentro del ámbito de pruebas del software, su uso se ha
limitado a la generación de casos de prueba [8].
Este artículo presenta un generador de mutantes independiente del lenguaje de programación,
empleando AG. Nuestro trabajo presenta un uso novedoso de éstos al aplicarlos a la generación de
mutantes. El generador será capazde detectar los posibles mutantes equivalentes. La estructura del
artículo es la siguiente: en la sección 2 se resumen brevemente las conceptos teóricos sobre los que
subyace el generador; en la sección 3 describimos brevemente la situación actual en la generación
automática de mutantes; la sección 4 expone la generación de mutantes propuesta y, finalmente, en la
sección 5 se resumen lasconclusiones y las futuras líneas de trabajo.
2 Conceptos teóricos
En esta sección se resumen los conceptos principales sobre los que se apoya el generador de mutantes
propuesto: la prueba de mutaciones y los AG.
2.1 Prueba de Mutaciones
La prueba de mutaciones es una técnica de prueba del software de caja blanca basada en errores [14],
que consiste en introducir fallos simples en elprograma original, aplicando para ello operadores de
Actas de los Talleres de las Jornadas de Ingeniería del Software y Bases de Datos, Vol. 2, No. 4, 2008
28 SISTEDES, 2008 ISSN 1988-3455
mutación. Los programas resultantes reciben el nombre de mutantes. Cada operador de mutación se
corresponde con una categoría de error típico que puede cometer el programador. Si un caso de prueba
escapaz de distinguir al programa original del mutante, es decir, la salida del mutante y la del
programa original son diferentes, se dice que mata al mutante. Si por el contrario ningún caso de
prueba es capaz de diferenciar al mutante del programa original, se habla de un mutante vivo para el
conjunto de casos de prueba empleado.
Una de las principales dificultades de aplicar la prueba demutaciones es la existencia de mutantes
equivalentes. Éstos presentan el mismo comportamiento que el programa original. Estos mutantes no
deben confundirse con los mutantes difíciles de matar (stubborn non-equivalent mutants), originados
porque el conjunto de casos de prueba no es suficiente para poder detectarlos.
Uno de los principales inconvenientes de la prueba de mutaciones es el altocoste computacional
que implica. Esto es debido a que disponemos normalmente de un número grande de operadores de
mutación que generan un elevado número de mutantes. Existen diversas estrategias para reducir el
elevado coste computacional de la prueba de mutaciones [11]. Una de ellas es la realización de una
mutación selectiva, donde se realizan pocas mutaciones sin incurrir en una...
Regístrate para leer el documento completo.