white box testing complete guide with techniques
Što je testiranje bijele kutije?
Ako se pridržavamo definicije, 'ispitivanje bijele kutije' (također poznato kao prozirna, staklena kutija ili ispitivanje konstrukcija) tehnika je ispitivanja koja ocjenjuje kôd i unutarnju strukturu programa.
Testiranje bijele kutije uključuje promatranje strukture koda. Kad znate unutarnju strukturu proizvoda, mogu se provesti ispitivanja kako bi se osiguralo da se unutarnje operacije izvode prema specifikaciji. A sve su unutarnje komponente adekvatno primijenjene.
Što ćete naučiti:
- Moje iskustvo
- Razlika između White-Box i Black-Box testiranja
- Koraci za izvođenje WBT-a
- Vrste i tehnike ispitivanja bijele kutije
- Primjer ispitivanja bijele kutije
- Alati za ispitivanje bijele kutije
- Zaključak
- Preporučena literatura
Moje iskustvo
Prošlo je gotovo desetljeće otkako se bavim testiranjem softvera i do sada sam primijetio da su testeri najoduševljeniji u cijeloj softverskoj industriji.
Glavni razlog za to je - ispitivač uvijek ima što naučiti. Bilo da je riječ o domeni, procesu ili tehnologiji, tester može imati cjelovit razvoj ako to želi.
Ali kako kažu 'Uvijek postoji mračnija strana' .
Ispitivači također doista izbjegavaju vrstu testiranja za koju smatraju da je vrlo komplicirana i programer. Da, 'Ispitivanje bijele kutije'.
Pokrivenost
White Box Testiranje obuhvaća specifikaciju u kodu:
2. Pokrivenost segmenta: Osigurajte da se svaka naredba koda izvrši jednom.
3. Pokrivenost podružnice ili ispitivanje čvorova: Pokrivenost svake grane koda od svih mogućih bila je.
4. Pokrivenost složenog stanja: Za više uvjeta testirajte svaki uvjet s više putova i kombinacijom različitih putova da biste postigli taj uvjet.
5. Osnovno ispitivanje puta: Svaka neovisna staza u kodu uzima se na testiranje.
6. Ispitivanje protoka podataka (DFT): U ovom pristupu pratite specifične varijable kroz svaki mogući izračun, definirajući tako niz posrednih putova kroz kod. DFT nastoji odražavati ovisnosti, ali to je uglavnom kroz sekvence manipulacije podacima. Ukratko, prati se svaka podatkovna varijabla i provjerava se njena upotreba. Ovaj pristup teži otkrivanju programskih pogrešaka poput korištenih varijabli, ali ne i inicijaliziranja ili deklariranja, ali ne korištenja itd.
7. Ispitivanje puta: Ispitivanje puta je mjesto gdje su definirani i pokriveni svi mogući putovi kroz kôd. To je dugotrajan zadatak.
8. Ispitivanje petlje: Te se strategije odnose na testiranje pojedinačnih petlji, spojenih petlji i ugniježđenih petlji. Ovim se pristupom ispituju neovisne i ovisne petlje i vrijednosti koda.
Zašto izvodimo WBT?
Osigurati:
- Da su svi neovisni putovi unutar modula izvršeni barem jednom.
- Sve logičke odluke provjerene na njihovim pravim i lažnim vrijednostima.
- Sve se petlje izvršavaju na njihovim granicama i unutar njihovih operativnih granica valjanosti unutarnjih struktura podataka.
Da biste otkrili sljedeće vrste bugova:
- Logičke se pogreške obično uvlače u naš rad kad dizajniramo i implementiramo funkcije, uvjete ili kontrole koji su izvan programa
- Pogreške u dizajnu zbog razlike između logičkog tijeka programa i stvarne implementacije
- Tipografske pogreške i provjera sintakse
Da li ovo testiranje zahtijeva detaljne vještine programiranja?
Moramo pisati test slučajevi koji osiguravaju potpuno pokrivanje programske logike.
Za to moramo dobro poznavati program, tj. Trebali bismo znati specifikaciju i kod koji ćemo testirati. Za ovu vrstu testiranja potrebno je znanje programskih jezika i logike.
Ograničenja
Nije moguće testirati svaki put petlji u programu. To znači da je iscrpno testiranje nemoguće za velike sustave.
To ne znači da WBT nije učinkovit. Odabirom važnih logičkih putova i strukture podataka za testiranje je praktički moguće i učinkovito.
Razlika između White-Box i Black-Box testiranja
Jednostavno rečeno:
U okviru testiranja crne kutije testiramo softver s gledišta korisnika, ali u bijeloj kutiji vidimo i testiramo stvarni kôd.
U testiranju crne kutije provodimo testiranje ne videći interni sistemski kod, ali u WBT-u vidimo i testiramo interni kod.
Tehniku testiranja bijele kutije koriste i programeri kao i testeri. Pomaže im da shvate koja se linija koda zapravo izvršava, a koja ne. To može ukazivati na to da nedostaje logika ili greška u kucanju, što na kraju može dovesti do nekih negativnih posljedica.
Preporučeno čitanje => Cjelovit vodič za testiranje crne kutije
Koraci za izvođenje WBT-a
Korak 1 - Razumijevanje funkcionalnosti aplikacije putem izvornog koda. Što znači da tester mora biti dobro upućen u programski jezik i ostale alate, kao i tehnike korištene za razvoj softvera.
Korak 2 - Stvorite testove i izvršite ih.
Kada razgovaramo o konceptu testiranja, “ pokrivenost ”Smatra se najvažnijim čimbenikom. Ovdje ću objasniti kako dobiti maksimalno pokriće iz konteksta testiranja bijele kutije.
Također pročitajte=> Uzrok i posljedica Grafikon - Tehnika pisanja dinamičkih test slučajeva za maksimalnu pokrivenost
Vrste i tehnike ispitivanja bijele kutije
Postoji nekoliko vrsta i različitih metoda za svaku vrstu testiranja bijele kutije.
Pogledajte donju sliku za vašu referencu.
Danas ćemo se uglavnom usredotočiti na vrste ispitivanja izvršenja 'Jedinstveno testiranje tehnike bijelih kutija'.
3 glavne tehnike ispitivanja bijele kutije:
- Obuhvat izvještaja
- Pokrivenost podružnice
- Pokrivenost puta
Imajte na umu da izjava, grana ili pokrivenost puta ne identificira nijednu grešku ili kvar koji treba popraviti. Identificira samo one retke koda koji se nikad ne izvrše ili ostanu netaknuti. Na temelju ovoga može se usredotočiti na daljnje testiranje.
Razumijemo ove tehnike jednu po jednu jednostavnim primjerom.
# 1) Obuhvat izjave:
U programskom jeziku, izjava nije ništa drugo do crta koda ili uputa za računalo da razumije i djeluje u skladu s tim. Izjava postaje izvršna naredba kada se prevede i pretvori u objektni kôd i izvršava radnju kada je program u pokrenutom načinu.
Stoga “Pokrivenost izjave” , kao što i samo ime govori, to je metoda provjere izvršava li se svaki redak koda barem jednom.
# 2) Pokrivenost podružnice:
'Branch' u programskom jeziku je poput 'IF naredbi'. Izjava IF ima dvije grane: T rue i False .
Tako u pokrivanju podružnica (koje se nazivaju i pokrivenost odlukama) provjeravamo izvršava li se svaka podružnica barem jednom.
U slučaju 'IF izjave', postojat će dva uvjeta ispitivanja:
- Jedan za provjeru prave grane i,
- Ostalo za provjeru lažne grane.
Stoga je u teoriji pokrivenost grane metoda ispitivanja koja kada se izvrši osigurava izvršenje svake grane iz svake točke odluke.
# 3) Pokrivenost puta
Pokrivenost puta testira sve staze programa. Ovo je sveobuhvatna tehnika koja osigurava da se svi putovi programa pređu barem jednom. Pokrivenost puta je čak i moćnija od pokrivanja podružnice. Ova je tehnika korisna za testiranje složenih programa.
Uzmimo jednostavan primjer da bismo razumjeli sve ove tehnike testiranja bijelih kutija.
najpopularniji alati za analitiku velikih podataka
Također provjerite=> Različite vrste ispitivanja
Primjer ispitivanja bijele kutije
Razmotrite donji jednostavni pseudokod:
INPUT A & B C = A + B IF C>100 PRINT “ITS DONE”
Za Obuhvat izvještaja - trebao bi nam samo jedan testni slučaj da provjerimo sve retke koda.
To znaci:
Ako razmislim TestCase_01 biti (A = 40 i B = 70), tada će se izvršiti svi redovi koda.
Sad se postavlja pitanje:
- Je li to dovoljno?
- Što ako svoj testni slučaj smatram A = 33 i B = 45?
Budući da će pokriće Izjave pokrivati samo istinsku stranu, za pseudo kôd samo jedan test ne bi bio dovoljan za testiranje. Kao tester moramo uzeti u obzir i negativne slučajeve.
Stoga za maksimalnu pokrivenost moramo razmotriti ' Pokrivenost podružnice ' , koji će procijeniti uvjete 'FALSE'.
U stvarnom svijetu možete dodati odgovarajuće izjave kada stanje ne uspije.
Dakle, pseudokod postaje:
INPUT A & B C = A + B IF C>100 PRINT “ITS DONE” ELSE PRINT “ITS PENDING”
Budući da pokrivenost Izjavama nije dovoljna za testiranje cijelog pseudo koda, zatražili bismo pokrivanje podružnice kako bismo osigurali maksimalnu pokrivenost .
Dakle, za pokriće podružnice, potrebna su nam dva testna slučaja da bismo dovršili testiranje ovog pseudo koda.
TestCase_01 : A = 33, B = 45
TestCase_02 : A = 25, B = 30
Ovime možemo vidjeti da se svaki redak koda izvrši barem jednom.
Evo zaključaka koji su do sada izvedeni:
- Pokrivenost podružnica osigurava veću pokrivenost od pokrivenosti Izjave.
- Pokrivenost podružnica je snažnija od pokrivenosti izjavom.
- 100% pokrivenost same podružnice znači 100% pokrivenost izvoda.
- Ali 100% pokrivenost izvatkom ne jamči 100% pokrivenost poslovnica.
Krenimo sada na Pokrivenost puta:
Kao što je ranije rečeno, pokrivanje puta koristi se za testiranje složenih isječaka koda, koji u osnovi uključuju izjave petlje ili kombinaciju petlji i izjave odluke.
Razmotrite ovaj pseudokod:
INPUT A & B C = A + B IF C>100 PRINT “ITS DONE” END IF IF A>50 PRINT “ITS PENDING” END IF
Da bismo osigurali maksimalno pokriće, trebala bi nam 4 testna slučaja.
Kako? Jednostavno - postoje 2 izjave o odluci, pa bi za svaku izjavu odluke trebale dvije grane za testiranje. Jedno za istinito, a drugo za lažno stanje. Dakle, za dvije izjave o odluci bila bi potrebna 2 testna slučaja za testiranje prave strane i 2 testna slučaja za testiranje lažne strane, što ukupno čini 4 testna slučaja.
Da bismo ih pojednostavili, razmotrimo u nastavku dijagram toka pseudo koda koji imamo:
Da bismo imali potpuno pokriće, trebali bi nam sljedeći testni slučajevi:
TestCase_01: A = 50, B = 60
TestCase_02 : A = 55, B = 40
TestCase_03: A = 40, B = 65
TestCase_04: A = 30, B = 30
Tako će pređeni put biti:
Crvena linija - TestCase_01 = (A = 50, B = 60)
Plava crta = TestCase_02 = (A = 55, B = 40)
Narančasta crta = TestCase_03 = (A = 40, B = 65)
Zelena crta = TestCase_04 = (A = 30, B = 30)
******************
= >> Kontaktirajte nas da predložim vaš popis ovdje
*****************
Alati za ispitivanje bijele kutije
Dolje je dan popis najboljih alata za testiranje bijelih kutija.
# 1) Veracode
Veracodeovi alati za testiranje bijele kutije pomoći će vam u brzom i jednostavnom prepoznavanju i rješavanju softverskih nedostataka uz smanjenu cijenu. Podržava nekoliko aplikacijskih jezika poput .NET, C ++, JAVA itd., A također vam omogućuje testiranje sigurnosti radne površine, weba kao i mobilnih aplikacija. Ipak, postoji još nekoliko prednosti alata Veracode. Za detaljne informacije o alatima za ispitivanje kutije Veracode White provjerite donju poveznicu.
Poveznica web stranice: Veracode
pitanja i odgovori na intervjuu za devops za iskusne
# 2) EclEmma
EclEmma je u početku dizajniran za probne vožnje i analize u radnom stolu Eclipse. Smatra se besplatnim alatom za pokrivanje Java koda, a također ima nekoliko značajki. Da biste instalirali ili saznali više o EclEmma, pogledajte donju poveznicu.
Poveznica web stranice: EclEmma
# 3) KOTAK
Okvir koji se koristi za testiranje C programa poznat je pod nazivom RCUNIT. RCUNIT se može koristiti u skladu s tim na temelju uvjeta MIT licence. Besplatno se koristi, a da biste ga instalirali ili saznali više, provjerite donju poveznicu.
Poveznica web stranice: KOTAK
# 4) cfix
cfix je jedan od okvira za jedinično testiranje za C / C ++ koji ima za cilj samo napraviti što jednostavniji i lakši razvoj programskih paketa. U međuvremenu, cfix je obično specijaliziran za NT Kernel način i Win32. Da biste instalirali i saznali više o cfixu, pogledajte vezu u nastavku
Poveznica web stranice: cfix
# 5) Google test
Googletest je Googleov testni okvir za C ++. Otkrivanje testa, testovi smrti, testovi parametrirani vrijednošću, fatalni i nefatalni kvarovi, generiranje izvještaja o XML testu itd. Nekoliko su značajki GoogleTesta, ali postoji i nekoliko drugih značajki. Linux, Windows, Symbian, Mac OS X nekoliko je platformi na kojima se koristi GoogleTest. Da biPreuzmite, provjerite donju poveznicu.
Poveznica za skidanje: Googleov test
# 6) EMMA
Emma je jednostavan za korištenje besplatni alat za pokrivanje JAVA koda. Sadrži nekoliko značajki i prednosti. Da biste preuzeli i saznali više o Emmi, provjerite donju poveznicu.
Poveznica za skidanje: EMMA
# 7) NUnit
NUnit je jednostavan okvir za testiranje jedinice otvorenog koda koji ne zahtijeva bilo kakvu ručnu intervenciju za ocjenu rezultata testa. Podržava sve .NET jezike. Također podržava testove vođene podacima i testove koji se izvode paralelno pod NUnit-om. Ranija izdanja NUnit-a koristila su NUnit licencu, ali NUnit 3 je izdana pod MIT licencom. Ali obje licence dopuštaju besplatno korištenje bez ikakvih ograničenja. Da biste preuzeli i saznali više o NUnit-u, provjerite donju poveznicu.
Poveznica za skidanje: NUnit
# 8) CppUnit
CppUnit je okvir za jedinično testiranje napisan na C ++ i smatra se lukom JUnit. Probni izlaz za CppUnit može biti u XML-u ili u tekstualnom formatu. Stvara jedinstvene testove s vlastitom klasom i provodi testove u testnim paketima. Licenciran je pod LGPL. Da biste preuzeli i saznali više o CppUnit-u, provjerite donju poveznicu.
Poveznica za skidanje: CppUnit
# 9) JUnit
JUnit je tihi jednostavni okvir za jedinično testiranje koji podržava automatizaciju ispitivanja u programskom jeziku Java. Uglavnom podržava Test Driven Development, a pruža i izvještaj o pokrivenosti testom. Licenciran je pod javnom licencom Eclipse. Za besplatno preuzimanje i kako biste saznali više o JUnit-u, provjerite donju poveznicu.
Poveznica za skidanje: JUNIT
# 10) JsUnit
JsUnit se smatra priključkom JUnit za javascript. To je okvir za jedinstveno testiranje otvorenog koda koji podržava klijentski podržani Javascript. Licenciran je pod GNU Public License 2.0, GNU Lesser Public License 2.1 i Mozilla Public License 1.1. Da biste preuzeli i saznali više o JsUnit-u, provjerite donju poveznicu.
Poveznica za skidanje: JsUnit
Također provjerite sve alate koje smo naveli pod Analiza statičkog koda ovdje .
Slobodno predložite jednostavnije ili naprednije alate koje koristite za tehniku bijele kutije.
Zaključak
Oslanjanje samo na testiranje crne kutije nije dovoljno za maksimalnu pokrivenost testom. Moramo imati kombinaciju tehnika testiranja crne kutije i bijele kutije pokrivaju maksimalne nedostatke .
Ako se pravilno izvede, testiranje bijele kutije sigurno će pridonijeti kvaliteti softvera. Također je dobro za testere da sudjeluju u ovom testiranju jer može pružiti najnepristranije mišljenje o kodu. :)
Javite nam ako imate pitanja o metodama o kojima smo govorili u ovom članku.
Preporučena literatura
- Ključne razlike između testiranja crne kutije i bijele kutije
- Testiranje crne kutije: produbljeni vodič s primjerima i tehnikama
- Funkcionalno ispitivanje vs nefunkcionalno testiranje
- Najbolji alati za testiranje softvera 2021. (Alati za automatizaciju ispitivanja kvalitete)
- Razmišljate izvan okvira tijekom testiranja softvera!
- Vodič za ispitivanje prenosivosti s praktičnim primjerima
- Alfa testiranje i beta testiranje (cjelovit vodič)
- Vrste testiranja softvera: različite vrste ispitivanja s pojedinostima