Testarea mutației în testarea software-ului: scor mutant & Exemplu de analiză

Cuprins:

Anonim

Testarea mutației

Testarea mutației este un tip de testare software în care anumite afirmații ale codului sursă sunt modificate / mutate pentru a verifica dacă cazurile de testare pot găsi erori în codul sursă. Scopul testării mutației este de a asigura calitatea cazurilor de testare în ceea ce privește robustețea că ar trebui să nu reușească codul sursă mutat.

Modificările făcute în programul mutant trebuie păstrate extrem de mici, încât nu afectează obiectivul general al programului. Testarea mutației este, de asemenea, numită strategie de testare bazată pe erori, deoarece implică crearea unei erori în program și este un tip de testare a cutiei albe, care este utilizat în principal pentru testarea unitară.

Mutația a fost propusă inițial în 1971, dar și-a pierdut fervoarea din cauza costurilor ridicate implicate. Acum, din nou, a luat abur și este utilizat pe scară largă pentru limbaje precum Java și XML.

În acest tutorial, veți învăța-

  • Ce este testarea mutației?
  • Cum se execută testarea mutației?
  • Cum se creează programe mutante?
  • Ce să schimbăm într-un program mutant?
  • Tipuri de testare a mutațiilor
  • Scorul mutației:
  • Avantajele testării mutațiilor:
  • Dezavantaje ale testării mutației:

Cum se execută testarea mutației?

Următorii pași pentru a executa testarea mutației (analiza mutației):

Pasul 1 : Defecțiunile sunt introduse în codul sursă al programului prin crearea multor versiuni numite mutanți. Fiecare mutant ar trebui să conțină o singură defecțiune, iar scopul este să provoace eșecul versiunii mutante, ceea ce demonstrează eficacitatea cazurilor de testare.

Pasul 2 : Cazurile de testare sunt aplicate programului original și, de asemenea, programului mutant. Un caz de testare ar trebui să fie adecvat și este modificat pentru a detecta defecțiunile într-un program.

Pasul 3 : Comparați rezultatele unui program original și mutant.

Pasul 4 : Dacă programul original și programele mutante generează rezultate diferite, atunci mutantul este ucis de cazul testului. Prin urmare, cazul de testare este suficient de bun pentru a detecta schimbarea dintre programul original și cel mutant.

Pasul 5 : Dacă programul original și programul mutant generează aceeași ieșire, Mutantul este păstrat în viață. În astfel de cazuri, trebuie create cazuri de testare mai eficiente care să omoare toți mutanții.

Cum se creează programe mutante?

O mutație nu este altceva decât o singură schimbare sintactică care se face declarației de program. Fiecare program mutant ar trebui să difere de programul original printr-o singură mutație.

Program original Programul mutant
Dacă (x> y)
Tipăriți „Bună ziua”
Altfel
Imprimați „Bună”
Dacă ( x )Tipăriți „Bună ziua”
Altfel
Imprimați „Bună”

Ce să schimbăm într-un program mutant?

Există mai multe tehnici care ar putea fi utilizate pentru a genera programe mutante. Să le privim

Operatori de înlocuire a operandilor Operatori de modificare a expresiei Operatori de modificare a declarației
Înlocuiți operandul cu un alt operand (x cu y sau y cu x) sau cu valoarea constantă. Înlocuiți un operator sau inserarea de noi operatori într-o declarație de program. Afirmațiile programatice sunt modificate pentru a crea programe mutante.
Exemplu-
Dacă (x> y) înlocuiți valorile x și y
Dacă (5> y) înlocuiți x cu constanta 5
Exemplu-
If (x == y)
Putem înlocui == în> = și avem program mutant ca
If (x> = y) și inserarea ++ în declarația
If (x == ++ y)
Exemplu -
Ștergeți partea else dintr-o instrucțiune if-else
Ștergeți întreaga instrucțiune if-else pentru a verifica cum se comportă un program
Unii dintre operatorii de mutație eșantion:
  • Înlocuirea etichetei GOTO
  • Înlocuirea declarației de returnare
  • Ștergerea declarației
  • Inserarea operatorului unar (Like - și ++)
  • Înlocuirea conectorului logic
  • Înlocuirea comparabilă a numelui matricei
  • Eliminarea părții else din declarația if-else
  • Adăugarea sau înlocuirea operatorilor
  • Înlocuirea declarației prin schimbarea datelor
  • Modificarea datelor pentru variabile
  • Modificarea tipurilor de date din program

Automatizarea testării mutației:

Testarea mutației este extrem de consumatoare de timp și complicată de executat manual. Pentru a accelera procesul, este recomandabil să alegeți instrumente de automatizare. Instrumentele de automatizare reduc și costul testării.

Lista instrumentelor disponibile -

  • Stryker
  • Testarea PIT

Tipuri de testare a mutațiilor

În Ingineria software-ului, testarea mutației ar putea fi clasificată fundamental în 3 tipuri: mutație de declarație, mutație decizională și mutație valorică.

  1. Declarație Mutație - dezvoltatorul tăie și lipeste o parte dintr-un cod al cărui rezultat poate fi eliminarea unor linii
  2. Mutația valorii - valorile parametrilor primari sunt modificate
  3. Mutație decizională - declarațiile de control urmează să fie modificate

Scorul mutației:

Scorul mutației este definit ca procentul de mutanți uciși cu numărul total de mutanți.

  • Scorul mutației = (Mutanți uciși / Numărul total de mutanți) * 100

Testele sunt adecvate pentru mutație dacă scorul este de 100%. Rezultatele experimentale au arătat că testarea mutației este o abordare eficientă pentru măsurarea adecvării cazurilor de testare. Dar, principalul dezavantaj este că costul ridicat al generării mutanților și al executării fiecărui caz de testare împotriva acelui program mutant.

Avantajele testării mutațiilor:

Următoarele sunt avantajele testării mutațiilor:

  • Este o abordare puternică pentru a obține o acoperire ridicată a programului sursă.
  • Această testare este capabilă să testeze în mod cuprinzător programul mutant.
  • Testarea mutației aduce un nivel bun de detectare a erorilor dezvoltatorului de software.
  • Această metodă descoperă ambiguități în codul sursă și are capacitatea de a detecta toate defecțiunile din program.
  • Clienții sunt beneficiați de această testare prin obținerea unui sistem cel mai fiabil și stabil.

Dezavantaje ale testării mutației:

Pe de altă parte, următoarele sunt dezavantajele testării mutante:

  • Testarea mutației este extrem de costisitoare și consumă mult timp, deoarece există multe programe mutante care trebuie generate.
  • Deoarece consumă mult timp, este corect să spunem că această testare nu poate fi făcută fără un instrument de automatizare.
  • Fiecare mutație va avea același număr de cazuri de testare decât cel al programului original. Deci, este posibil ca un număr mare de programe mutante să fie testate în comparație cu suita de testare originală.
  • Deoarece această metodă implică modificări ale codului sursă, nu este deloc aplicabilă pentru testarea Black Box.

Concluzie:

Doriți testarea exhaustivă a aplicației dvs.? Răspunsul este testarea mutației. Este cea mai cuprinzătoare tehnică de testare a unui program. Aceasta este metoda care verifică eficacitatea și acuratețea unui program de testare pentru a detecta defecțiunile sau erorile din sistem.