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 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:
|
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.
- Avalduse mutatsioon - arendaja lõikab ja kleebib osa koodist, mille tulemuseks võib olla mõne rea eemaldamine
- Väärtuste mutatsioon - esmaste parameetrite väärtusi muudetakse
- 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.