Koodikatvuse õpetus: haru, avaldus, otsus, Mikroneesia

Lang L: none (table-of-contents):

Anonim

Mis on koodi katvus?

Koodide katvus on mõõde, mis kirjeldab programmi lähtekoodi testimise taset. See on üks valge kasti testimise vorm, mis leiab programmi piirkonnad, mida testjuhtumite komplekt ei kasuta. See loob ka mõned katsejuhtumid, et suurendada katvust ja määrata koodide katvuse kvantitatiivne mõõt.

Enamasti kogub koodide katvussüsteem teavet käimasoleva programmi kohta. See ühendab selle ka lähtekoodi teabega, et luua aruanne testipaki koodide katvuse kohta.

Selles õpetuses saate teada

  • Mis on koodi katvus?
  • Miks kasutada koodikatet?
  • Koodide katmise meetodid
  • Avalduse katvus
  • Otsuse katvus
  • Filiaali katvus
  • Seisundi katvus
  • Lõppseisundi masina katvus
  • Millist tüüpi koodikatvust valida
  • Koodi katvus vs funktsionaalne katvus
  • Koodikatte tööriistad
  • Koodikatvuse kasutamise eelised ja puudused

Miks kasutada koodikatet?

Siin on mõned peamised põhjused koodi katvuse kasutamiseks:

  • See aitab teil mõõta testi rakendamise tõhusust
  • See pakub kvantitatiivset mõõtmist.
  • See määratleb lähtekoodi testimise taseme.

Koodide katmise meetodid

Järgnevad on peamised koodide katvuse meetodid

  • Avalduse katvus
  • Otsuse katvus
  • Filiaali katvus
  • Lülitage katvus
  • Mikroneesia leviala

Avalduse katvus

Avalduse katvus on valge kasti testimistehnika, mille korral kõik lähtekoodi käivitatavad käskud täidetakse vähemalt üks kord. Seda kasutatakse käivitatud lähtekoodis olevate lausete arvu arvutamiseks. Avalduse katvuse peamine eesmärk on hõlmata kõiki võimalikke lähtekoodi radasid, ridu ja avaldusi.

Avalduse katvust kasutatakse stsenaariumi tuletamiseks testitava koodi struktuuri põhjal.

Valge kasti testimisel keskendub testija tarkvara toimimisele. Teisisõnu keskendub testija lähtekoodi sisemisele tööle kontrollvoogude või vooskeemide osas.

Üldiselt on igas tarkvaras lähtekoodi vaatamisel palju erinevaid elemente, nagu operaatorid, funktsioonid, loopimine, erakordsed käitlejad jne. Programmi sisendi põhjal ei pruugi osa koodilausetest olla täidetud . Avalduse katvuse eesmärk on katta koodis kõik võimalikud tee, rida ja lause.

Mõistame seda näite abil, kuidas arvutada väljavõtete katvust.

Stsenaarium väljavõtte katvuse arvutamiseks antud lähtekoodi jaoks. Siin võtame kaks erinevat stsenaariumi, et kontrollida iga stsenaariumi väljavõtete katvuse protsenti.

Lähtekood:

Prindib (int a, int b) {------------ Printsum on funktsioonint tulemus = a + b;Kui (tulemus> 0)Prindi ("Positiivne", tulemus)MuiduPrindi ("Negatiivne", tulemus)} ----------- Lähtekoodi lõpp

1. stsenaarium:

Kui A = 3, B = 9

Kollase värviga märgitud laused täidetakse vastavalt stsenaariumile

Täidetud avalduste arv = 5, avalduste koguarv = 7

Avalduse katvus: 5/7 = 71%

Samamoodi näeme stsenaariumi 2,

2. stsenaarium:

Kui A = -3, B = -9

Kollase värviga märgitud laused täidetakse vastavalt stsenaariumile.

Täidetud avalduste arv = 6

Avalduste koguarv = 7

Avalduse katvus: 6/7 = 85%

Kuid üldiselt, kui näete, on kõik väited hõlmatud teise stsenaariumiga. Seega võime järeldada, et kogu avalduse katvus on 100%.

Mida hõlmab avalduse katvus?

  1. Kasutamata avaldused
  2. Surnud kood
  3. Kasutamata oksad
  4. Puuduvad avaldused

Otsuse katvus

Otsuse katvus on valge kasti testimise tehnika, mis annab teada lähtekoodi iga tõeväärtuse tõest või valest tulemusest. Otsuste katvuse testimise eesmärk on katta ja kinnitada kogu juurdepääsetav lähtekood, kontrollides ja tagades, et iga võimaliku otsustuspunkti iga haru täidetakse vähemalt üks kord.

Selles kajastuses võivad väljendid mõnikord keeruliseks muutuda. Seetõttu on 100% katvuse saavutamine väga raske. Seetõttu on selle mõõdiku teatamiseks palju erinevaid meetodeid. Kõik need meetodid keskenduvad kõige olulisemate kombinatsioonide kajastamisele. See sarnaneb väga otsuste katvusega, kuid pakub paremat tundlikkust voo juhtimiseks.

Näide otsuste hõlmatusest

Kaaluge järgmist koodi-

Demo (int a) {Kui (a> 5)a = a * 3Prindi (a)}

1. stsenaarium:

A väärtus on 2

Kollasega esile tõstetud kood käivitatakse. Siin kontrollitakse otsuse "Ei" tulemust, kui (a> 5).

Otsuse katvus = 50%

2. stsenaarium:

A väärtus on 6

Kollasega esile tõstetud kood käivitatakse. Siin kontrollitakse otsuse "Jah" tulemust, kui (a> 5).

Otsuse katvus = 50%

Testjuhtum A väärtus Väljund Otsuse katvus
1 2 2 50%
2 6 18 50%

Filiaali katvus

Haru katvus on valge kasti testimismeetod, mille käigus testitakse kõiki koodimooduli (avalduse või tsükli) tulemusi. Filiaali katvuse eesmärk on tagada, et iga filiaali iga otsustingimus täidetakse vähemalt üks kord. See aitab mõõta iseseisvate koodisegmentide murdosa ja selgitada välja harudeta sektsioonid.

Näiteks kui tulemused on binaarsed, peate testima nii tõese kui ka vale tulemuse.

Filiaali katvuse arvutamise valem:

Filiaali katvuse näide

Filiaalide katvuse õppimiseks kaalume sama näidet, mida varem kasutati

Mõelge järgmisele koodile

Demo (int a) {Kui (a> 5)a = a * 3Prindi (a)}

Filiaalide katvus arvestab ka tingimusteta haru

Testjuhtum A väärtus Väljund Otsuse katvus Filiaali katvus
1 2 2 50% 33%
2 6 18 50% 67%

Filiaali katvuse eelised:

Filiaalide katvuse testimine pakub järgmisi eeliseid:

  • Võimaldab teil kinnitada kõik koodi harud
  • Aitab teil tagada, et ükski hargnenud programm ei viiks programmi töös kõrvalekalleteni
  • Filiaalide katvuse meetod eemaldab avalduste katvuse testimise tõttu tekkivad probleemid
  • Võimaldab leida need piirkonnad, mida muud testimismeetodid ei testinud
  • See võimaldab teil leida kvantitatiivse koodi katvuse mõõtmise
  • Haru katvus ignoreerib Boole'i ​​väljendite sees olevaid harusid

Seisundi katvus

Tingimuse katvus või avaldise katvus on testimismeetod, mida kasutatakse tingimuslause muutujate või alaväljendite testimiseks ja hindamiseks. Tingimuste katvuse eesmärk on kontrollida iga loogilise tingimuse individuaalseid tulemusi. Seisundi katvus pakub paremat tundlikkust kontrollivoo suhtes kui otsuste katvus. Selles kajastuses vaadeldakse ainult loogiliste operandidega väljendeid.

Näiteks kui avaldisel on Boole'i ​​toimingud nagu AND, OR, XOR, mis näitab kogu võimalusi.

Seisundi katvus ei taga täieliku otsuste hõlmatust.

Tingimuste katvuse arvutamise valem:

Näide:

Ülaltoodud avaldise jaoks on meil 4 võimalikku kombinatsiooni

  • TT
  • FF
  • TF
  • FT

Mõelge järgmisele sisendile

X = 3

Y = 4

(x

TÕSI

Seisundi katvus on ¼ = 25%

A = 3

B = 4

(a> b)

VÄÄR

Lõppseisundi masina katvus

Lõpliku olekuga masina katvus on kindlasti kõige keerukam koodilevi meetod. Seda seetõttu, et see töötab disaini käitumise järgi. Selles levimeetodis peate otsima, kui palju ajaspetsiifilisi olekuid külastatakse, läbitakse. Samuti kontrollitakse, kui palju järjestusi on piiratud olekumasinasse.

Millist tüüpi koodikatvust valida

See on kindlasti kõige raskem vastus. Katvusmeetodi valimiseks peab testija kontrollima, kas

  • testitaval koodil on üks või mitu avastamata viga
  • võimaliku karistuse maksumus
  • kaotatud maine maksumus
  • kaotatud müügi maksumus jne.

Mida suurem on tõenäosus, et defektid põhjustavad kulukaid tootmisprobleeme, seda raskema katvuse taseme peate valima.

Koodi katvus vs funktsionaalne katvus

Koodide katvus Funktsionaalne katvus
Koodide katvus näitab teile, kui hästi teie testpink on lähtekoodi kasutanud. Funktsionaalne katvus mõõdab, kui hästi on teie katsepink katnud disaini funktsionaalsuse.
Ärge kunagi kasutage disainispetsifikatsiooni Kasutage disaini spetsifikatsiooni
Koostanud arendajad Koostanud testijad

Koodikatte tööriistad

Siin on loetelu olulistest koodide katvuse tööriistadest:

Tööriista nimi Kirjeldus
Cobertura See on avatud lähtekoodiga katvuse tööriist. See mõõdab testkatvust, seadistades koodibaasi ja analüüsides, milliseid koodiridu testipaketi käivitamisel täidetakse ja milliseid mitte.
Ristik Ristik vähendab ka testimise aega, käivitades ainult testid, mis hõlmavad rakenduse koodi, mida on muudetud pärast eelmist järku.
DevPartner DevPartner võimaldab arendajatel analüüsida Java-koodi koodikvaliteedi ja keerukuse osas.
Emma EMMA toetab klassi, meetodi, rea ja baasploki katvust, koondatud lähtefaili, klassi ja meetodi tasemeid.
Kalistick Kalistick on kolmanda osapoole rakendus, mis analüüsib koode erineva vaatenurgaga.
CoView ja CoAnt Kodeerimistarkvara on koodide katvuse tööriist mõõdikute, mõnitavate objektide loomise, koodi testimise, tee ja harude katvuse jms jaoks.
Bullseye C ++ jaoks BulseyeCoverage on koodide katvuse tööriist C ++ ja C jaoks.
Sonar Sonar on avatud koodide katvuse tööriist, mis aitab teil koodi kvaliteeti hallata.

Koodikatvuse kasutamise eelised

  • Kasulik hinnata koodi katvuse kvantitatiivset mõõdet
  • See võimaldab teil katvuse suurendamiseks luua täiendavaid testjuhtumeid
  • See võimaldab teil leida programmi piirkonnad, mida testjuhtumite komplekt ei kasuta

Koodikatvuse kasutamise puudused

  • Isegi kui mõnda konkreetset funktsiooni pole disainis rakendatud, teatab koodi katvus ikkagi 100% ulatuses.
  • Ei ole võimalik kindlaks teha, kas testisime funktsiooni kõiki võimalikke väärtusi koodi katvuse abil
  • Koodi katvus ei tähenda ka seda, kui palju ja kui hästi olete oma loogikat kajastanud
  • Kui määratud funktsiooni pole rakendatud või see pole spetsifikatsioonist lisatud, ei leia struktuuripõhised tehnikad seda probleemi.

Kokkuvõte

  • Koodide katvus on mõõde, mis kirjeldab programmi lähtekoodi testimise taset
  • See aitab teil mõõta testi rakendamise tõhusust
  • Viis koodikatte meetodit on 1.) Avalduse katvus 2.) Seisundi katvus 3) Haru katvus 4) Lülituse katvus 5) Mikroneesia katvus
  • Avalduse katvus hõlmab kõigi lähtekoodi käivitatavate käskude täitmist vähemalt üks kord
  • Otsuse ulatus kajastab iga Boole'i ​​avaldise tõelisi või valesid tulemusi
  • Haru katvuses testitakse kõiki koodimooduli tulemusi
  • Tingimuslik paljastab, kuidas hinnatakse tingimuslause muutujaid või alaväljendeid
  • Lõpliku olekuga masina katvus on kindlasti kõige keerukam koodilevi meetod
  • Katvusmeetodi valimiseks peab testija kontrollima võimaliku karistuse, kaotatud maine, kaotatud müügi jms maksumust.
  • Koodi katvus näitab teile, kui hästi teie proovipink on lähtekoodi kasutanud, funktsionaalne katvus mõõdab, kui hästi on disaini funktsionaalsus kaetud
  • Cobertura, JTest, Clover, Emma, ​​Kalistick on mõned olulised koodikattevahendid
  • Koodide katvus võimaldab teil katvuse suurendamiseks luua täiendavaid testjuhtumeid
  • Koodikatvus ei aita teil tuvastada, kas testisime funktsiooni kõiki võimalikke väärtusi