El mutation testing mide…
Opciones
- La velocidad de ejecución del código bajo prueba
- La calidad de los tests: planta bugs y espera fallos (Opción correcta)
- El uso de memoria del código durante una ejecución
- La frecuencia con la que cambia el código en el repositorio
Respuesta
Lo buenos que son tus tests: inyecta pequeños bugs (mutantes) en el código y comprueba si los tests fallan
Por qué
La herramienta hace pequeños cambios en tu código, por ejemplo > por >= o + por -, y ejecuta tus tests para cada cambio.
Si los tests siguen pasando con el bug, ese mutante 'sobrevivió', lo que significa que tus tests no comprueban de verdad ese comportamiento.
Es lento, así que normalmente se ejecuta en los módulos importantes. Herramientas: mutmut (Python), Stryker (JS).
Recuerda
Mutation testing = ¿mis tests detectan bugs plantados a propósito?