Mutatsioonide testimine tarkvaratestimisel: mutantskoor & Analüüsi näide

Lang L: none (table-of-contents):

Anonim

Mutatsiooni testimine

Mutatsioonide testimine on tarkvara testimise tüüp, mille käigus muudetakse / muteeritakse teatud lähtekoodi väiteid, et kontrollida, kas testjuhtumid suudavad leida lähtekoodist vigu. Mutatsioonide testimise eesmärk on tagada testjuhtumite kvaliteet usaldusväärsuse seisukohalt, et see peaks muteerunud lähtekoodi nurjuma.

Mutantses programmis tehtud muudatused tuleks hoida üliväikestena, et need ei mõjutaks programmi üldeesmärki. Mutatsioonide testimist nimetatakse ka tõrgepõhiseks testimisstrateegiaks, kuna see hõlmab programmi tõrke loomist ja see on teatud tüüpi valge kasti testimine, mida kasutatakse peamiselt üksuste testimiseks.

Algselt pakuti mutatsiooni välja 1971. aastal, kuid kaotas sellega seotud kulude tõttu tulisust. Nüüd on see taas auru kogunud ja seda kasutatakse laialdaselt selliste keelte jaoks nagu Java ja XML.

Selles õpetuses saate teada

  • Mis on mutatsioonide testimine?
  • Kuidas teostada mutatsioonide testimist?
  • Kuidas luua mutantprogramme?
  • Mida muuta mutantprogrammis?
  • Mutatsioonitestide tüübid
  • Mutatsiooniskoor:
  • Mutatsioonitestide eelised:
  • Mutatsioonitestide puudused:

Kuidas teostada mutatsioonide testimist?

Järgnevad on mutatsiooni testimise (mutatsioonianalüüs) teostamise etapid:

1. samm : vead sisestatakse programmi lähtekoodi, luues palju versioone, mida nimetatakse mutantideks. Iga mutant peaks sisaldama ühte viga ja eesmärk on mutantversiooni ebaõnnestumine, mis näitab testjuhtumite tõhusust.

2. samm : testjuhtumeid rakendatakse algsele programmile ja ka mutantprogrammile. Testjuhtum peaks olema piisav ja see on programmi vigade tuvastamiseks kohandatud.

3. samm : võrrelge algse ja mutantprogrammi tulemusi.

4. samm : kui algne programm ja mutantprogrammid genereerivad erineva väljundi, siis tapab see mutant testjuhtumi abil. Seega on testjuhtum piisavalt hea, et tuvastada algse ja mutantprogrammi vaheline muutus.

5. samm : kui algne programm ja mutantprogramm genereerivad sama väljundi, hoitakse Mutanti elus. Sellistel juhtudel tuleb luua tõhusamad testjuhtumid, mis tapavad kõik mutandid.

Kuidas luua mutantprogramme?

Mutatsioon ei ole midagi muud kui üks süntaktiline muudatus, mis tehakse programmi avalduses. Iga mutantprogramm peaks algsest programmist erinema ühe mutatsiooni poolest.

Algne programm Mutantprogramm
Kui (x> y)
print "tere"
Else
Print "Hi"
Kui ( x )print "tere"
Else
Print "Hi"

Mida muuta mutantprogrammis?

Mutantprogrammide genereerimiseks võib kasutada mitmeid tehnikaid. Vaatame neid

Operandi asendusoperaatorid Avaldise muutmise operaatorid Avalduse muutmine Operaatorid
Asendage operand teise operandiga (x y-ga või y x-ga) või konstantse väärtusega. Asendage operaator või sisestage programmiväljundisse uued operaatorid. Mutantsete programmide loomiseks on programmeeritud avaldusi muudetud.
Näide -
kui (x> y) asendab x ja y väärtused
Kui (5> y) asenda x konstandiga 5
Näide-
If (x == y)
Me võime asendada == asendisse> = ja mutantprogrammi
sisestada kui If (x> = y) ja sisestada
lausesse ++ lausesse If (x == ++ y)
Näide -
kustutage lause if-else muu osa
Kustutage kogu lause if-else, et kontrollida, kuidas programm käitub.
Mõned näidismutatsioonioperaatorid:
  • GOTO sildi asendamine
  • Tagastusväljavõtte asendamine
  • Avalduse kustutamine
  • Unaarne operaatori sisestamine (Like - ja ++)
  • Loogilise pistiku asendamine
  • Võrreldav massiivi nime asendamine
  • Ülejäänud osa eemaldamine if-else avaldusest
  • Operaatorite lisamine või asendamine
  • Avalduse asendamine andmete muutmisega
  • Muutujate andmete muutmine
  • Andmetüüpide muutmine programmis

Mutatsioonitestide automatiseerimine:

Mutatsioonitestimine on äärmiselt aeganõudev ja käsitsi käivitamine keeruline. Protsessi kiirendamiseks on soovitatav otsida automatiseerimisvahendeid. Automatiseerimisvahendid vähendavad ka testimise kulusid.

Saadaval olevate tööriistade loend -

  • Stryker
  • PIT testimine

Mutatsioonitestide tüübid

Tarkvaratehnikas saab mutatsioonide testimise põhimõtteliselt jaotada kolme tüüpi - avaldiste mutatsioon, otsustusmutatsioon ja väärtusmutatsioon.

  1. Avalduse mutatsioon - arendaja lõikab ja kleebib osa koodist, mille tulemuseks võib olla mõne rea eemaldamine
  2. Väärtuste mutatsioon - esmaste parameetrite väärtusi muudetakse
  3. Otsuse mutatsioon - kontrolllauseid tuleb muuta

Mutatsiooniskoor:

Mutatsiooniskoor on määratletud kui surmatud mutantide protsent koos mutantide koguarvuga.

  • Mutatsiooniskoor = (surmatud mutandid / mutantide koguarv) * 100

Testjuhud on mutatsiooniga piisavad, kui skoor on 100%. Katsetulemused on näidanud, et mutatsioonide testimine on efektiivne lähenemisviis testijuhtumite adekvaatsuse mõõtmiseks. Kuid peamine puudus on see, et mutantide genereerimise ja iga testjuhtumi selle mutantprogrammi täitmise kõrge hind on kõrge.

Mutatsioonitestide eelised:

Mutatsioonitestide eelised on järgmised:

  • See on võimas lähenemisviis lähtekoodiprogrammi kõrge kajastamise saavutamiseks.
  • See testimine võimaldab mutantset programmi igakülgselt testida.
  • Mutatsioonitestimine toob tarkvaraarendajale hea taseme vigade avastamise.
  • See meetod paljastab lähtekoodi ebaselgust ja suudab tuvastada kõik programmi vead.
  • Kliendid saavad sellest testimisest kasu kõige usaldusväärsema ja stabiilsema süsteemi saamise kaudu.

Mutatsioonitestide puudused:

Teiselt poolt on mutantide testimise puudused järgmised:

  • Mutatsioonide testimine on äärmiselt kulukas ja aeganõudev, kuna genereerida tuleb palju mutantprogramme.
  • Kuna see on aeganõudev, on õiglane öelda, et seda testimist ei saa teha ilma automatiseerimisvahendita.
  • Igal mutatsioonil on sama arv testijuhtumeid kui algsel programmil. Nii et võib-olla tuleb algse testikomplekti alusel testida paljusid mutantprogramme.
  • Kuna see meetod hõlmab lähtekoodi muutusi, pole see musta kasti testimisel üldse kohaldatav.

Järeldus:

Kas soovite oma rakendust põhjalikult testida? Vastus on mutatsioonide testimine. Programmi testimine on kõige põhjalikum tehnika. See on meetod, mis kontrollib testimisprogrammi tõhusust ja täpsust süsteemi vigade või vigade tuvastamiseks.