Mutaatiotestaus ohjelmistotestauksessa: Mutanttipisteet & Analyysiesimerkki

Sisällysluettelo:

Anonim

Mutaatiotestaus

Mutaatiotestaus on ohjelmistotestityyppi, jossa tiettyjä lähdekoodilauseita muutetaan / muunnetaan tarkistamaan, pystyvätkö testitapauksissa löytämään virheitä lähdekoodista. Mutaatiotestauksen tavoitteena on varmistaa testitapausten laatu kestävyyden kannalta, että se ei onnistu mutatoidussa lähdekoodissa.

Mutanttiohjelmassa tehtävät muutokset tulisi pitää erittäin pieninä, jotta ne eivät vaikuta ohjelman kokonaistavoitteeseen. Mutaatiotestausta kutsutaan myös vika-pohjaiseksi testausstrategiaksi, koska siihen liittyy vian luominen ohjelmaan, ja se on eräänlainen White Box -testaus, jota käytetään pääasiassa yksikötestaukseen.

Mutaatiota ehdotettiin alun perin vuonna 1971, mutta se menetti kiihkeyden korkeiden kustannusten vuoksi. Nyt taas kerran se on hakenut höyryä ja sitä käytetään laajalti kielillä, kuten Java ja XML.

Tässä opetusohjelmassa opit-

  • Mikä on mutaatiotestaus?
  • Kuinka suorittaa mutaatiotestaus?
  • Kuinka luoda mutanttiohjelmia?
  • Mitä muuttaa mutanttiohjelmassa?
  • Mutaatiotestauksen tyypit
  • Mutaatiopisteet:
  • Mutaatiotestauksen edut:
  • Mutaatiotestauksen haitat:

Kuinka suorittaa mutaatiotestaus?

Seuraavat vaiheet suoritetaan mutaatiotestaus (mutaatioanalyysi):

Vaihe 1 : Viat lisätään ohjelman lähdekoodiin luomalla monia versioita, joita kutsutaan mutanteiksi. Jokaisessa mutantissa tulisi olla yksi vika, ja tavoitteena on saada mutanttiversio epäonnistumaan, mikä osoittaa testitapausten tehokkuuden.

Vaihe 2 : Testitapauksia sovelletaan alkuperäiseen ohjelmaan ja myös mutanttiohjelmaan. Testitapauksen tulisi olla riittävä, ja sitä on mukautettu havaitsemaan ohjelman viat.

Vaihe 3 : Vertaa alkuperäisen ja mutanttiohjelman tuloksia.

Vaihe 4 : Jos alkuperäinen ohjelma ja mutanttiohjelmat tuottavat erilaisen ulostulon, testitapaus tappaa kyseisen mutantin. Siksi testitapaus on riittävän hyvä havaitsemaan muutoksen alkuperäisen ja mutanttiohjelman välillä.

Vaihe 5 : Jos alkuperäinen ohjelma ja mutanttiohjelma tuottavat saman tuloksen, Mutant pidetään hengissä. Tällaisissa tapauksissa on luotava tehokkaampia testitapauksia, jotka tappavat kaikki mutantit.

Kuinka luoda mutanttiohjelmia?

Mutaatio ei ole muuta kuin yksittäinen syntaktinen muutos, joka tehdään ohjelmalauseeseen. Jokaisen mutanttiohjelman tulisi poiketa alkuperäisestä ohjelmasta yhdellä mutaatiolla.

Alkuperäinen ohjelma Mutanttiohjelma
Jos (x> y)
Tulosta "Hei"
Muu
Tulosta "Hei"
Jos ( x )Tulosta "Hei"
Muu
Tulosta "Hei"

Mitä muuttaa mutanttiohjelmassa?

On olemassa useita tekniikoita, joita voidaan käyttää mutanttiohjelmien tuottamiseen. Katsotaanpa niitä

Operandien korvaavat operaattorit Lausekkeen muokkausoperaattorit Lausekemuutosoperaattorit
Korvaa operandi toisella operandilla (x y: llä tai y x: llä) tai vakioarvolla. Korvaa operaattori tai lisää uusia operaattoreita ohjelmalausekkeeseen. Ohjelmallisia lauseita muokataan mutanttiohjelmien luomiseksi.
Esimerkki -
Jos (x> y) korvaa x: n ja y-arvot,
jos If (5> y) korvaa x vakiolla 5
Esimerkki-
Jos (x == y)
Voimme korvata == osaksi> = ja saada mutanttiohjelman Ifiksi
(x> = y) ja lisäämällä ++ lauseeseen
If (x == ++ y)
Esimerkki-
Poista if-else-käskyn muu osa
Poista koko if-else-käsky tarkistaaksesi, miten ohjelma käyttäytyy
Jotkut esimerkkimutaatio-operaattoreista:
  • GOTO-tarran vaihto
  • Palautuslausekkeen korvaaminen
  • Lausunnon poisto
  • Yksittäisen operaattorin lisäys (kuten - ja ++)
  • Loogisen liittimen vaihto
  • Vertailukelpoinen taulukon nimen korvaaminen
  • If-else-lauseen muun osan poistaminen
  • Operaattoreiden lisääminen tai korvaaminen
  • Lausekkeen korvaaminen muuttamalla tietoja
  • Muuttujien tietojen muuttaminen
  • Tietotyyppien muokkaus ohjelmassa

Mutaatiotestauksen automatisointi:

Mutaatiotestaus on erittäin aikaa vievää ja monimutkainen suorittaa manuaalisesti. Prosessin nopeuttamiseksi on suositeltavaa käyttää automatisointityökaluja. Automaatiotyökalut alentavat myös testauskustannuksia.

Luettelo käytettävissä olevista työkaluista -

  • Stryker
  • PIT-testaus

Mutaatiotestauksen tyypit

Ohjelmistotuotannossa mutaatiotestaus voidaan luokitella periaatteessa kolmeen tyyppiin - lausemutaatio, päätösmutaatio ja arvomutaatio.

  1. Statement Mutation - kehittäjä leikkaa ja liittää osan koodista, jonka tulos voi olla joidenkin rivien poistaminen
  2. Arvomutaatio - ensisijaisten parametrien arvoja muutetaan
  3. Päätösmutaatio - kontrollilausekkeita on muutettava

Mutaatiopisteet:

Mutaatiopisteet määritetään tapettujen mutanttien prosenttiosuutena mutanttien kokonaismäärästä.

  • Mutaatiopisteet = (Tappuneet mutantit / Mutanttien kokonaismäärä) * 100

Testitapaukset ovat riittäviä mutaatioita, jos pisteet ovat 100%. Kokeelliset tulokset ovat osoittaneet, että mutaatiotestaus on tehokas tapa mitata testitapausten riittävyyttä. Mutta tärkein haittapuoli on se, että mutanttien generoinnista ja jokaisen testitapauksen suorittamisesta korkeita kustannuksia kyseistä mutanttiohjelmaa vastaan.

Mutaatiotestauksen edut:

Seuraavat ovat mutaatiotestauksen edut:

  • Se on tehokas tapa saavuttaa lähdeohjelman kattavuus.
  • Tämä testaus pystyy testaamaan mutanttiohjelman kattavasti.
  • Mutaatiotestaus tuo hyvän virhetunnistuksen ohjelmistokehittäjälle.
  • Tämä menetelmä paljastaa lähdekoodin epäselvyydet ja pystyy havaitsemaan kaikki ohjelman viat.
  • Asiakkaat hyötyvät tästä testauksesta hankkimalla luotettavimman ja vakaan järjestelmän.

Mutaatiotestauksen haitat:

Toisaalta seuraavat ovat mutanttitestauksen haittoja:

  • Mutaatiotestaus on erittäin kallista ja aikaa vievää, koska on olemassa monia mutanttiohjelmia, jotka on luotava.
  • Koska se vie aikaa, on oikeudenmukaista sanoa, että tätä testausta ei voida tehdä ilman automaatiotyökalua.
  • Jokaisella mutaatiolla on sama määrä testitapauksia kuin alkuperäisessä ohjelmassa. Joten suuri määrä mutanttiohjelmia voidaan joutua testaamaan alkuperäisen testipaketin kanssa.
  • Koska tähän menetelmään liittyy lähdekoodimuutoksia, sitä ei voida soveltaa lainkaan mustan laatikon testaukseen.

Päätelmä:

Haluatko kattavan testauksen sovelluksellesi? Vastaus on mutaatiotestaus. Se on kattavin tekniikka testata ohjelmaa. Tämä on menetelmä, jolla tarkistetaan testausohjelman tehokkuus ja tarkkuus järjestelmän vikojen tai virheiden havaitsemiseksi.