Kas yra kodo aprėptis?
Kodo aprėptis yra priemonė, apibūdinanti programos šaltinio kodo patikrinimo laipsnį. Tai yra viena baltojo langelio testavimo forma, kurios metu nustatomos programos sritys, kurių nevykdo bandymų atvejų rinkinys. Tai taip pat sukuria keletą bandomųjų atvejų, kad padidėtų aprėptis ir būtų nustatytas kiekybinis kodo aprėpties matas.
Daugeliu atvejų kodo aprėpties sistema renka informaciją apie vykdomą programą. Tai taip pat derinama su šaltinio kodo informacija, kad būtų sukurta ataskaita apie testo rinkinio kodo aprėptį.
Šioje pamokoje sužinosite
- Kas yra kodo aprėptis?
- Kodėl verta naudoti kodo aprėptį?
- Kodo aprėpties metodai
- Pareiškimo aprėptis
- Sprendimų aprėptis
- Filialo aprėptis
- Būklės aprėptis
- Galutinė valstybės mašinų aprėptis
- Kokį kodo aprėpties tipą pasirinkti
- Kodo aprėptis ir funkcinė aprėptis
- Kodo aprėpties įrankiai
- Kodo aprėpties naudojimo pranašumai ir trūkumai
Kodėl verta naudoti kodo aprėptį?
Štai keletas pagrindinių kodo aprėpties naudojimo priežasčių:
- Tai padeda jums įvertinti testo įgyvendinimo efektyvumą
- Jis siūlo kiekybinį matavimą.
- Tai apibrėžia šaltinio kodo patikrinimo laipsnį.
Kodo aprėpties metodai
Toliau pateikiami pagrindiniai kodų aprėpties metodai
- Pareiškimo aprėptis
- Sprendimų aprėptis
- Filialo aprėptis
- Perjungti aprėptį
- MFV aprėptis
Pareiškimo aprėptis
Pareiškimo aprėptis yra baltos dėžės testavimo technika, kai visi vykdomieji teiginiai šaltinio kode vykdomi bent kartą. Jis naudojamas įvykdytų šaltinio kodų skaičiui apskaičiuoti. Pagrindinis pareiškimų aprėpties tikslas - apimti visus įmanomus kelius, eilutes ir teiginius šaltinio kode.
Pareiškimo aprėptis naudojama scenarijams išgauti remiantis bandomo kodo struktūra.
„White Box Testing“ bandytojas daugiausia dėmesio skiria programinės įrangos veikimui. Kitaip tariant, bandytojas sutelks dėmesį į vidinį šaltinio kodo darbą, susijusį su valdymo srautų grafikais arba schemomis.
Paprastai bet kurioje programinėje įrangoje, jei žiūrėsime į šaltinio kodą, bus daugybė įvairių elementų, tokių kaip operatoriai, funkcijos, ciklo sudarymas, išskirtiniai tvarkytojai ir kt. Remiantis programos įvestimi, kai kurie kodo sakiniai gali būti neįvykdyti . Pareiškimo aprėpties tikslas yra aprėpti visus galimus kelio kodus, eilutes ir sakinius.
Supraskime tai su pavyzdžiu, kaip apskaičiuoti teiginių aprėptį.
Nurodyto šaltinio kodo pareiškimo aprėpties apskaičiavimo scenarijus. Čia mes naudojame du skirtingus scenarijus, kad patikrintume kiekvieno scenarijaus teiginių aprėpties procentą.
Pirminis kodas:
Spaudiniai (int a, int b) {------------ Printsum yra funkcijaint rezultatas = a + b;Jei (rezultatas> 0)Spausdinti („Teigiamas“, rezultatas)KitasSpausdinti („Neigiama“, rezultatas)} ----------- Šaltinio kodo pabaiga
1 scenarijus:
Jei A = 3, B = 9
Geltona spalva pažymėti teiginiai yra vykdomi pagal scenarijų
Vykdytų pareiškimų skaičius = 5, Bendras pareiškimų skaičius = 7
Pareiškimo aprėptis: 5/7 = 71%
Taip pat pamatysime 2 scenarijų,
2 scenarijus:
Jei A = -3, B = -9
Geltona spalva pažymėti teiginiai yra vykdomi pagal scenarijų.
Vykdytų pareiškimų skaičius = 6
Bendras teiginių skaičius = 7
Pareiškimo aprėptis: 6/7 = 85%
Bet apskritai, jei matote, visi teiginiai yra nagrinėjami pagal antrąjį scenarijų. Taigi galime daryti išvadą, kad bendras teiginių aprėptis yra 100%.
Ką apima pareiškimų aprėptis?
- Nenaudojami teiginiai
- Miręs kodas
- Nenaudojami filialai
- Trūksta pareiškimų
Sprendimų aprėptis
Sprendimų aprėptis yra baltos dėžės testavimo technika, kuri praneša apie tikrus ar melagingus kiekvienos šaltinio kodo loginės išraiškos rezultatus. Sprendimų aprėpties testavimo tikslas yra aprėpti ir patvirtinti visą prieinamą šaltinio kodą, patikrinant ir užtikrinant, kad kiekvieno galimo sprendimo taško kiekviena šaka būtų vykdoma bent kartą.
Šioje aprėpties išraiškos kartais gali komplikuotis. Todėl labai sunku pasiekti 100% aprėptį. Štai kodėl yra daug įvairių būdų pranešti apie šią metriką. Visi šie metodai sutelkti dėmesį į svarbiausių derinių aprėpimą. Tai labai panašu į sprendimų aprėptį, tačiau siūlo didesnį jautrumą srauto valdymui.
Sprendimo aprėpties pavyzdys
Apsvarstykite šį kodą
Demonstracija (int a) {Jei (a> 5)a = a * 3Spausdinti (a)}
1 scenarijus:
A vertė yra 2
Bus įvykdytas geltonai paryškintas kodas. Čia patikrinamas „Ne“ sprendimo rezultatas (jei (a> 5).
Sprendimo aprėptis = 50%
2 scenarijus:
A vertė yra 6
Bus įvykdytas geltonai paryškintas kodas. Čia patikrinamas „Taip“ sprendimo rezultatas (jei (a> 5).
Sprendimo aprėptis = 50%
Bandomasis atvejis | A vertė | Rezultatas | Sprendimų aprėptis |
1 | 2 | 2 | 50% |
2 | 6 | 18 | 50% |
Filialo aprėptis
Filialo aprėptis yra baltos dėžės testavimo metodas, kurio metu tikrinami visi kodo modulio (sakinio ar ciklo) rezultatai. Filialo aprėpties tikslas yra užtikrinti, kad kiekviena filialo kiekviena sprendimo sąlyga būtų įvykdyta bent kartą. Tai padeda išmatuoti nepriklausomų kodo segmentų dalis ir sužinoti skyrius, kuriuose nėra šakų.
Pavyzdžiui, jei rezultatai yra dvejetainiai, turite išbandyti ir teisingus, ir klaidingus rezultatus.
Filialo padengimo apskaičiavimo formulė:
Filialų aprėpties pavyzdys
Norėdami sužinoti apie šakų aprėptį, apsvarstykime tą patį pavyzdį, kuris buvo naudojamas anksčiau
Apsvarstykite šį kodą
Demonstracija (int a) {Jei (a> 5)a = a * 3Spausdinti (a)}
Filialo aprėptis taip pat atsižvelgs į besąlygišką šaką
Bandomasis atvejis | A vertė | Rezultatas | Sprendimų aprėptis | Filialo aprėptis |
1 | 2 | 2 | 50% | 33% |
2 | 6 | 18 | 50% | 67% |
Filialo aprėpties privalumai:
Filialų aprėpties testavimas suteikia šiuos pranašumus:
- Leidžia patvirtinti visas kodo šakas
- Padeda jums įsitikinti, kad jokia išsišakojusi programa nenukrypsta nuo programos veikimo
- Filialo aprėpties metodas pašalina problemas, kylančias dėl ataskaitų aprėpties testavimo
- Leidžia rasti tas sritis, kurios nėra išbandytos kitais bandymo metodais
- Tai leidžia jums rasti kiekybinį kodo aprėpties matą
- Šakos aprėptis nepaiso šakų Būlo išraiškose
Būklės aprėptis
Sąlygos aprėptis arba išraiškos aprėptis yra bandymo metodas, naudojamas sąlyginio sakinio kintamiesiems ar posakiams tirti ir įvertinti. Sąlygos aprėpties tikslas yra patikrinti kiekvienos loginės sąlygos individualius rezultatus. Būklės aprėptis suteikia didesnį jautrumą valdymo srautui nei sprendimo aprėptis. Šioje aprėptyje nagrinėjamos tik loginių operandų išraiškos.
Pvz., Jei išraiška turi logines operacijas, pvz., AND, OR, XOR, kuri nurodo visas galimybes.
Būklės aprėptis nesuteikia garantijos dėl visiško sprendimo aprėpties.
Būklės aprėpties apskaičiavimo formulė:
Pavyzdys:
Aukščiau pateiktai išraiškai turime 4 galimus derinius
- TT
- FF
- TF
- FT
Apsvarstykite šį įvestį
X = 3 Y = 4 |
(x |
TIESA |
Būklės aprėptis yra ¼ = 25% |
A = 3 B = 4 |
(a> b) |
NETIESA |
Galutinė valstybės mašinų aprėptis
Galutinės būsenos mašinų aprėptis yra neabejotinai sudėtingiausias kodo aprėpties metodo tipas. Taip yra todėl, kad tai veikia atsižvelgiant į dizaino elgseną. Taikant šį aprėpties metodą reikia ieškoti, kiek konkrečiam laikui būdingų būsenų yra aplankyta, tranzitu. Taip pat patikrinama, kiek sekų yra įtrauktos į baigtinės būsenos mašiną.
Kokį kodo aprėpties tipą pasirinkti
Tai tikrai sunkiausia atsakyti. Norėdami pasirinkti aprėpties metodą, testuotojas turi patikrinti, ar
- bandomas kodas turi vieną ar kelis neatrastus defektus
- galimos baudos kaina
- prarastos reputacijos kaina
- prarasto pardavimo kaina ir kt.
Kuo didesnė tikimybė, kad defektai sukels brangius gamybos gedimus, tuo sunkesnį aprėpties lygį turite pasirinkti.
Kodo aprėptis ir funkcinė aprėptis
Kodo aprėptis | Funkcinis aprėptis |
Kodo aprėptis nurodo, kaip gerai jūsų bandymų stende buvo panaudotas šaltinio kodas. | Funkcinė aprėptis matuoja, kaip gerai dizaino funkcionalumą padengė jūsų bandymų stendas. |
Niekada nenaudokite projekto specifikacijos | Naudokite projekto specifikaciją |
Atliko kūrėjai | Priėmė Testuotojai |
Kodo aprėpties įrankiai
Čia yra svarbių kodo aprėpties įrankių sąrašas:
Įrankio pavadinimas | apibūdinimas |
Kobertūra | Tai yra atvirojo kodo aprėpties įrankis. Jis matuoja testo aprėptį, užprogramuodamas kodo bazę, ir analizuoja, kurios kodo eilutės vykdomos, o kurios nevykdomos, kai veikia testų rinkinys. |
Dobilas | Dobilas taip pat sumažina testingo laiką vykdydamas tik testus, kurie apima programos kodą, kuris buvo modifikuotas nuo ankstesnio kūrimo. |
„DevPartner“ | „DevPartner“ leidžia kūrėjams analizuoti „Java“ kodo kokybę ir sudėtingumą. |
Ema | EMMA palaiko klasės, metodo, eilutės ir pagrindinio bloko aprėptį, sukauptą šaltinio failą, klasę ir metodo lygius. |
Kalistickas | „Kalistick“ yra trečiosios šalies programa, analizuojanti kodus skirtingomis perspektyvomis. |
„CoView“ ir „CoAnt“ | Kodavimo programinė įranga yra kodo aprėpties įrankis, skirtas metrikai, imituoti objektą, testuoti kodą, kelio ir šakos aprėptį ir kt. |
Bullseye C ++ | „BulseyeCoverage“ yra C ++ ir C kodo aprėpties įrankis. |
Sonaras | „Sonar“ yra atviro kodo aprėpties įrankis, kuris padeda valdyti kodo kokybę. |
Kodo aprėpties naudojimo pranašumai
- Naudinga įvertinti kiekybinį kodo aprėpties matą
- Tai leidžia jums sukurti papildomų bandymų atvejų, kad padidintumėte aprėptį
- Tai leidžia jums rasti programos sritis, kurių nevykdo bandymų atvejai
Kodo aprėpties naudojimo trūkumai
- Net kai kuri nors konkreti funkcija nėra įdiegta projektuojant, kodo aprėptis vis tiek yra 100% aprėptis.
- Neįmanoma nustatyti, ar mes patikrinome visas įmanomas funkcijos vertes kodo aprėpties pagalba
- Kodo aprėptis taip pat nenurodo, kiek ir kaip gerai aprėpėte savo logiką
- Tuo atveju, kai nurodyta funkcija neįdiegta arba nėra įtraukta į specifikaciją, struktūra pagrįstais metodais negalima rasti šios problemos.
Santrauka
- Kodo aprėptis yra priemonė, apibūdinanti programos šaltinio kodo patikrinimo laipsnį
- Tai padeda jums įvertinti testo įgyvendinimo efektyvumą
- Penki kodo aprėpties metodai yra 1.) Pareiškimo aprėptis 2.) Sąlygos aprėptis 3) Filialo aprėptis 4) Perjungti aprėptį 5) MFV aprėptis
- Išrašų aprėptis apima visų vykdomųjų sakinių vykdymą šaltinio kode bent kartą
- Sprendimo aprėptis nurodo tikrus ar melagingus kiekvienos Boolean išraiškos rezultatus
- Filialo aprėptyje išbandomi visi kodo modulio rezultatai
- Sąlyginis atskleis, kaip vertinami sąlyginio sakinio kintamieji ar posakiai
- Galutinės būsenos mašinų aprėptis yra neabejotinai sudėtingiausias kodo aprėpties metodo tipas
- Kad pasirinktų aprėpties metodą, testuotojas turi patikrinti galimo baudos, prarastos reputacijos, prarasto pardavimo ir kt. Kainą.
- Kodo aprėptis nurodo, kaip gerai jūsų bandymų stendas panaudojo šaltinio kodą, o funkcinė aprėptis rodo, kaip gerai aprėpta dizaino funkcionalumas
- „Cobertura“, „JTest“, „Clover“, „Emma“ ir „Kalistick“ yra keletas svarbių kodo aprėpties įrankių
- Kodo aprėptis leidžia sukurti papildomus bandymo atvejus, kad padidintumėte aprėptį
- Kodo aprėptis nepadeda nustatyti, ar išbandėme visas įmanomas funkcijos vertes