Pruebas de software | Pruebas de mutación

La prueba de mutación es un tipo de prueba de software que se realiza para diseñar nuevas pruebas de software y también para evaluar la calidad de las pruebas de software ya existentes. Las pruebas de mutación están relacionadas con la modificación de un programa en pequeñas formas. Se enfoca en ayudar al probador a desarrollar pruebas efectivas o localizar debilidades en los datos de prueba utilizados para el programa.

Historia de las pruebas de mutaciones:
Richard Lipton propuso las pruebas de mutaciones en 1971 por primera vez. Aunque el alto costo redujo el uso de pruebas de mutación, ahora se usa ampliamente para lenguajes como Java y XML.

La prueba de mutación es una prueba de caja blanca .

Las pruebas de mutación se pueden aplicar a modelos de diseño, especificaciones, bases de datos, pruebas y XML. Es una técnica de prueba estructural, que utiliza la estructura del código para guiar el proceso de prueba. Puede describirse como el proceso de reescribir el código fuente en pequeñas formas para eliminar las redundancias en el código fuente.

Objetivo de las pruebas de mutación:
El objetivo de las pruebas de mutación es:

  • Para identificar piezas de código que no se prueban correctamente.
  • Para identificar defectos ocultos que no se pueden detectar con otros métodos de prueba.
  • Para descubrir nuevos tipos de errores o bugs.
  • Para calcular la puntuación de mutación.
  • Estudiar la propagación de errores y la infección de estado en el programa.
  • Evaluar la calidad de los casos de prueba.

Tipos de pruebas de mutación:
Las pruebas de mutación son básicamente de 3 tipos:

  1. Mutaciones de valor:
    en este tipo de prueba, los valores se cambian para detectar errores en el programa. Básicamente, un valor pequeño se cambia a un valor más grande o un valor más grande se cambia a un valor más pequeño. En esta prueba básicamente se cambian constantes.

    Ejemplo:

    Initial Code:
    
    int mod = 1000000007;
    int a = 12345678;
    int b = 98765432;
    int c = (a + b) % mod;
    
    Changed Code:
    
    int mod = 1007;
    int a = 12345678;
    int b = 98765432;
    int c = (a + b) % mod; 
  2. Mutaciones de Decisión:
    En las mutaciones de decisiones se cambian operadores lógicos o aritméticos para detectar errores en el programa.

    Ejemplo:

    Initial Code:
    
    if(a < b)
     c = 10;
    else
     c = 20;
    
    Changed Code:
    
    if(a > b)
     c = 10;
    else
     c = 20; 
  3. Mutaciones de declaraciones:
    en las mutaciones de declaraciones, se elimina una declaración o se reemplaza por otra declaración.

    Ejemplo:

    Initial Code:
    
    if(a < b)
     c = 10;
    else
     c = 20;
    
    Changed Code:
    
    if(a < b)
     d = 10;
    else
     d = 20; 

Ventajas de las pruebas de mutación:

  • Aporta un buen nivel de detección de errores en el programa.
  • Descubre ambigüedades en el código fuente.

Desventajas de las pruebas de mutación:

  • Es muy costoso y requiere mucho tiempo.
  • No es apto para pruebas de caja negra.

Publicación traducida automáticamente

Artículo escrito por pp_pankaj y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *