Mutacijos testavimas programinės įrangos testavime: mutantų rezultatas ir Analizės pavyzdys

Mutacijos tyrimas

„Mutation Testing“ yra programinės įrangos testavimo tipas, kai tam tikri šaltinio kodo teiginiai yra keičiami / mutuojami siekiant patikrinti, ar bandymo atvejais pavyksta rasti klaidų šaltinio kode. Mutacijų testavimo tikslas yra užtikrinti patikimų bandymų atvejų kokybę, kad jis sugestų mutavusį šaltinio kodą.

Pakeitimai, atlikti mutantinėje programoje, turėtų būti labai maži, kad tai neturėtų įtakos bendram programos tikslui. Mutacijos testavimas taip pat vadinamas gedimais paremta testavimo strategija, nes tai reiškia programos gedimo sukūrimą, ir tai yra baltos dėžės testavimo rūšis, kuri daugiausia naudojama vienetų testavimui.

Iš pradžių mutacija buvo pasiūlyta 1971 m., Tačiau dėl didelių išlaidų prarado įkarštį. Vėlgi, jis vėl pakėlė garą ir yra plačiai naudojamas tokioms kalboms kaip „Java“ ir XML.

Šioje pamokoje sužinosite

  • Kas yra mutacijos testavimas?
  • Kaip atlikti mutacijos testavimą?
  • Kaip sukurti mutantines programas?
  • Ką pakeisti „Mutant“ programoje?
  • Mutacijos tyrimo tipai
  • Mutacijos balas:
  • Mutacijos tyrimo privalumai:
  • Mutacijos testavimo trūkumai:

Kaip atlikti mutacijos testavimą?

Toliau pateikiami mutacijos testavimo (mutacijos analizės) etapai:

1 žingsnis : Klaidos įvedamos į programos šaltinio kodą, sukuriant daugybę versijų, vadinamų mutantais. Kiekviename mutante turėtų būti vienas gedimas, kurio tikslas - sukelti mutantinės versijos gedimą, o tai rodo testų efektyvumą.

2 žingsnis : Testiniai atvejai taikomi pradinei programai ir mutantų programai. Bandomasis atvejis turėtų būti tinkamas ir jis yra pritaikytas norint nustatyti programos gedimus.

3 žingsnis : palyginkite originalios ir mutantiškos programos rezultatus.

4 žingsnis : Jei pradinė programa ir mutantų programos sukuria skirtingą išėjimą, tada tas mutantas yra užmuštas bandymo atveju. Taigi bandymo atvejis yra pakankamai geras, kad būtų galima nustatyti pradinės ir mutantinės programos pokyčius.

5 žingsnis : Jei pradinė programa ir mutantų programa sukuria tą patį išėjimą, „Mutant“ yra gyvas. Tokiais atvejais reikia sukurti efektyvesnius tyrimo atvejus, kurie užmuštų visus mutantus.

Kaip sukurti mutantines programas?

Mutacija yra ne kas kita, kaip vienas sintaksinis programos teiginio pakeitimas. Kiekviena mutantų programa turi skirtis nuo pradinės programos viena mutacija.

Originali programa Mutantų programa
Jei (x> y)
Spausdinti „Sveiki“
Kita
spausdinti „Sveiki“
Jei ( x )Spausdinti „Sveiki“
Kita
spausdinti „Sveiki“

Ką pakeisti „Mutant“ programoje?

Yra keletas būdų, kuriuos galima naudoti mutantinėms programoms generuoti. Pažvelkime į juos

Operandų keitimo operatoriai Išraiškos modifikavimo operatoriai Pareiškimo modifikavimo operatoriai
Operandą pakeiskite kitu operandu (x su y arba y su x) arba pastoviąja verte. Pakeiskite operatorių arba įterpkite naujus operatorius į programos teiginį. Programiniai teiginiai modifikuojami kuriant mutantines programas.
Pavyzdys -
jei (x> y) pakeiskite x ir y reikšmes,
jei (5> y) pakeiskite x konstanta 5
Pavyzdys-
If (x == y)
Mes galime pakeisti == į> = ir turėti mutantinę programą kaip
If (x> = y) ir įterpti ++ į teiginį
If (x == ++ y)
Pavyzdys -
ištrinkite kitą „if-else“ sakinio dalį
Ištrinkite visą „if-else“ sakinį, kad patikrintumėte, kaip programa elgiasi.
Kai kurie pavyzdiniai mutacijos operatoriai:
  • GOTO etikečių keitimas
  • Grąžinimo ataskaitos pakeitimas
  • Pareiškimas ištrintas
  • Vienkartinis operatoriaus įterpimas („Like“ ir „++“)
  • Loginės jungties keitimas
  • Palyginamas masyvo pavadinimo pakeitimas
  • Kitos „if-else“ sakinio dalies pašalinimas
  • Operatorių pridėjimas arba pakeitimas
  • Pareiškimo pakeitimas keičiant duomenis
  • Kintamųjų duomenų keitimas
  • Duomenų tipų modifikavimas programoje

Mutacijos testavimo automatizavimas:

Mutacijos testavimas yra labai daug laiko reikalaujantis ir sudėtingas rankiniu būdu. Norint pagreitinti procesą, patartina ieškoti automatikos įrankių. Automatikos įrankiai taip pat sumažina bandymų kainą.

Galimų įrankių sąrašas -

  • Strykeris
  • GPM testavimas

Mutacijos tyrimo tipai

Programinės įrangos inžinerijoje mutacijų testavimą galima būtų iš esmės suskirstyti į 3 tipus - teiginių mutacija, sprendimo mutacija ir vertės mutacija.

  1. Pareiškimo mutacija - kūrėjas iškirto ir įklijavo kodo dalį, kurios rezultatas gali būti kai kurių eilučių pašalinimas
  2. Reikšmės mutacija - pakeičiamos pirminių parametrų vertės
  3. Sprendimo mutacija - kontrolės teiginiai turi būti pakeisti

Mutacijos balas:

Mutacijos balas apibrėžiamas kaip nužudytų mutantų procentas nuo viso mutantų skaičiaus.

  • Mutacijos balas = (nužudyti mutantai / bendras mutantų skaičius) * 100

Bandymų atvejai yra pakankami mutacijai, jei balas yra 100%. Eksperimentiniai rezultatai parodė, kad mutacijų testavimas yra veiksmingas būdas įvertinti bandymų atvejų tinkamumą. Tačiau pagrindinis trūkumas yra tas, kad didelės mutantų generavimo ir kiekvieno bandymo atvejo vykdymo pagal tą mutantų programą išlaidos yra didelės.

Mutacijos tyrimo privalumai:

Toliau pateikiami mutacijos testavimo pranašumai:

  • Tai galingas būdas pasiekti aukštą šaltinio programos aprėptį.
  • Šis bandymas gali išsamiai išbandyti mutantų programą.
  • Mutacijos testavimas atneša gerą klaidų aptikimo lygį programinės įrangos kūrėjui.
  • Šis metodas atskleidžia šaltinio kodo neaiškumus ir gali aptikti visus programos gedimus.
  • Klientams šis testavimas yra naudingas, nes jie gauna patikimiausią ir stabiliausią sistemą.

Mutacijos testavimo trūkumai:

Kita vertus, šie „Mutant“ bandymų trūkumai:

  • Mutacijos testavimas yra labai brangus ir daug laiko reikalaujantis, nes yra daugybė mutantų programų, kurias reikia sukurti.
  • Kadangi tai užima daug laiko, teisinga sakyti, kad šio testavimo negalima atlikti be automatikos įrankio.
  • Kiekvienoje mutacijoje bus toks pat bandymų atvejų skaičius, kaip ir pradinėje programoje. Taigi, gali reikėti išbandyti daugybę mutantų programų pagal originalų testų rinkinį.
  • Kadangi šis metodas apima šaltinio kodo pakeitimus, jis visiškai netaikomas „Black Box“ bandymams.

Išvada:

Ar norite išsamiai išbandyti savo programą? Atsakymas yra mutacijos tyrimas. Tai yra išsamiausia programos testavimo technika. Tai metodas, kuriuo tikrinamas testavimo programos efektyvumas ir tikslumas, siekiant nustatyti sistemos gedimus ar klaidas.

Įdomios straipsniai...