Test di mutazione - Vantaggi e svantaggi del test di mutazione

Sommario:

Anonim

Che cos'è il test di mutazione?

Poiché la parola "mutazione" in generale significa "cambiamento", lo stesso vale per il test di mutazione. Il test di mutazione è il tipo di test del software che viene eseguito modificando o mutando il pezzo di codice al fine di verificare / verificare che i casi di test siano in grado di rilevare errori / difetti. I test di mutazione rientrano nei test della White Box e vengono sostanzialmente eseguiti durante l'esecuzione dei test delle unità di un particolare modulo di un'applicazione. Le modifiche apportate al codice sorgente / principale vengono apportate in piccola parte in modo da non comprometterne l'obiettivo generale. Questa tecnica è anche nota come tecnica di rilevamento dei guasti poiché viene eseguita allo scopo di individuare la debolezza dei casi di test creando un errore nel codice originale.

Prima di eseguire qualsiasi test, è molto importante comprendere l'obiettivo alla base. L'obiettivo principale dei test di mutazione è quello di trovare l'efficacia dei casi di test sviluppati, che dovrebbero essere in grado di rilevare anche le piccole modifiche apportate nel codice. Viene fatto per trovare i problemi nella suite di test e i dati di test utilizzati durante l'esecuzione del test di qualsiasi applicazione software. Vengono creati più mutanti o versioni del codice originale e ciascuno di essi viene testato rispetto ai casi di test originali. Se i risultati del test case rimangono gli stessi del codice originale, allora sia il codice che i casi di test vengono ricontrollati perché il codice non è stato eseguito o la suite di test non è in grado di trovare il codice mutante.

Tipi di test di mutazione

Esistono sostanzialmente 3 tipi di test di mutazione che vengono eseguiti per creare mutanti del codice originale:

1. Mutazione del valore

Come indica il nome, nella mutazione Valore, il valore delle costanti, i parametri passati nei metodi, i valori utilizzati nei cicli vengono modificati per creare un programma mutante. Il valore più grande viene modificato in uno più piccolo o viceversa. Fondamentalmente i valori che sono già definiti nel programma vengono modificati per eseguire la mutazione del valore.

Codice originale:

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

Codice mutante:

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

2. Mutazione decisionale

In Decision Mutation, gli operatori logici e aritmetici utilizzati nel programma vengono modificati, il che modifica il processo decisionale complessivo nel programma e i relativi risultati. Ad esempio, determinate istruzioni "if" vengono eseguite solo quando (a> b). Nel codice mutante, questo operatore viene modificato in (a <b), il che modifica il processo decisionale complessivo nel codice.

Codice originale:

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

Codice mutante:

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

3. Mutazione dell'istruzione

In Statement Mutation, le modifiche vengono apportate alle dichiarazioni di codice complete per creare un programma mutante. Le modifiche nell'istruzione possono essere la cancellazione dell'intera istruzione, la modifica dell'ordine delle istruzioni nel codice, la copia e incolla delle istruzioni in un'altra posizione nel codice, la ripetizione o la duplicazione delle poche istruzioni nel codice originale.

Codice originale:

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

Codice mutante:

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

Vantaggi e svantaggi del test di mutazione

Vantaggi e svantaggi del test di mutazione sono riportati di seguito:

vantaggi

Di seguito sono riportati alcuni dei vantaggi del test di mutazione:

  1. Uno dei maggiori vantaggi del test di mutazione è che aiuta a trovare i difetti nascosti e la massima copertura del codice al fine di identificare la parte del codice che non è stata testata a fondo dai casi di test originali.
  2. I test di mutazione aiutano a trovare la qualità dei casi di test utilizzati per testare il software e fornire un feedback autentico ai tester sul processo di test e sulla qualità del test.
  3. Aiuta a trovare i bug di alta qualità che non sono facili da trovare con i normali test.
  4. Il test di mutazione a volte rivela difetti nascosti come ambiguità del codice, valori errati delle variabili, ecc. Nel codice nelle prime fasi del test del software, il che è molto utile.
  5. A volte, sia il codice che il test case sono corretti, ma il problema è stato causato dai dati del test. Il test di mutazione aiuta a scoprire i problemi nei dati di test.

svantaggi

Di seguito sono riportati alcuni degli svantaggi del test di mutazione:

  1. Nel test di mutazione, vari mutanti del codice vengono creati e testati rispetto alla suite di test originale e quindi richiede molto tempo durante l'esecuzione del solo test unitario di una singola caratteristica / modulo di un'applicazione.
  2. Come accennato in precedenza, tutti i mutanti sono testati rispetto alla suite originale, quindi ci sarebbe un gran numero di casi di test che devono essere eseguiti e quindi questo non può essere eseguito senza uno strumento di automazione che è costoso e può ostacolare il budget del progetto.
  3. I mutanti complessi creati con il codice originale possono causare confusione ed errori nel codice originale.

Conclusione

La spiegazione di cui sopra definisce chiaramente cos'è il test di mutazione e la sua importanza nel campo del test di un'applicazione. Se vogliamo testare e esaurire un'applicazione con gli scenari di test con la massima copertura del codice, i test di mutazione svolgono un ruolo cruciale.

Articoli consigliati

Questa è una guida ai test di mutazione. Qui discutiamo cos'è il test di mutazione? e i tipi di test di mutazione insieme a vantaggi e svantaggi. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più

  1. Che cos'è React?
  2. Test negativi
  3. Test dell'applicazione mobile
  4. Standard di crittografia avanzato
  5. Copertura del codice vs copertura del test | Le 4 principali differenze da imparare
  6. Strumenti di copertura del codice | I 6 migliori strumenti di copertura del codice