Presentation

This blog is developed by the testing team of the Alarcos Research Group (Institute of Technologies and Information Systems, Instituto de Tecnologías y Sistemas de Información, Universidad de Castilla-La Mancha, Spain). In the testing team, we mainly work on the automation of the software testing process. We deal with:

-Mutation testing.

-Model-based testing.

-Testing in Software Product Lines.

-Testing of Information Systems.

-Combinatorial testing.

¿Qué son las pruebas mediante mutación? (I)

Suponte que eres el responsable de una editorial y que debes contratar a un corrector de estilo y ortotipográfico. Si tienes a varios candidatos para ese puesto, una posible forma de elegir al mejor es entregarles un texto con erratas y pedirles que lo corrijan. Por ejemplo, les podemos entregar el siguiente fragmento de La casada infiel, de Federico García Lorca:


Y que yo me la llevé al rio 
creyendo que era mozuela, 
pero tenia marido.
Fue la noche de Satniago 
y casi por conpromiso. 
Se apagaron los faroles 
y se encendieron los grillos. 
En las ultimas esquinas 
toqué sus pechos dormidos, 
y se me avrieron de pronto 
como ramos de jacintos. 
El almidon de su enagua 
me sonaba en el oido, 
como una pieza de seda 
rasgada por diez cuchiyos. 
Sin luz de plata en sus copas 
los árboles han cresido,
y un orizonte de perros
ladra muy lejos del río.


En el texto de arriba existen varios errores:


Y que yo me la llevé al río 
creyendo que era mozuela, 
pero tenía marido.
Fue la noche de Santiago 
y casi por compromiso
Se apagaron los faroles 
y se encendieron los grillos. 
En las últimas esquinas 
toqué sus pechos dormidos, 
y se me abrieron de pronto 
como ramos de jacintos. 
El almidón de su enagua 
me sonaba en el oído
como una pieza de seda 
rasgada por diez cuchillos
Sin luz de plata en sus copas 
los árboles han crecido
y un horizonte de perros 
ladra muy lejos del río. 


Cuando se propuso la técnica de mutación hace más de 30 años, la idea era muy parecida a la del responsable de selección de personal: evaluar la calidad de un test suite en función del número de fallos descubiertos por los casos de prueba en el sistema bajo prueba (en inglés, el SUT, el System Under Test). Cuantos más fallos se encuentren, mayor es la calidad el test suite.

Del mismo modo en que hemos "inyectado" fallos artificiales en el poema de Federico, en mutación se insertan fallos artificiales en el SUT. Estos fallos artificiales se introducen mediante "operadores de mutación", que introducen algún tipo de cambio sintáctico en el SUT.

En una próxima entrada hablaremos de los operadores de mutación.