Koodin kattavuuden opetusohjelma: haara-, lausunto- ja päätöstestaus

Mikä on koodin kattavuus?

Koodipeitto on mitta, joka kuvaa, missä määrin ohjelman lähdekoodia on testattu. Se on yksi valkoisen laatikon testauksen muoto, joka löytää ohjelman alueet, joita testitapaukset eivät harjoita. Se luo myös joitain testitapauksia kattavuuden lisäämiseksi ja koodin kattavuuden kvantitatiivisen mittarin määrittämiseksi.

Useimmissa tapauksissa koodipeittojärjestelmä kerää tietoa käynnissä olevasta ohjelmasta. Se myös yhdistää sen lähdekooditietoihin ja luo raportin testipaketin koodin kattavuudesta.

Miksi käyttää koodin kattavuustestausta?

Tässä on joitain tärkeimpiä syitä käyttää koodin peittoa:

  • Se auttaa sinua mittaamaan testin toteutuksen tehokkuutta
  • Se tarjoaa kvantitatiivisen mittauksen.
  • Se määrittää, missä määrin lähdekoodia on testattu.

Koodin peittomenetelmät

Seuraavassa on tärkeimmät koodin peittomenetelmät

  • Lausunnon kattavuus
  • Päätöksen kattavuus
  • Sivukonttorin kattavuus
  • Toggle Kattavuus
  • FSM kattavuus

Lausunnon kattavuus

Lausunnon kattavuus on valkoisen laatikon testaustekniikka, jossa kaikki lähdekoodin suoritettavat käskyt suoritetaan vähintään kerran. Sitä käytetään suoritettujen lähdekoodin lauseiden lukumäärän laskemiseen. Statement Coveragen päätarkoitus on kattaa kaikki mahdolliset polut, rivit ja lauseet lähdekoodissa.

Lausunnon kattavuutta käytetään skenaarion johtamiseen testattavan koodin rakenteen perusteella.

Lausunnon kattavuus

In Valkoinen Box Testaus, testaaja keskittyy ohjelmiston toimintaan. Toisin sanoen testaaja keskittyy lähdekoodin sisäiseen toimintaan koskien ohjausvuokaavioita tai vuokaavioita.

Yleensä missä tahansa ohjelmistossa, jos katsomme lähdekoodia, siellä on laaja valikoima elementtejä, kuten operaattoreita, toimintoja, silmukoita, poikkeuksellisia käsittelijöitä jne. Ohjelman syötteen perusteella joitain koodilauseita ei ehkä suoriteta . Lausunnon kattavuuden tavoitteena on kattaa kaikki koodin mahdolliset polut, rivit ja lauseet.

Ymmärretään tämä esimerkin avulla, kuinka lasketaan lausunnon kattavuus.

Skenaario lausunnon kattavuuden laskemiseksi tietylle lähdekoodille. Tässä on kaksi erilaista skenaariota tarkistaaksemme kunkin skenaarion lausuman kattavuuden prosenttiosuuden.

Lähdekoodi:

Prints (int a, int b) {                       ------------  Printsum is a function 
    int result = a+ b; 
    If (result> 0)
    	Print ("Positive", result)
    Else
    	Print ("Negative", result)
    }                                        -----------   End of the source code 

Skenaario 1:

Jos A = 3, B = 9

Lausunnon kattavuus

Keltaisella värillä merkityt lausunnot ovat ne, jotka suoritetaan skenaarion mukaisesti

Toteutettujen lauseiden määrä = 5, lausekkeiden kokonaismäärä = 7

Lausunnon kattavuus: 5/7 = 71 %

Lausunnon kattavuus

Samoin näemme skenaarion 2,

Skenaario 2:

Jos A = -3, B = -9

Lausunnon kattavuus

Keltaisella värillä merkityt lausunnot ovat ne, jotka suoritetaan skenaarion mukaisesti.

Toteutettujen lauseiden määrä = 6

Lausuntojen kokonaismäärä = 7

Lausunnon kattavuus

Lausunnon kattavuus: 6/7 = 85 %

Lausunnon kattavuus

Mutta kaiken kaikkiaan, jos näet, molemmat skenaariot kattavat kaikki lausunnot. Joten voimme päätellä, että lausunnon kokonaiskattavuus on 100%.

Lausunnon kattavuus

Mitä selvityksen kattavuus kattaa?

  1. Käyttämättömät lausunnot
  2. Kuollut koodi
  3. Käyttämättömät oksat
  4. Puuttuvat lausunnot

Päätöksen kattavuuden testaus

Päätöksen kattavuus on valkoisen laatikon testaustekniikka, joka raportoi lähdekoodin jokaisen loogisen lausekkeen oikeat tai väärät tulokset. Päätöksen kattavuuden testauksen tavoitteena on kattaa ja validoida kaikki saatavilla oleva lähdekoodi tarkistamalla ja varmistamalla, että jokaisen mahdollisen päätöspisteen jokainen haara suoritetaan vähintään kerran.

Tässä kattavuustyypissä lausekkeet voivat olla monimutkaisia, mikä tekee 100 %:n kattavuuden saavuttamisesta haastavaa. Tästä syystä tämän mittarin raportoinnissa käytetään erilaisia ​​menetelmiä. Nämä menetelmät priorisoivat kriittisimmät yhdistelmät. Vaikka se on samanlainen kuin päätöksen kattavuus, se tarjoaa suuremman herkkyyden ohjata virtausta.

Päätöksen kattavuuden testaus

Esimerkki päätöksen kattamisesta

Harkitse seuraavaa koodia -

Demo(int a) {                       
     If (a> 5)
    	a=a*3
     Print (a)
    }

Skenaario 1:

A: n arvo on 2

Päätöksen kattavuuden testaus

Keltaisella korostettu koodi suoritetaan. Tässä on valittuna päätöksen "Ei" tulos Jos (a>5).

Päätöksen kattavuus = 50 %

Skenaario 2:

A: n arvo on 6

Päätöksen kattavuuden testaus

Keltaisella korostettu koodi suoritetaan. Tässä on valittu ”Kyllä”-päätöksen tulos Jos (a>5).

Päätöksen kattavuus = 50 %

Testitapaus A:n arvo ulostulo Päätöksen kattavuus
1 2 2 50%
2 6 18 50%

Toimialan kattavuuden testaus

Sivukonttorin kattavuus on valkoisen laatikon testausmenetelmä, jossa jokainen koodimoduulin (lauseen tai silmukan) tulos testataan. Sivukonttorin kattavuuden tarkoituksena on varmistaa, että jokainen päätösehto jokaisesta haarasta suoritetaan vähintään kerran. Se auttaa mittaamaan itsenäisten koodisegmenttien murto-osia ja löytämään osia, joissa ei ole haaroja.

Jos tulokset ovat esimerkiksi binäärisiä, sinun on testattava sekä tosi että epätosi tulokset.

Kaava sivuliikkeen kattavuuden laskemiseksi:

Toimialan kattavuuden testaus

Esimerkki sivukonttorin kattavuudesta

Oppiaksesi haaran kattavuuden, tarkastellaan samaa aiemmin käytettyä esimerkkiä

Harkitse seuraavaa koodia -

Demo(int a) {                       
     If (a> 5)
    	a=a*3
     Print (a)
    }                                       

Toimialan kattavuuden testaus

Sivukonttorin kattavuus huomioi myös ehdottoman sivuliikkeen

Testitapaus A:n arvo ulostulo Päätöksen kattavuus Sivukonttorin kattavuus
1 2 2 50% 33%
2 6 18 50% 67%

Sivukonttorin kattavuuden edut:

Toimialan kattavuuden testaus tarjoaa seuraavat edut:

  • Voit vahvistaa kaikki koodin haarat
  • Auttaa varmistamaan, että haaroittuminen ei aiheuta ohjelman toiminnan poikkeavuuksia
  • Haarojen kattavuusmenetelmä poistaa ongelmat, jotka johtuvat lausunnon kattavuuden testauksesta
  • Voit etsiä alueita, joita ei ole testattu muilla testausmenetelmillä
  • Sen avulla voit löytää koodin kattavuuden kvantitatiivisen mittarin
  • Haarojen kattavuus jättää huomioimatta Boolen lausekkeiden sisällä olevat haarat

Kunnon kattavuuden testaus

Kunnon kattavuus tai lausekkeen kattavuus on testausmenetelmä, jota käytetään ehtolausekkeen muuttujien tai alilausekkeiden testaamiseen ja arvioimiseen. Ehtojen kattavuuden tavoitteena on tarkistaa kunkin loogisen ehdon yksittäiset tulokset. Ehtojen kattavuus tarjoaa paremman herkkyyden ohjausvirtaukselle kuin päätöksen kattavuus. Tässä kattauksessa huomioidaan vain lausekkeet, joissa on loogisia operandeja.

Esimerkiksi, jos lausekkeessa on Boolen operaatioita, kuten AND, OR, XOR, mikä osoittaa kokonaismahdollisuudet.

Ehtojen kattavuus ei takaa täydellistä päätöskattavuutta.

Kaava kunnon kattavuuden laskemiseksi:

Kunnon kattavuuden testaus

Esimerkiksi:

Kunnon kattavuuden testaus

Yllä olevalle lausekkeelle meillä on 4 mahdollista yhdistelmää

  • TT
  • FF
  • TF
  • FT

Harkitse seuraavaa syötettä

X = 3

Y = 4

(x TOSI Ehtojen kattavuus on ¼ = 25 %
A = 3

B = 4

(a>b) VÄÄRÄ

Rajallisen tilan koneen kattavuus

Äärillisen tilan konepeitto on varmasti monimutkaisin koodipeittomenetelmä. Tämä johtuu siitä, että se vaikuttaa suunnittelun käyttäytymiseen. Tässä kattavuusmenetelmässä sinun on etsittävä, kuinka monessa aikakohtaisessa tilassa vieraillaan, siirretään. Se myös tarkistaa, kuinka monta sekvenssiä äärellistilakoneeseen sisältyy.

Mikä koodipeittotyyppi valita

Tämä on varmasti vaikein vastaus antaa. Peittotavan valitsemiseksi testaajan on tarkistettava, että

  • testattavassa koodissa on yksi tai useampi havaitsematon virhe
  • mahdollisen rangaistuksen kustannukset
  • menetetty maine
  • menetetyn myynnin kustannukset jne.

Mitä suurempi on todennäköisyys, että viat aiheuttavat kalliita tuotantohäiriöitä, sitä vakavampi kattavuustaso sinun on valittava.

Koodipeitto vs. toiminnallinen kattavuus

Koodin kattavuus Toiminnallinen kattavuus
Koodin kattavuus kertoo, kuinka hyvin testipenkkisi on käyttänyt lähdekoodia. Toiminnallinen kattavuus mittaa, kuinka hyvin testipenkkisi on kattanut suunnittelun toiminnallisuuden.
Älä koskaan käytä suunnittelutietoja Käytä suunnitteluohjeita
Kehittäjien tekemä Testaajien tekemä

Koodipeittotyökalut

Tässä on luettelo tärkeistä koodipeittotyökaluista:

Työkalun nimi Tuotetiedot
Cobertura Se on avoimen lähdekoodin peittotyökalu. Se mittaa testin kattavuuden instrumentoimalla koodipohjaa ja analysoimalla, mitkä koodirivit suoritetaan ja mitkä eivät suoriteta, kun testisarja suoritetaan.
Apila Clover myös vähentää testausaikaa suorittamalla vain testit, jotka kattavat edellisen koontiversion jälkeen muokatun sovelluskoodin.
Kehittäjäkumppani DevPartnerin avulla kehittäjät voivat analysoida Java koodi Code Quality and Complexity.
Emma EMMA tukee luokka-, menetelmä-, rivi- ja peruslohkokattavuutta, koottua lähdetiedostoa, luokka- ja menetelmätasoja.
Kalistick Kalistick on kolmannen osapuolen sovellus, joka analysoi koodeja eri näkökulmista.
CoView ja CoAnt Koodausohjelmisto on koodin peittotyökalu mittareita, valeobjektien luomista, koodin testaamista, polun ja haaran kattavuutta jne.
Bullseye for C++ BulseyeCoverage on koodipeittotyökalu C++ ja C.
Sonar Sonar on avoimen koodin peittotyökalu, jonka avulla voit hallita koodin laatua.

Koodipeiton käytön edut ja haitat

Koodin kattavuuden edut Koodin kattavuuden haitat
Auttaa arvioimaan koodin kattavuuden kvantitatiivista mittaa Vaikka mitä tahansa ominaisuutta ei ole otettu käyttöön suunnittelussa, koodin kattavuus ilmoittaa silti 100 %:n kattavuuden.
Sen avulla voit luoda ylimääräisiä testitapauksia kattavuuden lisäämiseksi Ei ole mahdollista määrittää, testasimmeko kaikki mahdolliset ominaisuuden arvot koodipeiton avulla
Sen avulla voit löytää ohjelman alueet, joita testitapaukset eivät harjoita Koodipeitto ei myöskään kerro, kuinka paljon ja kuinka hyvin olet peittänyt logiikkasi
Siinä tapauksessa, että määritettyä toimintoa ei ole toteutettu tai se ei sisälly määritykseen, rakennepohjaiset tekniikat eivät löydä tätä ongelmaa.

Yhteenveto

  • Koodin kattavuus on mitta, joka kuvaa, missä määrin ohjelman lähdekoodia on testattu
  • Se auttaa sinua mittaamaan testin toteutuksen tehokkuutta
  • Viisi koodin kattavuusmenetelmää ovat 1.) Lausunnon kattavuus 2.) Ehtojen kattavuus 3) Haaratoimialan kattavuus 4) Toggle Kattavuus 5) Mikronesian kattavuus
  • Lausunnon kattavuus sisältää kaikkien lähdekoodin suoritettavien lauseiden suorittamisen vähintään kerran
  • Päätöksen kattavuus raportoi kunkin Boolen lausekkeen oikeat tai väärät tulokset
  • Haaran kattavuudessa jokainen koodimoduulin tulos testataan
  • Ehdollinen paljastaa, kuinka ehdollisen lauseen muuttujat tai osalausekkeet arvioidaan
  • Äärillisen tilan konepeitto on varmasti monimutkaisin koodipeittomenetelmä
  • Kattavuuden valitsemiseksi testaajan on tarkistettava mahdollisen rangaistuksen kustannukset, menetetty maine, menetetty myynti jne.
  • Koodipeitto kertoo, kuinka hyvin testipenkkisi on käyttänyt lähdekoodia, kun taas toiminnallinen kattavuus mittaa, kuinka hyvin suunnittelun toiminnallisuus on katettu.
  • Cobertura, JTest, Clover, Emma, ​​Kalistick ovat muutamia tärkeitä koodipeittotyökaluja
  • Code Coverage antaa sinun luoda ylimääräisiä testitapauksia kattavuuden lisäämiseksi
  • Koodin kattavuus ei auta sinua määrittämään, testasimmeko kaikki ominaisuuden mahdolliset arvot