Code Alat za pokrivenost: Testiranje izjava, grananja i odluka
โก Pametni saลพetak
Code pokrivenost je mjerenje bijele kutije koje pokazuje stupanj u kojem je izvorni kod testiran testnim paketom, helping Timovi pronalaze netestirane naredbe, grane, uvjete i putove koje mogu zauzimati skriveni nedostaci.

ล to je Code Pokrivenost?
Code pokrivenost je mjera koja opisuje stupanj testiranja izvornog koda programa. To je jedan oblik testiranje bijele kutije koji pronalazi podruฤja programa koja nisu testirana skupom testnih sluฤajeva. Takoฤer pomaลพe u stvaranju dodatnih testnih sluฤajeva za poveฤanje pokrivenosti i odreฤivanje kvantitativne mjere pokrivenosti koda.
U veฤini sluฤajeva, sustav za pokrivenost koda prikuplja informacije o programu koji se izvrลกava. Zatim ih kombinira s informacijama o izvornom kodu kako bi generirao izvjeลกฤe o pokrivenosti koda testnog paketa.
Zaลกto koristiti Code Testiranje pokrivenosti?
Evo nekoliko glavnih razloga za koriลกtenje pokrivenosti kodom:
- Pomaลพe vam u mjerenju uฤinkovitosti implementacije testiranja.
- Nudi kvantitativno mjerenje testiranja.
- Definira stupanj do kojeg je izvorni kod testiran.
Code Metode pokrivanja
Slijede glavne metode pokrivanja koda:
- Pokrivenost izjave
- Pokrivenost odluka
- Pokrivenost podruลพnica
- Toggle Pokrivenost
- FSM pokrivenost
Pokrivenost izjave
Pokrivenost izjave je tehnika testiranja bijele kutije u kojoj se sve izvrลกne naredbe u izvornom kodu izvrลกavaju barem jednom. Koristi se za izraฤunavanje broja naredbi u izvornom kodu koje su izvrลกene. Glavna svrha pokrivanja naredbi je pokriti sve moguฤe putove, retke i naredbe u izvornom kodu.
Pokrivenost izjavama koristi se za izvoฤenje scenarija na temelju strukture koda koji se testira.
U testiranju bijele kutije, tester se koncentrira na to kako softver radi. Drugim rijeฤima, tester se koncentrira na unutarnji rad izvornog koda u vezi s grafovima toka upravljanja ili dijagramima toka.
Opฤenito u bilo kojem softveru, ako pogledate izvorni kod, postojat ฤe ลกirok raspon elemenata poput operatora, funkcija, looping, rukovatelje iznimkama i tako dalje. Na temelju ulaznih podataka u program, neke od naredbi koda moลพda se neฤe izvrลกiti. Cilj pokrivanja naredbi je pokriti sve moguฤe putove, retke i naredbe u kodu.
Razumijemo ovo s primjerom kako izraฤunati pokrivenost izvoda. Ovdje uzimamo dva razliฤita scenarija kako bismo provjerili postotak pokrivenosti izvoda za svaki scenarij.
izvor 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
Scenarij 1: Ako je A = 3, B = 9
ลฝutom bojom oznaฤene su izjave koje se izvrลกavaju prema scenariju. Broj izvrลกenih izjava = 5, Ukupan broj izjava = 7, pa je Pokrivenost izjava = 5/7 = 71%.
Scenarij 2: Ako je A = -3, B = -9
ลฝutom bojom oznaฤene su izjave koje se izvrลกavaju prema scenariju. Broj izvrลกenih izjava = 6, Ukupan broj izjava = 7, pa je Pokrivenost izjava = 6/7 = 85%.
Ali sveukupno, ako vidite, sve izjave su pokrivene oba scenarija. Dakle, moลพemo zakljuฤiti da je ukupna pokrivenost izjava 100%.
ล to pokriva Statement Coverage?
- Neiskoriลกtene izjave
- Mrtav Code
- Neiskoriลกtene grane
- Izjave koje nedostaju
Testiranje pokrivenosti odluka
Pokrivenost odluka je tehnika testiranja bijele kutije koja izvjeลกtava o istinitim ili netoฤnim ishodima svakog logiฤkog izraza u izvornom kodu. Cilj testiranja pokrivenosti odluka je pokriti i validirati sav dostupni izvorni kod provjerom i osiguravanjem da se svaka grana svake moguฤe toฤke odluke izvrลกi barem jednom.
U ovoj vrsti pokrivenosti, izrazi mogu postati sloลพeni, ลกto oteลพava postizanje 100%-tne pokrivenosti. Zbog toga se koriste razliฤite metode za izvjeลกtavanje o ovoj metrici. Ove metode daju prioritet najkritiฤnijim kombinacijama. Iako je sliฤno pokrivanju granama, pruลพa veฤu osjetljivost na tok upravljanja.
Primjer pokrivenosti odlukama
Razmotrite sljedeฤi kรดd:
Demo(int a) { If (a > 5) a = a * 3 Print (a) }
Scenarij 1: Vrijednost a je 2. Ishod odluke "Ne". Ako je oznaฤeno (a>5), onda je Pokrivenost odluke = 50%.
Scenarij 2: Vrijednost a je 6. Ishod odluke "Da". Ako je oznaฤeno (a>5), onda je Pokrivenost odluke = 50%.
| Testni sluฤaj | Vrijednost A | Izlaz | Pokrivenost odluka |
|---|---|---|---|
| 1 | 2 | 2 | 50% |
| 2 | 6 | 18 | 50% |
Testiranje pokrivenosti podruลพnica
Pokrivenost podruลพnica je metoda testiranja bijele kutije u kojoj se testira svaki ishod iz kodnog modula (naredbe ili petlje). Svrha pokrivanja grananja je osigurati da se svaki uvjet odluke iz svake grane izvrลกi barem jednom. Pomaลพe u mjerenju udjela neovisnih segmenata koda i pronalaลพenju odjeljaka koji nemaju grane.
Na primjer, ako su ishodi binarni, morate testirati i True i False ishode.
Formula za izraฤun pokrivenosti podruลพnice:
Primjer pokrivenosti podruลพnica
Za uฤenje pokrivenosti grananja, razmotrite isti primjer koji je ranije koriลกten. Pokrivenost grananja ฤe takoฤer uzeti u obzir bezuvjetnu granu.
| Testni sluฤaj | Vrijednost A | Izlaz | Pokrivenost odluka | Pokrivenost podruลพnica |
|---|---|---|---|---|
| 1 | 2 | 2 | 50% | 33% |
| 2 | 6 | 18 | 50% | 67% |
Prednosti pokrivenosti podruลพnice:
- Omoguฤuje vam validaciju svih grana u kodu.
- Pomaลพe vam osigurati da nijedna grana ne dovede do abnormalnosti u radu programa.
- Uklanja probleme koji se javljaju zbog testiranja pokrivenosti izjava.
- Omoguฤuje vam pronalaลพenje podruฤja koja nisu testirana drugim metodama testiranja.
- Omoguฤuje vam pronalaลพenje kvantitativne mjere pokrivenosti koda.
- Pokrivenost grana zanemaruje grane unutar logiฤkih izraza.
Ispitivanje pokrivenosti stanja
Pokrivenost stanjaPokrivenost izraza, ili pokrivenost izraza, je metoda testiranja koja se koristi za testiranje i procjenu varijabli ili podizraza u uvjetnoj naredbi. Cilj pokrivenosti uvjeta je provjera pojedinaฤnih ishoda za svaki logiฤki uvjet. Pokrivenost uvjeta nudi bolju osjetljivost na tok upravljanja od pokriฤa odluka. U ovom pokrivanju razmatraju se samo izrazi s logiฤkim operandima.
Na primjer, ako izraz ima logiฤke operacije poput AND, OR ili XOR, to oznaฤava ukupan broj moguฤnosti. Pokrivenost uvjeta ne jamฤi potpunu pokrivenost odluka.
Formula za izraฤun pokriฤa stanja:
Za izraz s dva operanda postoje ฤetiri moguฤe kombinacije: TT, FF, TF i FT. Razmotrimo ulaz X=3, Y=4 (x b) NETOฤNO, ลกto daje pokrivenost uvjeta od 1/4 = 25%.
Pokrivenost konaฤnog stroja stanja
Pokrivenost konaฤnim automatom stanja zasigurno je najsloลพenija vrsta metode pokrivanja koda. To je zato ลกto radi na ponaลกanju dizajna. U ovoj metodi pokrivanja potrebno je pogledati koliko puta se odreฤena stanja posjeฤuju ili prolaze. Takoฤer se provjerava koliko je sekvenci ukljuฤeno u konaฤni automat stanja.
Koja vrsta Code Pokrivenost po izboru
Ovo je svakako najteลพi odgovor. Kako bi odabrao metodu pokrivanja, tester mora provjeriti je li:
- kod koji se testira ima jedan ili viลกe neotkrivenih nedostataka,
- troลกak potencijalne kazne,
- cijena izgubljenog ugleda,
- troลกak izgubljene prodaje i tako dalje.
ล to je veฤa vjerojatnost da ฤe nedostaci uzrokovati skupe kvarove u proizvodnji, to je veฤa razina pokrivenosti koju trebate odabrati.
Code Pokrivenost u odnosu na funkcionalnu pokrivenost
| Code Pokrivenost | Funkcionalna pokrivenost |
|---|---|
| Pokazuje koliko je dobro izvorni kod testiran na vaลกem testnom sustavu. | Mjeri koliko je dobro funkcionalnost dizajna pokrivena vaลกim ispitnim stolom. |
| Nikada ne koristi specifikaciju dizajna. | Koristi specifikaciju dizajna. |
| Izradili programeri. | Izvrลกeno od strane testera. |
Code Alati za pokrivenost
Evo popisa vaลพnih alata za pokrivanje koda:
| Naziv alata | Description |
|---|---|
| Cobertura | Alat za pokrivenost otvorenog koda. Mjeri pokrivenost testovima instrumentiranjem baze koda i analizom koji se redovi koda izvrลกavaju, a koji ne, kada se pokrene testni paket. |
| Djetelina | Djetelina (OpenClover) takoฤer smanjuje vrijeme testiranja pokretanjem samo testova koji pokrivaju kod aplikacije izmijenjen od prethodne izgradnje. |
| DevPartner | DevPartner omoguฤuje programerima analizu Java kod za kvalitetu i sloลพenost koda. |
| Emma | EMMA podrลพava pokrivenost klasa, metoda, redaka i osnovnih blokova, agregirano na razini izvorne datoteke, klase i metode. |
| Kalistick | Kalistick je aplikacija treฤe strane koja analizira kod iz razliฤitih perspektiva. |
| CoView i CoAnt | Alat za pokrivenost koda za metrike, stvaranje laลพnih objekata, testiranje koda, pokrivenost putova i grana i joลก mnogo toga. |
| Bullseye za C++ | BullseyeCoverage je alat za pokrivanje koda za C++ i C. |
| Sonar | Sonar je alat za pokrivenost otvorenog koda koji vam pomaลพe u upravljanju kvalitetom koda. |
Prednosti i nedostaci koriลกtenja Code Pokrivenost
| Prednosti | Nedostaci |
|---|---|
| Korisno za procjenu kvantitativne mjere pokrivenosti koda. | ฤak i kada odreฤena znaฤajka nije implementirana u dizajnu, pokrivenost koda i dalje iznosi 100%-tnu pokrivenost. |
| Omoguฤuje vam stvaranje dodatnih testnih sluฤajeva za poveฤanje pokrivenosti. | Nije moguฤe utvrditi jesu li sve moguฤe vrijednosti znaฤajke testirane koriลกtenjem pokrivenosti koda. |
| Omoguฤuje vam pronalaลพenje podruฤja programa koja nisu testirana skupom testnih sluฤajeva. | Code pokrivenost ne govori koliko i koliko dobro ste pokrili svoju logiku. |






