Code Katvuse tööriist: väljavõtete, harude ja otsuste testimine
⚡ Nutikas kokkuvõte
Code Katvus on valge kasti mõõt, mis näitab, mil määral on lähtekoodi testimiskomplekt läbi töötanud.ping meeskonnad leiavad testimata lauseid, harusid, tingimusi ja teid, mida võivad hõivata varjatud defektid.

Mis on Code Katvus?
Code katmine on mõõt, mis kirjeldab programmi lähtekoodi testimise ulatust. See on üks selle vorme. valge kasti testimine mis leiab programmi alad, mida testjuhtumite komplekt ei ole läbi proovinud. See aitab luua ka täiendavaid testjuhtumeid, et suurendada ulatust ja määrata koodi ulatuse kvantitatiivne mõõt.
Enamasti kogub koodi katvuse süsteem teavet töötava programmi kohta. Seejärel ühendab see selle lähtekoodi teabega, et genereerida aruanne testimiskomplekti koodi katvuse kohta.
Miks kasutada Code Katvuse testimine?
Siin on mõned koodikatte kasutamise peamised põhjused:
- See aitab teil mõõta testi rakendamise efektiivsust.
- See pakub testimise kvantitatiivset mõõtmist.
- See määrab lähtekoodi testimise astme.
Code Katvusmeetodid
Järgnevalt on toodud peamised koodi katmise meetodid:
- Väljavõtte katvus
- Otsuste katvus
- Filiaalide katvus
- Toggle Katvus
- FSM leviala
Väljavõtte katvus
Väljavõtte katvus on valge kasti testimise tehnika, mille puhul kõiki lähtekoodi käivitatavaid lauseid käivitatakse vähemalt üks kord. Seda kasutatakse lähtekoodis käivitatud lausete arvu arvutamiseks. Lausekatte peamine eesmärk on katta kõik võimalikud teed, read ja laused lähtekoodis.
Lausekatet kasutatakse stsenaariumide tuletamiseks testitava koodi struktuuri põhjal.
Valge kasti testimisel keskendub testija tarkvara toimimisele. Teisisõnu, testija keskendub lähtekoodi sisemisele toimimisele, mis on seotud juhtimisvoo graafikute või vooskeemidega.
Üldiselt on igas tarkvaras lähtekoodi vaadates palju erinevaid elemente, näiteks operaatoreid, funktsioone, loogikat ja muid elemente.ping, erandite 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.
Vaatame näite abil, kuidas arvutada väljavõtte katvust. Siin vaatleme kahte erinevat stsenaariumi, et kontrollida iga stsenaariumi väljavõtte 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
Kollasega märgitud laused on need, mis täidetakse vastavalt stsenaariumile. Täidetud lausete arv = 5, lausete koguarv = 7, seega lause katvus = 5/7 = 71%.
Stsenaarium 2: Kui A = -3, B = -9
Kollasega märgitud laused on need, mis täidetakse vastavalt stsenaariumile. Täidetud lausete arv = 6, lausete koguarv = 7, seega lause katvus = 6/7 = 85%.
Aga üldiselt, kui näete, on kõik väited mõlema stsenaariumiga kaetud. Seega võime järeldada, et väidete üldine katvus on 100%.
Mida hõlmab väljavõtte katvus?
- Kasutamata avaldused
- Surnud Code
- Kasutamata oksad
- Puuduvad avaldused
Otsuste katvuse testimine
Otsuste katvus on valge kasti testimise tehnika, mis annab lähtekoodis iga tõeväärtuse avaldise kohta teada, kas see on tõene või väär. Otsustuskatvuse testimise eesmärk on katta ja valideerida kogu ligipääsetav lähtekood, kontrollides ja tagades, et iga võimaliku otsustuspunkti iga haru käivitatakse vähemalt üks kord.
Selle katvuse tüübi puhul võivad avaldised muutuda keerukaks, mistõttu on 100% katvuse saavutamine keeruline. Seetõttu kasutatakse selle mõõdiku esitamiseks mitmesuguseid meetodeid. Need meetodid seavad esikohale kõige kriitilisemad kombinatsioonid. Kuigi see sarnaneb harude katvusele, pakub see suuremat tundlikkust juhtimisvoo suhtes.
Otsustuskatte 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. Otsuse tulemus on „Ei“. Kui (a>5) on märgitud, siis otsuse katvus = 50%.
Stsenaarium 2: a väärtus on 6. Otsuse tulemus on „Jah“. Kui (a>5) on märgitud, siis 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 testimise meetod, mille puhul testitakse iga koodimooduli (lause või tsükli) tulemust. Harude katvuse eesmärk on tagada, et iga haru iga otsustustingimus täidetakse vähemalt üks kord. See aitab mõõta sõltumatute koodisegmentide osakaalu ja leida sektsioonid, millel pole harusid.
Näiteks kui tulemused on binaarsed, peate testima nii tõeseid kui ka valesid tulemusi.
Filiaali katvuse arvutamise valem:
Näide filiaalide katmisest
Haru katvuse õppimiseks vaatleme sama näidet, mida varem kasutasime. Haru katvus arvestab ka tingimusteta haruga.
| Testjuhtum | A väärtus | Väljund | Otsuste katvus | Filiaalide katvus |
|---|---|---|---|---|
| 1 | 2 | 2 | 50% | 33% |
| 2 | 6 | 18 | 50% | 67% |
Filiaali leviala eelised:
- Võimaldab teil valideerida kõik koodis olevad harud.
- Aitab tagada, et ükski haru ei põhjusta programmi töös mingeid kõrvalekaldeid.
- Eemaldab probleemid, mis tekivad väljavõtete katvuse testimise tõttu.
- Võimaldab leida alasid, mida teised testimismeetodid ei ole testinud.
- Võimaldab leida koodi katvuse kvantitatiivse mõõtme.
- Harude katvus ignoreerib tõeväärtusavaldiste sees olevaid harusid.
Seisundi katvuse testimine
Seisundi katvusehk avaldisekatvus on testimismeetod, mida kasutatakse tingimuslauses olevate muutujate või alam-avaldiste testimiseks ja hindamiseks. Tingimuskatvuse eesmärk on kontrollida iga loogilise tingimuse individuaalseid tulemusi. Tingimuskatvus pakub juhtimisvoo suhtes paremat tundlikkust kui otsustuskatvus. Selles katvuses käsitletakse ainult loogiliste operandidega avaldisi.
Näiteks kui avaldisel on tõeväärtusoperatsioonid nagu AND, OR või XOR, näitab see võimaluste koguarvu. Tingimuste katvus ei garanteeri täielikku otsustuskatvust.
Tingimuse katvuse arvutamise valem:
Kahe operandiga avaldise puhul on neli võimalikku kombinatsiooni: TT, FF, TF ja FT. Vaatleme sisendit X=3, Y=4 (x b) VÄÄR, mis annab tingimuskatteks 1/4 = 25%.
Piiratud olekuga masina katvus
Lõpliku olekuga masina katmine on kindlasti kõige keerulisem koodi katmise meetod. See on tingitud asjaolust, et see töötab disaini käitumise peal. Selle katmismeetodi puhul tuleb vaadata, mitu korda konkreetseid olekuid külastatakse või läbitakse. Samuti kontrollitakse, mitu järjestust lõplikus masinas on.
Millist tüüpi Code Valitav kindlustuskaitse
See on kindlasti kõige keerulisem vastus. Katvusmeetodi valimiseks peab testija kontrollima, kas:
- testitavas koodis on üks või mitu avastamata defekti,
- võimaliku karistuse maksumus,
- kaotatud maine hind,
- kaotatud müügi maksumus ja nii edasi.
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 |
|---|---|
| Näitab, kui hästi on lähtekoodi testimispingil läbi proovitud. | Mõõdab, kui hästi on teie testpink disaini funktsionaalsust katnud. |
| Ei kasuta kunagi disainispetsifikatsiooni. | Kasutab disainispetsifikatsiooni. |
| Arendajate tehtud. | Testijate tehtud. |
Code Katvuse tööriistad
Siin on nimekiri olulistest koodi katmise tööriistadest:
| Tööriista nimi | Kirjeldus |
|---|---|
| Cobertura | Avatud lähtekoodiga koodi katvuse tööriist. See mõõdab testide katvust, instrumenteerides koodibaasi ja analüüsides, milliseid koodiridu testikomplekti käivitamisel käivitatakse ja milliseid mitte. |
| Ristikhein | Ristik (OpenClover) vähendab ka testimisaega, käivitades ainult need testid, mis hõlmavad eelmisest versioonist saadik muudetud rakenduse koodi. |
| DevPartner | DevPartner võimaldab arendajatel analüüsida Java kood koodi kvaliteedi ja keerukuse osas. |
| Emma | EMMA toetab klassi-, meetodi-, rea- ja põhiplokkide katvust, mis on koondatud lähtekoodifaili, klassi ja meetodi tasemel. |
| Kalistick | Kalistick on kolmanda osapoole rakendus, mis analüüsib koodi erinevatest vaatenurkadest. |
| CoView ja CoAnt | Koodi katvuse tööriist mõõdikute, näidisobjektide loomise, koodi testitavuse, tee ja haru katvuse ja muu jaoks. |
| Bullseye jaoks C++ | BullseyeCoverage on koodi katmise tööriist C++ ja C. |
| Sonar | Sonar on avatud koodi katvuse tööriist, mis aitab teil hallata koodi kvaliteeti. |
Kasutamise eelised ja miinused Code Katmine
| Eelised | Puudused |
|---|---|
| Kasulik koodi katvuse kvantitatiivse mõõtmise hindamiseks. | Isegi kui konkreetset funktsiooni disainis ei rakendata, näitab koodi katvus ikkagi 100% katvust. |
| Võimaldab luua täiendavaid testjuhtumeid katvuse suurendamiseks. | Koodi katvuse abil ei ole võimalik kindlaks teha, kas tunnuse kõiki võimalikke väärtusi testiti. |
| Võimaldab leida programmi valdkondi, mida testjuhtumite komplekt ei ole läbi proovinud. | Code Kajastus ei näita, kui palju ja kui hästi oled oma loogikat käsitlenud. |






