Mikä on koodin kattavuus?
Koodikattavuus on mittari, joka kuvaa ohjelman lähdekoodin testauksen astetta. Se on yksi valkoisen laatikon testauksen muoto, joka löytää ohjelman alueet, joita ei käytetä joukossa testitapauksia. Se luo myös joitain testitapauksia kattavuuden lisäämiseksi ja koodin kattavuuden kvantitatiivisen mittauksen määrittämiseksi.
Useimmissa tapauksissa koodin peittojärjestelmä kerää tietoja käynnissä olevasta ohjelmasta. Se yhdistää myös lähdekooditietoihin raportin luomisen testipakkauksen koodin kattavuudesta.
Tässä opetusohjelmassa opit-
- Mikä on koodin kattavuus?
- Miksi käyttää koodin kattavuutta?
- Koodin kattamismenetelmät
- Lausuman kattavuus
- Päätöksen kattavuus
- Haaran kattavuus
- Tilan kattavuus
- Äärellinen valtion koneen peitto
- Minkä tyyppinen koodisuoja valita
- Koodi- ja toiminnallinen kattavuus
- Koodin kattamisen työkalut
- Koodin kattavuuden edut ja haitat
Miksi käyttää koodin kattavuutta?
Tässä on joitain tärkeimpiä syitä koodin kattavuuden käyttämiseen:
- Se auttaa mittaamaan testin toteutuksen tehokkuutta
- Se tarjoaa kvantitatiivisen mittauksen.
- Se määrittää, missä määrin lähdekoodi on testattu.
Koodin kattamismenetelmät
Seuraavassa on tärkeimmät koodin kattavuusmenetelmät
- Lausuman kattavuus
- Päätöksen kattavuus
- Haaran kattavuus
- Vaihda kattavuus
- Mikronesian kattavuus
Lausuman kattavuus
Statement Coverage on valkoisen laatikon testaustekniikka, jossa kaikki lähdekoodin suoritettavat lauseet suoritetaan ainakin kerran. Sitä käytetään suoritettujen lähdekoodien lauseiden määrän laskemiseen. Lausekekattavuuden päätarkoitus on kattaa kaikki mahdolliset polut, rivit ja lauseet lähdekoodissa.
Lausekkeen kattavuutta käytetään skenaarion johtamiseen testattavan koodin rakenteen perusteella.
White Box -testauksessa testaaja keskittyy ohjelmiston toimintaan. Toisin sanoen testaaja keskittyy lähdekoodin sisäiseen työskentelyyn, joka liittyy ohjausvuokaavioihin tai vuokaavioihin.
Yleensä missä tahansa ohjelmistossa, jos tarkastelemme lähdekoodia, siellä on laaja valikoima elementtejä, kuten operaattorit, toiminnot, silmukointi, poikkeukselliset käsittelijät jne. Ohjelman syötteen perusteella jotkut koodilausekkeet eivät välttämättä toteudu . Lausekkeen kattavuuden tavoitteena on kattaa kaikki mahdolliset reitin, rivin ja lauseen koodissa.
Ymmärretään tämä esimerkillä, kuinka lasketaan lauseen kattavuus.
Skenaario lausekkeen kattavuuden laskemiseksi tietylle lähdekoodille. Tässä otamme kaksi erilaista skenaariota tarkistaaksemme kunkin skenaarion lauseen kattavuuden prosenttiosuuden.
Lähdekoodi:
Tulosteet (int a, int b) {------------ Printsum on funktioint tulos = a + b;Jos (tulos> 0)Tulosta ("Positiivinen", tulos)MuuTulosta ("Negatiivinen", tulos)} ----------- Lähdekoodin loppu
Skenaario 1:
Jos A = 3, B = 9
Keltaisella värillä merkityt lauseet suoritetaan skenaarion mukaisesti
Suoritettujen lausekkeiden määrä = 5, Lausekkeiden kokonaismäärä = 7
Lausuman kattavuus: 5/7 = 71%
Samoin näemme skenaarion 2,
Skenaario 2:
Jos A = -3, B = -9
Keltaisella värillä merkityt lauseet suoritetaan skenaarion mukaisesti.
Suoritettujen lauseiden lukumäärä = 6
Lausekkeiden kokonaismäärä = 7
Lausuman kattavuus: 6/7 = 85%
Mutta kaiken jos näet, kaikki lausunnot katetaan 2 toisen skenaarion harkita. Joten voimme päätellä, että lausuman kattavuus on 100%.
Mitä lausuntojen kattavuus kattaa?
- Käyttämättömät lausunnot
- Kuollut koodi
- Käyttämättömät sivuliikkeet
- Puuttuvat lausunnot
Päätöksen kattavuus
Päätöspeitto on valkoisen laatikon testaustekniikka, joka raportoi jokaisen lähdekoodin loogisen lausekkeen oikeat tai väärät tulokset. Päätöksen kattavuuden testauksen tavoitteena on kattaa ja vahvistaa kaikki saatavilla olevat lähdekoodit tarkistamalla ja varmistamalla, että jokaisen mahdollisen päätöksentekopisteen jokainen haara suoritetaan ainakin kerran.
Tässä kattavuudessa ilmaisut voivat joskus olla monimutkaisia. Siksi on erittäin vaikeaa saavuttaa 100% kattavuus. Siksi on olemassa monia erilaisia tapoja raportoida tämä tieto. Kaikki nämä menetelmät keskittyvät kattamaan tärkeimmät yhdistelmät. Se on hyvin samanlainen kuin päätöksen kattavuus, mutta se tarjoaa paremman herkkyyden virtauksen hallintaan.
Esimerkki päätöksen kattavuudesta
Harkitse seuraavia koodi-
Demo (int a) {Jos (a> 5)a = a * 3Tulosta (a)}
Skenaario 1:
A: n arvo on 2
Keltaisella korostettu koodi suoritetaan. Tässä tarkistetaan päätöksen "ei" tulos (a> 5).
Päätöksen kattavuus = 50%
Skenaario 2:
A: n arvo on 6
Keltaisella korostettu koodi suoritetaan. Tässä tarkistetaan päätöksen Kyllä-tulos (a> 5).
Päätöksen kattavuus = 50%
Testitapaus | A: n arvo | Tuotos | Päätöksen kattavuus |
1 | 2 | 2 | 50% |
2 | 6 | 18 | 50% |
Haaran kattavuus
Branch Coverage on valkoisen laatikon testausmenetelmä, jossa testataan kaikki koodimoduulin (käskyn tai silmukan) tulokset. Sivuliikkeen kattavuuden tarkoituksena on varmistaa, että jokainen sivuliike jokainen päätösehto toteutetaan ainakin kerran. Se auttaa mittaamaan itsenäisten koodisegmenttien murto-osia ja selvittämään osioita, joissa ei ole haaroja.
Esimerkiksi, jos tulokset ovat binaarisia, sinun on testattava sekä tosi että vääriä tuloksia.
Kaava haaran kattavuuden laskemiseksi:
Esimerkki haaran kattavuudesta
Oppimalla haarojen kattavuus tarkastellaan samaa esimerkkiä, jota käytettiin aiemmin
Harkitse seuraavaa koodia
Demo (int a) {Jos (a> 5)a = a * 3Tulosta (a)}
Haarakonttorissa otetaan huomioon myös ehdoton haara
Testitapaus | A: n arvo | Tuotos | Päätöksen kattavuus | Haaran kattavuus |
1 | 2 | 2 | 50% | 33% |
2 | 6 | 18 | 50% | 67% |
Haaratoiminnan edut:
Haarakonttotestaus tarjoaa seuraavat edut:
- Voit tarkistaa kaikki haarat koodissa
- Auttaa sinua varmistamaan, ettei mikään haarautunut johda ohjelman toiminnan poikkeavuuksiin
- Haarakonttomenetelmä poistaa ongelmat, joita esiintyy lausekkeiden kattavuuden testauksen takia
- Voit löytää alueet, joita ei ole testattu muilla testausmenetelmillä
- Sen avulla voit löytää kvantitatiivisen mittauksen koodin kattavuudesta
- Haaran peitto jättää huomiotta Boolen lausekkeiden sisäiset haarat
Tilan kattavuus
Ehtojen kattavuus tai lausekkeiden kattavuus on testausmenetelmä, jota käytetään ehdollisen lauseen muuttujien tai alilausekkeiden testaamiseen ja arviointiin. Ehtojen kattavuuden tavoitteena on tarkistaa kunkin loogisen ehdon yksittäiset tulokset. Tilan peitto tarjoaa paremman herkkyyden säätövirralle kuin päätöksenteko. Tässä kattavuudessa otetaan huomioon vain loogisten operandien ilmaisut.
Esimerkiksi, jos lausekkeella on Boolen operaatioita, kuten AND, OR, XOR, mikä osoittaa kokonaismahdollisuudet.
Tilan kattavuus ei takaa täydellistä päätöksentekoa.
Kaava ehtojen kattavuuden laskemiseksi:
Esimerkki:
Yllä olevalle lausekkeelle meillä on 4 mahdollista yhdistelmää
- TT
- FF
- TF
- FT
Harkitse seuraavaa syötettä
X = 3 Y = 4 |
(x |
TOTTA |
Tilan kattavuus on ¼ = 25% |
A = 3 B = 4 |
(a> b) |
VÄÄRÄ |
Äärellinen valtion koneen peitto
Äärellinen tilakoneen peitto on varmasti monimutkaisin koodin peittotapa. Tämä johtuu siitä, että se toimii mallin käyttäytymisellä. Tässä kattavuusmenetelmässä sinun on etsittävä, kuinka monta aikakohtaista tilaa käydään, kuljetetaan. Se tarkistaa myös, kuinka monta sekvenssiä sisältyy äärelliseen tilakoneeseen.
Minkä tyyppinen koodisuoja valita
Tämä on varmasti vaikein vastaus. Kattavuusmenetelmän valitsemiseksi testerin on tarkistettava, että
- testattavassa koodissa on yksi tai useita havaitsemattomia vikoja
- mahdollisen sakon kustannukset
- menetetyn maineen kustannukset
- menetetyn myynnin kustannukset jne.
Mitä suurempi on todennäköisyys, että viat aiheuttavat kalliita tuotantovirheitä, sitä vakavampi kattavuus on valittava.
Koodi- ja toiminnallinen kattavuus
Koodin kattavuus | Toiminnallinen kattavuus |
Koodin kattavuus kertoo, kuinka hyvin lähdekoodia testipenkki on käyttänyt. | Toiminnallinen kattavuus mittaa sitä, kuinka hyvin testipenkki on kattanut suunnittelun toimivuuden. |
Älä koskaan käytä suunnittelua | Käytä suunnittelun määrittelyä |
Kehittäjien tekemä | Testaajat |
Koodin kattamisen työkalut
Tässä on luettelo tärkeistä koodin kattavuustyökaluista:
Työkalun nimi | Kuvaus |
Cobertura | Se on avoimen lähdekoodin peittotyökalu. Se mittaa testin kattavuutta instrumentoimalla koodipohjan ja analysoi mitkä koodirivit suoritetaan ja mitkä eivät, kun testipaketti suoritetaan. |
Apila | Apila lyhentää myös testausaikaa suorittamalla vain testit, jotka kattavat sovelluskoodin, jota on muokattu edellisen rakennuksen jälkeen. |
DevPartner | DevPartner antaa kehittäjille mahdollisuuden analysoida Java-koodia koodin laadun ja monimutkaisuuden suhteen. |
Emma | EMMA tukee luokan, menetelmän, rivin ja peruslohkon kattavuutta, yhdistettyä lähdetiedostoa, luokan ja menetelmän tasoa. |
Kalistick | Kalistick on kolmannen osapuolen sovellus, joka analysoi koodeja eri näkökulmista. |
CoView ja CoAnt | Koodausohjelmisto on koodin peittotyökalu metriikkaan, pilkkaa objektin luomista, koodin testattavuutta, polun ja haaran kattavuutta jne. |
Bullseye C ++: lle | BulseyeCoverage on koodin kattavuus C ++: lle ja C: lle. |
Kaikuluotain | Sonar on avoin koodin peittotyökalu, joka auttaa sinua hallitsemaan koodin laatua. |
Koodin kattavuuden edut
- Hyödyllistä arvioida koodin peittävyyden kvantitatiivinen mitta
- Sen avulla voit luoda ylimääräisiä testitapauksia kattavuuden lisäämiseksi
- Sen avulla voit löytää ohjelman alueet, joita testitapaukset eivät käytä
Koodikattavuuden käytön haitat
- Vaikka mitään erityisominaisuutta ei olekaan toteutettu suunnittelussa, koodin peitto raportoi silti 100% peiton.
- Ei ole mahdollista määrittää, testasimmeko kaikki ominaisuuden mahdolliset arvot koodin peiton avulla
- Koodin peitto ei myöskään kerro kuinka paljon ja kuinka hyvin olet peittänyt logiikkasi
- Jos määritettyä toimintoa ei ole otettu käyttöön tai sitä ei ole sisällytetty määrittelyyn, rakennepohjaiset tekniikat eivät löydä ongelmaa.
Yhteenveto
- Koodin peitto on mittari, joka kuvaa ohjelman lähdekoodin testauksen astetta
- Se auttaa mittaamaan testin toteutuksen tehokkuutta
- Viisi koodin kattavuusmenetelmää ovat 1.) Lauseke 2.) Tilan kattavuus 3) Haaran kattavuus 4) Vaihda kattavuus 5) Mikronesian kattavuus
- Lausekkeeseen kuuluu kaikkien lähdekoodissa olevien suoritettavien käskyjen suorittaminen ainakin kerran
- Päätöksen kattavuus raportoi jokaisen Boolen lausekkeen oikeat tai väärät tulokset
- Haarakonttorissa testataan jokainen koodimoduulin tulos
- Ehdollinen paljastaa, kuinka ehdollisen lauseen muuttujia tai alilausekkeita arvioidaan
- Äärellinen tilakoneen peitto on varmasti monimutkaisin koodin peittotapa
- Kattavuusmenetelmän valitsemiseksi testaajan on tarkistettava mahdollisen rangaistuksen, menetetyn maineen, menetetyn myynnin jne. Kustannukset.
- Koodin peitto kertoo kuinka lähdekoodia testipenkki on käyttänyt, kun taas toiminnallinen kattavuus mittaa kuinka hyvin suunnittelun toimivuus on peitetty
- Cobertura, JTest, Clover, Emma, Kalistick ovat muutamia tärkeitä koodin peittotyökaluja
- Koodin kattavuus antaa sinun luoda ylimääräisiä testitapauksia kattavuuden lisäämiseksi
- Koodin kattavuus ei auta sinua selvittämään, testasimmeko kaikki ominaisuuden mahdolliset arvot