Blog

Test de mutación: la calidad es prioritaria

Ignacio Ribera Díaz

Desde que la programación se convirtió en una herramienta para la resolución de trabajos complejos, se han ido creando diferentes metodologías y herramientas que permiten comprobar el correcto funcionamiento de los programas.

Existen diversos tipos de pruebas que se pueden clasificar según su manera de actuar o según qué parte del programa se quiere probar, como test unitarios, de integración, de estrés, de compatibilidad…

Hoy vamos a hablar sobre un tipo de pruebas poco conocido, pero no por ello menos importante, las pruebas de mutación.


¿Qué es una prueba de mutación?


Los test de mutación son pruebas para medir la calidad del código a largo plazo. Estas pruebas consisten en cambiar (mutar) ciertos puntos del código fuente y ver si se detectan estos cambios (errores) mediante los test unitarios.

Las pruebas de mutación son, por tanto, un sistema doble de calidad que nos permite comprobar tanto la eficacia de nuestros test unitarios y respaldar la cobertura de código exigida en nuestros proyectos, como la robustez del código testeado mediante esos test unitarios.

¿Para qué sirven las pruebas de mutación?

El objetivo final de este tipo de test es comprobar la robustez del código que es testeado mediante test unitarios. Es decir, si los test unitarios fallan es porque han detectado esos pequeños cambios (mutaciones) que hemos incluido en el código fuente.


La idea central en la que se basa este tipo de pruebas es que el código mutado debe hacer fallar los test unitarios, comprobando que el código desarrollado y testeado no funciona de la manera esperada.


Si al comprobar el código con los test unitarios no se genera un error, significa que el desarrollo no es suficientemente robusto, y, por tanto, habrá que continuar trabajando en él hasta conseguir el resultado que se marcó como objetivo en la definición de las funcionalidades del proyecto.


Ejemplo de prueba de mutación


Para tenerlo del todo claro, vamos a poner un ejemplo muy sencillo que ilustra el concepto y el funcionamiento de las pruebas de mutación:


Tenemos una función que suma 2 números y los test están comprobando que esa suma se hace correctamente:


public int add(int i1, int i2) {

return i1 + i2;

}


Al hacer los test de mutación se cambiará (mutará) el operador ‘+’ por ‘-’ y se volverán a ejecutar los test:


public int add(int i1, int i2) {

return i1 - i2;

}


Con este código ‘mutado’ se busca que los test fallen, lo que confirmaría la robustez del código.

Texto
Ignacio Ribera Díaz
Edición de texto
Marisa Perdices Castillo
Edición de imagen
Lorena Heredia Avinent
Backend
Test
Testing
Test de mutación
Prueba de mutación
Ingeniería industrial
Desarrollo de software
Calidad
Pruebas
¿Te ha gustado?
Compártelo en redes sociales
Suscríbete a
nuestra newsletter

Mantente al día de todas las novedades Mytra: proyectos, eventos, noticias…