Mis on mutatsiooni testimine? (Näide)

Mis on mutatsioonide testimine?

Mutatsiooni testimine on tarkvara testimise tüüp, mille käigus teatud lähtekoodi lauseid muudetakse/muteeritakse, et kontrollida, kas testjuhtumid suudavad leida lähtekoodis vigu. Mutatsioonitestimise eesmärk on tagada testjuhtumite kvaliteet robustsuse mõttes, et see ei peaks muteerunud lähtekoodiga hakkama saama.

Mutantprogrammis tehtud muudatused tuleks hoida äärmiselt väikesed, et need ei mõjutaks programmi üldist eesmärki. Mutatsioonitestimist nimetatakse ka veapõhiseks testimisstrateegiaks, kuna see hõlmab programmis vea tekitamist ja see on teatud tüüpi Valge Box Testimine mida kasutatakse peamiselt Üksuse testimine.

Mutatsiooni kavandati algselt 1971. aastal, kuid see kaotas sellega kaasnevate suurte kulude tõttu indu. Nüüd on see taas hoogu võtnud ja seda kasutatakse laialdaselt sellistes keeltes nagu Java ja XML.

Kuidas mutatsioonitesti läbi viia?

Käivitage mutatsioonide testimine

Mutatsioonide testimise (mutatsioonianalüüsi) läbiviimiseks on toodud järgmised sammud:

Samm 1: vead sisestatakse programmi lähtekoodi, luues palju versioone, mida nimetatakse mutantideks. Iga mutant peaks sisaldama ühte viga ja eesmärk on põhjustada mutandi versiooni ebaõnnestumise, mis näitab katsejuhtumite tõhusust.

Samm 2: Testjuhtumeid rakendatakse nii algprogrammile kui ka mutantsele programmile. A Testjuhtum peaks olema piisav ja seda kohandatakse programmis esinevate vigade tuvastamiseks.

Samm 3: võrrelge originaal- ja mutantse programmi tulemusi.

Samm 4: kui algne programm ja mutantprogrammid genereerivad erineva väljundi, siis see mutant tapetakse testjuhtumiga. Seega on testjuhtum piisavalt hea, et tuvastada muutused algse ja mutantse programmi vahel.

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

Kuidas luua mutantprogramme?

Looge mutantprogramme

Mutatsioon pole midagi muud kui üksainus süntaktiline muudatus, mis tehakse programmi avalduses. Iga mutantne programm peaks erinema algsest programmist ühe mutatsiooni võrra.

Algne programm Mutantide programm
Kui (x>y)

Trüki "Tere"

Teine

Trüki "Tere"

Kui(x<y)

Trüki "Tere"

Teine

Trüki "Tere"

Mida mutantprogrammis muuta?

Mutantsete programmide genereerimiseks saab kasutada mitmeid tehnikaid. Vaatame neid

Operand asendusoperaatorid Väljendi muutmine Operatorse Avalduse muutmine Operatorse
Asendage operaand mõne teise operandiga (x y-ga või y x-ga) või konstantse väärtusega. Programmi avalduses asendage operaator või lisage uusi operaatoreid. Programmilisi avaldusi muudetakse mutantsete programmide loomiseks.
Näide-

Kui(x>y) asenda x ja y väärtused

Kui(5>y) asenda x konstandiga 5

Näide-

Kui(x==y)

Võime asendada == väärtusega >= ja kasutada mutantprogrammi as

If(x>=y) ja ++ lisamine lausesse

Kui(x==++y)

Näide-

Kustutage if-else lausest else osa

Programmi käitumise kontrollimiseks kustutage kogu if-else lause

Mõned näidismutatsioonioperaatorid:

  • GOTO sildi asendamine
  • Tagastusavalduse asendamine
  • Avalduse kustutamine
  • Unaarne operaatori sisestamine (nagu – ja ++)
  • Loogiline pistiku vahetus
  • Võrreldav massiivi nime asendamine
  • Muu osa eemaldamine if-else lausest
  • Operaatorite lisamine või asendamine
  • Väljavõtte asendamine andmete muutmisega
  • Muutujate andmete muutmine
  • Andmetüüpide muutmine programmis

Mutatsioonide testimise automatiseerimine

Mutatsioonide testimine on äärmiselt aeganõudev ja käsitsi teostamine keeruline. Protsessi kiirendamiseks on soovitatav kasutada automatiseerimistööriistu. Automatiseerimistööriistad vähendavad ka testimise kulusid.

Saadaolevate tööriistade loend -

Mutatsiooni testimise tüübid

In Tarkvaraarendus, Mutatsioonitestimise võib põhimõtteliselt liigitada kolme tüüpi – lausemutatsioon, otsustusmutatsioon ja väärtusmutatsioon.

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

Mutatsiooni skoor

Mutatsiooniskoor on määratletud kui tapetud mutantide protsent mutantide koguarvust.

  • Mutatsiooni skoor = (tapetud mutandid / mutantide koguarv) * 100

Mutatsiooni skoor

Testijuhtumid on mutatsiooni jaoks piisavad, kui skoor on 100%. Katsetulemused on näidanud, et mutatsioonide testimine on tõhus meetod testjuhtumite adekvaatsuse mõõtmiseks. Kuid peamiseks puuduseks on mutantide genereerimise ja iga katsejuhtumi sooritamise kõrge hind selle mutantse programmi vastu.

Mutatsioonitesti eelised

Mutatsioonitesti eelised on järgmised:

  • See on võimas lähenemisviis lähteprogrammi suure katvuse saavutamiseks.
  • See testimine on võimeline mutantprogrammi igakülgselt testima.
  • Mutatsioonitestimine toob tarkvaraarendajale hea veatuvastuse taseme.
  • See meetod paljastab lähtekoodi ebaselgused ja suudab tuvastada kõik programmi vead.
  • Kliendid saavad sellest testimisest kasu, kuna nad saavad kõige usaldusväärsema ja stabiilsema süsteemi.

Mutatsioonitesti puudused

Teisest küljest on mutantide testimise puudused järgmised:

  • Mutatsioonide testimine on äärmiselt kulukas ja aeganõudev, kuna genereerida tuleb palju mutantseid programme.
  • Kuna see on aeganõudev, on õiglane öelda, et seda testimist ei saa teha ilma automatiseerimisvahendita.
  • Igal mutatsioonil on sama arv testjuhtumeid kui algsel programmil. Seega võib olla vaja testida suurt hulka mutantseid programme algse testikomplekti suhtes.
  • Kuna see meetod hõlmab lähtekoodi muudatusi, ei ole see selle jaoks üldse rakendatav Must Box Testimine.

Järeldus

Kas soovite oma rakenduse põhjalikku testimist? Vastus on mutatsioonide testimine. See on kõige põhjalikum tehnika programmi testimiseks. See on meetod, mis kontrollib testimisprogrammi tõhusust ja täpsust, et tuvastada süsteemi tõrkeid või vigu.

Võta see postitus kokku järgmiselt: