Prueba de mutación

Definición: ¿Qué significa la prueba de mutación?

La prueba de mutación es un método de prueba de software en el que el programa o el código fuente se manipula deliberadamente, seguido de una serie de pruebas contra el código mutado. Las mutaciones introducidas en el código fuente están diseñadas para imitar errores de programación comunes. Un buen conjunto de pruebas unitarias normalmente detecta las mutaciones del programa y falla automáticamente.

Las pruebas de mutación se utilizan en muchas plataformas diferentes, incluidas Java, C ++, C # y Ruby.

Techinfo explica las pruebas de mutación

La prueba de mutación es un método simple pero ingenioso que se utiliza para validar la corrección del código fuente y el proceso de prueba. El concepto fue acuñado por primera vez por Richard Lipton en 1971, y ha habido un aumento de interés desde entonces.

El mecanismo de trabajo de las pruebas de mutación es simple y directo. Se selecciona un fragmento de código fuente que abarca todas las pruebas unitarias. Después de verificar todas las pruebas positivas para un código fuente determinado, se introduce una mutación en el programa.

El grado de mutación aplicado a un bloque de código dado puede variar. Una implementación de prueba de mutación común implica reemplazar un operador lógico con su inverso. Por ejemplo, el operador "! =" Se usa en lugar de "= =". En algunos casos, la mutación implica reorganizar líneas para cambiar el orden de ejecución o incluso eliminar algunas líneas de código. Los niveles de pruebas de mutaciones complejas pueden provocar errores de compilación.

Una vez que se modifica un programa, se ejecuta un conjunto de pruebas unitarias contra el código mutado. El código mutado pasa o no pasa la prueba unitaria, según la calidad de la prueba. Una prueba unitaria bien redactada debe detectar errores de código mutado, lo que resulta en fallas. Una prueba unitaria que no detecta errores de código puede requerir una reescritura.

Las pruebas de mutación facilitan las siguientes ventajas:

  • Identificación de fallas del código de programa
  • Desarrollo efectivo de casos de prueba
  • Detección de lagunas en los datos de prueba
  • Calidad mejorada del programa de software
  • Eliminación de la ambigüedad del código

Las desventajas de las pruebas de mutación incluyen:

  • Difícil implementación de mutaciones complejas
  • Costoso y lento
  • Requiere probadores calificados con conocimientos de programación