¿Por qué las pruebas de mutación son importantes en la ingeniería de software?

En las pruebas de mutación, los errores se insertan intencionalmente en el programa y se crean mutantes. Un mutante es simplemente un programa defectuoso. Y nuestro objetivo es determinar si nuestro conjunto de pruebas es capaz de detectar los errores inyectados. Nuestra suposición es que los errores inyectados representan las fallas comunes que podemos encontrar en un programa real.

Entonces, para resumir, las pruebas de mutación se usan en pruebas de software para probar la efectividad de los conjuntos de pruebas. Esta técnica generalmente proporciona la cobertura de línea (% de líneas cubiertas) y la cobertura de mutación (% de mutantes detectados) a través de las cuales podemos determinar fácilmente la efectividad de nuestro conjunto de pruebas.

Si la herramienta A tiene 70% de cobertura de línea y 50% de cobertura de mutación, y la herramienta B tiene 80% de cobertura de línea y 60% de cobertura de mutación, entonces asumiría que la herramienta B es mejor que la herramienta para detectar posibles errores en el sistema. Como elegir un conjunto de pruebas eficiente y efectivo es uno de los desafíos en la ingeniería de software, las pruebas de mutación juegan un papel indispensable para ese propósito.