Prueba de mutación - Ventajas y desventajas de las pruebas de mutación

Tabla de contenido:

Anonim

¿Qué es la prueba de mutación?

Como la palabra "mutar" en general significa "cambio", también significa la prueba de mutación. La prueba de mutación es el tipo de prueba de software que se realiza cambiando o mutando la pieza de código para verificar / verificar que los casos de prueba sean lo suficientemente capaces de encontrar los errores / defectos. La prueba de mutación se incluye en la prueba de la Caja Blanca y se realiza básicamente mientras se realizan las pruebas de Unidad de un módulo particular de una aplicación. Los cambios realizados en el código fuente / principal realizado se realizan en una pequeña cantidad para que no afecte el objetivo general del mismo. Esto también se conoce como la técnica de detección de fallas, ya que se hace con el propósito de localizar la debilidad de los casos de prueba creando una falla en el código original.

Antes de realizar cualquier prueba, es muy importante comprender el objetivo detrás de esto. El objetivo principal de las pruebas de mutación es encontrar la efectividad de los casos de prueba desarrollados, que deberían ser lo suficientemente capaces de detectar incluso el pequeño cambio realizado en el código. Se hace para encontrar los problemas en el conjunto de pruebas y los datos de prueba que se utilizan al realizar la prueba de cualquier aplicación de software. Se crean múltiples mutantes o versiones del código original y cada uno de ellos se prueba contra los casos de prueba originales. Si los resultados del caso de prueba siguen siendo los mismos que en el código original, se verifican nuevamente tanto el código como los casos de prueba porque el código no se ejecutó o el conjunto de pruebas no es lo suficientemente capaz de encontrar el código mutante.

Tipos de pruebas de mutación

Básicamente, existen 3 tipos de pruebas de mutación que se realizan para crear mutantes del código original:

1. Mutación de valor

Como su nombre indica, en Value mutation, el valor de las constantes, los parámetros pasados ​​en los métodos, los valores utilizados en los bucles se cambian para crear un programa mutante. El valor grande se cambia a uno más pequeño o viceversa. Básicamente, los valores que ya están definidos en el programa se cambian para realizar la Mutación de valor.

Código original

int a = 75636737;
int b = 3454;
int mult = a * b;
print(mult);

Código mutante:

int a = 75;
int b = 345466465;
int mult = a * b;
print(mult);

2. Mutación de decisión

En Decision Mutation, los operadores lógicos y aritméticos utilizados en el programa cambian, lo que cambia la toma de decisiones general en el programa y sus resultados respectivos. Por ejemplo, cierta instrucción 'if' se ejecuta solo cuando (a> b). En el código mutante, este operador se cambia a (a <b), que cambia la toma de decisiones general en el código.

Código original

if (a>b || b>c)
(
print(“yes”);
)
else
(
print (“No”);
)

Código mutante:

if (a (
print(“yes”);
)
else
(
print (“No”);
)

3. Declaración de mutación

En Statement Mutation, se realizan cambios en las declaraciones de código completas para crear un programa mutante. Los cambios en la declaración pueden eliminar toda la declaración, cambiar el orden de la declaración en el código, copiar y pegar las declaraciones en alguna otra ubicación en el código, repetir o duplicar las pocas declaraciones en el código original.

Código original

if (a > b)
(
print(“a is greater”);
)
else
(
print(“b is greater”);
)

Código mutante:

if(a > b)
(
// removing the statement
)
else
(
print(“b is greater”);
)

Ventajas y desventajas de las pruebas de mutación

Las ventajas y desventajas de las pruebas de mutación se detallan a continuación:

Ventajas

Algunas de las ventajas de las pruebas de mutación se dan a continuación:

  1. Una de las mayores ventajas de las pruebas de mutación es que ayuda a encontrar los defectos ocultos y la cobertura máxima del código para identificar la parte del código que no se prueba a fondo en los casos de prueba originales.
  2. Las pruebas de mutación ayudan a encontrar la calidad de los casos de prueba que se utilizan para probar el software y proporcionar retroalimentación genuina a los evaluadores sobre el proceso de prueba y la calidad de la prueba.
  3. Ayuda a encontrar los errores de alta calidad que no son fáciles de encontrar mediante pruebas normales.
  4. Las pruebas de mutación a veces revelan defectos ocultos como la ambigüedad del código, valores incorrectos de variables, etc. en el código en las primeras etapas de las pruebas de software, lo cual es muy beneficioso.
  5. A veces, tanto el código como el caso de prueba son correctos, pero el problema se debe a los datos de prueba. Las pruebas de mutación ayudan a descubrir los problemas en los datos de prueba.

Desventajas

A continuación se presentan algunas de las desventajas de las pruebas de mutación:

  1. En las pruebas de mutación, se crean y prueban varios mutantes del código contra el conjunto de pruebas original y, por lo tanto, consume mucho tiempo mientras se realiza solo la prueba de la Unidad de una sola característica / módulo de una aplicación.
  2. Como se mencionó anteriormente, todos los mutantes se prueban contra el conjunto original, por lo que habría una gran cantidad de casos de prueba que deben ejecutarse y, por lo tanto, esto no se puede realizar sin una herramienta de automatización que es costosa y puede obstaculizar el presupuesto del proyecto.
  3. Los mutantes complejos creados del código original pueden generar confusión y errores en el código original.

Conclusión

La explicación anterior define claramente qué es la prueba de mutación y su importancia en el campo de prueba de una aplicación. Si queremos realizar pruebas exhaustivas de una aplicación con los escenarios de prueba de máxima cobertura de código, las pruebas de mutación juegan un papel crucial.

Artículos recomendados

Esta es una guía para las pruebas de mutación. Aquí discutimos qué es la prueba de mutación? y los tipos de pruebas de mutación junto con las ventajas y desventajas. También puede consultar nuestros otros artículos sugeridos para obtener más información.

  1. ¿Qué es reaccionar?
  2. Pruebas negativas
  3. Prueba de aplicación móvil
  4. Estándar de cifrado avanzado
  5. Cobertura de código vs Cobertura de prueba | Las 4 principales diferencias para aprender
  6. Herramientas de cobertura de código | Las 6 principales herramientas de cobertura de códigos