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.
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 = 9Keltaisella värillä merkityt lausunnot ovat ne, jotka suoritetaan skenaarion mukaisesti
Toteutettujen lauseiden määrä = 5, lausekkeiden kokonaismäärä = 7
Lausunnon kattavuus: 5/7 = 71 %
Samoin näemme skenaarion 2,
Skenaario 2:
Jos A = -3, B = -9
Keltaisella värillä merkityt lausunnot ovat ne, jotka suoritetaan skenaarion mukaisesti.
Toteutettujen lauseiden määrä = 6
Lausuntojen kokonaismäärä = 7
Lausunnon kattavuus: 6/7 = 85 %
Mutta kaiken kaikkiaan, jos näet, molemmat skenaariot kattavat kaikki lausunnot. Joten voimme päätellä, että lausunnon kokonaiskattavuus on 100%.
Mitä selvityksen kattavuus kattaa?
- Käyttämättömät lausunnot
- Kuollut koodi
- Käyttämättömät oksat
- 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.
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
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
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:
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) }
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:
Esimerkiksi:
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