Code Katvuse õpetus: haru, avaldus ja otsuste testimine

Mis on Code leviala?

Code Katvus on mõõt, mis kirjeldab programmi lähtekoodi testimise astet. See on üks valge kasti testimise vorm, mis leiab programmi alad, mida testjuhtumite komplekt ei ole läbi töötanud. Samuti loob see testjuhtumeid katvuse suurendamiseks ja koodi katvuse kvantitatiivse mõõdu määramiseks.

Enamikul juhtudel kogub koodi katvussüsteem teavet töötava programmi kohta. Samuti ühendab see selle lähtekoodi teabega, et luua aruanne testkomplekti koodi katvuse kohta.

Miks kasutada Code Katvuse testimine?

Siin on mõned koodi leviala kasutamise peamised põhjused:

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

Code Katvusmeetodid

Järgnevalt on toodud peamised koodikatte meetodid

  • Väljavõtte katvus
  • Otsuste katvus
  • Filiaalide katvus
  • Toggle Katvus
  • FSM leviala

Väljavõtte katvus

Väljavõtte katvus on valge kasti testimistehnika, mille puhul käivitatakse kõik lähtekoodis olevad käivitatavad laused vähemalt korra. Seda kasutatakse lähtekoodis käivitatud avalduste arvu arvutamiseks. Väljavõtte katvuse põhieesmärk on katta kõik võimalikud teed, read ja laused lähtekoodis.

Väljavõtte katvust kasutatakse testitava koodi struktuuri põhjal stsenaariumi tuletamiseks.

Väljavõtte katvus

In Valge Box Testimine, keskendub testija tarkvara toimimisele. Teisisõnu keskendub testija lähtekoodi sisemisele tööle, mis puudutab kontrolli voograafikuid või vooskeeme.

Üldiselt on igas tarkvaras lähtekoodi vaadates lai valik elemente, näiteks operaatorid, funktsioonid, loogikaping, erandlikud käitlejad jne. Sõltuvalt programmi sisendist ei pruugita mõnda koodilauset täita. Lausekatte eesmärk on katta kõik võimalikud teed, read ja laused koodis.

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

Stsenaarium antud lähtekoodi väljavõtte katvuse arvutamiseks. Siin kasutame kahte erinevat stsenaariumi, et kontrollida iga stsenaariumi avalduse katvuse protsenti.

allikas Code:

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 

Stsenaarium 1:

Kui A = 3, B = 9

Väljavõtte katvus

Kollase värviga märgitud avaldused on need, mis täidetakse vastavalt stsenaariumile

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

Väljavõtte katvus: 5/7 = 71%

Väljavõtte katvus

Samuti näeme stsenaariumi 2,

Stsenaarium 2:

Kui A = -3, B = -9

Väljavõtte katvus

Kollase värviga märgitud avaldused on need, mis täidetakse vastavalt stsenaariumile.

Täidetud avalduste arv = 6

Väidete koguarv = 7

Väljavõtte katvus

Väljavõtte katvus: 6/7 = 85%

Väljavõtte katvus

Kuid üldiselt on mõlemad stsenaariumid kaetud kõigi väidetega. Seega võime järeldada, et üldine avalduse katvus on 100%.

Väljavõtte katvus

Mida hõlmab väljavõtte katvus?

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

Otsuste katvuse testimine

Otsuste katvus on valge kasti testimistehnika, mis teatab lähtekoodi iga tõeväärtusavaldise tõesed või valed tulemused. 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.

Selle katvuse tüübi puhul võivad väljendid muutuda keeruliseks, mistõttu on 100% katvuse saavutamine keeruline. Seetõttu kasutatakse selle mõõdiku esitamiseks erinevaid meetodeid. Need meetodid seavad esikohale kõige kriitilisemad kombinatsioonid. Kuigi see sarnaneb otsuste katvusega, pakub see voolu juhtimiseks suuremat tundlikkust.

Otsuste katvuse testimine

Otsuse katvuse näide

Mõelge järgmisele koodile -

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

Stsenaarium 1:

A väärtus on 2

Otsuste katvuse testimine

Kollasega esiletõstetud kood käivitatakse. Siin on märgitud otsuse „Ei” tulemus Kui (a>5).

Otsuse katvus = 50%

Stsenaarium 2:

A väärtus on 6

Otsuste katvuse testimine

Kollasega esiletõstetud kood käivitatakse. Siin on märgitud otsuse "Jah" tulemus Kui (a>5).

Otsuse katvus = 50%

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

Filiaalide katvuse testimine

Filiaalide katvus on valge kasti testimismeetod, milles testitakse iga koodimooduli (lause või tsükli) tulemust. Filiaali katvuse eesmärk on tagada, et iga filiaali iga otsustustingimus täidetakse vähemalt üks kord. See aitab mõõta sõltumatute koodisegmentide murde ja leida harudeta sektsioone.

Näiteks kui tulemused on binaarsed, peate testima nii tõeseid kui ka valesid tulemusi.

Filiaali katvuse arvutamise valem:

Filiaalide katvuse testimine

Näide filiaalide katmisest

Haru katvuse õppimiseks vaatleme sama näidet, mida kasutati varem

Mõelge järgmisele koodile -

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

Filiaalide katvuse testimine

Filiaalide katvus arvestab ka tingimusteta filiaaliga

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

Filiaali leviala eelised:

Filiaali katvuse testimine pakub järgmisi eeliseid:

  • Võimaldab teil kontrollida kõiki koodi harusid
  • Aitab teil tagada, et ükski hargnemine ei põhjustaks programmi töös mingeid kõrvalekaldeid
  • Filiaali katvuse meetod eemaldab probleemid, mis tekivad väljavõtte katvuse testimise tõttu
  • Võimaldab leida valdkondi, mida teiste testimismeetoditega ei testita
  • See võimaldab teil leida koodi katvuse kvantitatiivse mõõdu
  • Haru katvus ignoreerib Boole'i ​​avaldiste sees olevaid harusid

Seisundi katvuse testimine

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

Näiteks kui avaldis sisaldab Boole'i ​​tehteid nagu JA, VÕI, XOR, mis näitab kõiki võimalusi.

Tingimuste katvus ei anna garantiid täieliku otsuse katvuse kohta.

Tingimuse katvuse arvutamise valem:

Seisundi katvuse testimine

Näide:

Seisundi katvuse testimine

Ülaltoodud avaldise jaoks on meil 4 võimalikku kombinatsiooni

  • TT
  • FF
  • TF
  • FT

Kaaluge järgmist sisendit

X = 3

Y = 4

(x TRUE Tingimuse katvus on ¼ = 25%
A = 3

B = 4

(a>b) FALSE

Piiratud olekuga masina katvus

Lõpliku olekuga masina katvus on kindlasti kõige keerulisem koodikatte meetod. Seda seetõttu, et see mõjutab disaini käitumist. Selle katvusmeetodi puhul peate otsima, kui palju ajapõhiseid riike külastatakse, läbitakse. Samuti kontrollib see, mitu jada on piiratud olekumasinasse kaasatud.

Millist tüüpi Code Valitav kindlustuskaitse

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

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

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

Code Katvus vs. funktsionaalne katvus

Code Katmine Funktsionaalne katvus
Code Katvus näitab, kui hästi on lähtekoodi testimispingil läbi proovitud. Funktsionaalne katvus mõõdab, kui hästi on teie katsestendil disaini funktsionaalsused kaetud.
Ärge kunagi kasutage disaini spetsifikatsiooni Kasutage disaini spetsifikatsiooni
Arendajate tehtud Testijad

Code Katvuse tööriistad

Siin on oluliste koodikatte tööriistade loend:

Tööriista nimi Kirjeldus
Cobertura See on avatud lähtekoodi kattetööriist. See mõõdab testi katvust, instrumenteerides koodibaasi ja analüüsides, milliseid koodiridu testimiskomplekti käitamisel käivitatakse ja milliseid mitte.
Ristikhein Clover vähendab ka testimise aega, käivitades ainult need testid, mis hõlmavad rakenduse koodi, mida on muudetud pärast eelmist ehitamist.
DevPartner DevPartner võimaldab arendajatel analüüsida Java kood Code Kvaliteet ja keerukus.
Emma EMMA toetab klassi, meetodi, rea ja põhiploki katvust, koondatud lähtefaili, klassi ja meetodi taset.
Kalistick Kalistick on kolmanda osapoole rakendus, mis analüüsib koode erinevate vaatenurkadega.
CoView ja CoAnt Kodeerimistarkvara on koodikatte tööriist mõõdikute, näidisobjektide loomise, koodi testimise, tee ja haru katvuse jms jaoks.
Bullseye jaoks C++ BulseyeCoverage on koodi katmise tööriist C++ ja C.
Sonar Sonar on avatud koodi katvuse tööriist, mis aitab teil koodi kvaliteeti hallata.

Kasutamise eelised ja miinused Code Katmine

Code Katvuse eelised Code Katvuse puudused
Abiks koodi katvuse kvantitatiivse mõõtmise hindamisel Isegi kui mõnda konkreetset funktsiooni disainis ei rakendata, on koodi katvus endiselt 100% katvus.
See võimaldab teil katvuse suurendamiseks luua täiendavaid testjuhtumeid Koodikatte abil pole võimalik kindlaks teha, kas testisime funktsiooni kõiki võimalikke väärtusi
See võimaldab teil leida programmi valdkondi, mida testjuhtumite komplekt ei kasuta Code Kajastus ei näita ka seda, kui palju ja kui hästi olete oma loogikat käsitlenud.
Kui määratud funktsiooni pole rakendatud või see pole spetsifikatsioonis sisaldunud, ei leia struktuuripõhised tehnikad seda probleemi.

kokkuvõte

  • Code Katvus on mõõt, mis kirjeldab programmi lähtekoodi testimise astet.
  • See aitab teil mõõta testi rakendamise tõhusust
  • Viis Code Katvusmeetodid on 1.) Aruandekate 2.) Tingimuskate 3.) Filiaalikate 4.) Toggle Katvus 5) Mikroneesia leviala
  • Väljavõtte katvus hõlmab kõigi lähtekoodis olevate käivitatavate lausete täitmist vähemalt üks kord
  • Otsuste katvus teatab iga Boole'i ​​avaldise tõesed või valed tulemused
  • Haru katvuses testitakse iga koodimooduli tulemust
  • Tingimuslik näitab, kuidas tingimuslause muutujaid või alamväljendeid hinnatakse
  • Lõpliku olekuga masina katvus on kindlasti kõige keerulisem koodikatte meetod
  • Kattemeetodi valimiseks peab testija kontrollima võimaliku trahvi maksumust, kaotatud mainet, kaotatud müüki jne.
  • Code Katvus näitab, kui hästi on lähtekoodi testimispingil läbi proovitud, samas kui funktsionaalne katvus mõõdab, kui hästi on disaini funktsionaalsus kaetud.
  • Cobertura, JTest, Clover, Emma, ​​Kalistick on mõned olulised koodikatte tööriistad
  • Code Katvus võimaldab teil luua täiendavaid testjuhtumeid katvuse suurendamiseks
  • Code Katvus ei aita teil kindlaks teha, kas testisime funktsiooni kõiki võimalikke väärtusi.

Võta see postitus kokku järgmiselt: