Herramienta web para realizar testing usando mutación y programación orientada a aspectos
Abstract
El testing es uno de los procesos más importantes del ciclo de vida del software, ya que es el único momento en el que se pueden encontrar y solventar errores que resultarían muy costosos cuando el software sea desplegado. Para realizar este proceso es necesario describir escenarios que simulen un uso del sistema (casos de prueba) y comprobar si el resultado tras la ejecución del proceso corresponde con el esperado (detectando así desviaciones en el comportamiento y, en consecuencia, errores).
En un sistema pequeño, puesto que existen pocos escenarios, es relativamente sencillo realizar el proceso de testing y, por lo tanto, resulta “viable” escribir los correspondientes casos de prueba.
Esto cambia en sistemas de mayor envergadura, que presentan un gran número de escenarios con multitud de posibilidades, lo que puede implicar el desarrollo de miles de casos de prueba.
En este proyecto se presenta un entorno web para la automatización de tareas de testing utilizando conceptos potentes e innovadores como son la mutación y la programación orientada a aspectos. La mutación consiste, grosso modo, en crear un gran número de copias del sistema bajo prueba (mutantes) insertando errores que, a pesar de ser artificiales, suelen ser errores que cometen los desarrolladores con mucha frecuencia. Cada mutante contempla un único error. La inserción de los errores se realiza mediante programación orientada a aspectos, que permite “atrapar” zonas del programa pudiendo así modificar su comportamiento.
Esta herramienta permite realizar un ciclo completo de pruebas, desde la creación de los mutantes, hasta la ejecución de los casos de prueba. De esta forma, al obtener los resultados y analizarlos, se puede saber por qué y dónde existen errores en el sistema bajo prueba, teniendo así la oportunidad de eliminarlos.