white box testing complete guide with techniques
Kaj je testiranje bele škatle?
Če gremo za definicijo, je 'testiranje bele škatle' (znano tudi kot čista, steklena škatla ali strukturno testiranje) preskusna tehnika, ki ocenjuje kodo in notranjo strukturo programa.
Testiranje bele škatle vključuje pregled strukture kode. Ko poznate notranjo strukturo izdelka, lahko izvedete teste, s katerimi zagotovite, da se notranje operacije izvajajo v skladu s specifikacijami. In vse notranje komponente so bile ustrezno uveljavljene.
Kaj se boste naučili:
- Moje izkušnje
- Razlika med testiranjem White-Box in Black-Box
- Koraki za izvajanje WBT
- Vrste in tehnike testiranja bele škatle
- Primer testiranja bele škatle
- Orodja za testiranje bele škatle
- Zaključek
- Priporočeno branje
Moje izkušnje
Skoraj desetletje je, odkar se ukvarjam s področjem testiranja programske opreme in sem doslej opazil, da so preizkuševalci najbolj navdušeni v celotni industriji programske opreme.
Glavni razlog za to je - tester ima vedno nekaj, kar se lahko nauči. Naj bo to domena, postopek ali tehnologija, tester se lahko popolnoma razvije, če želi.
A kot pravijo 'Vedno obstaja temnejša stran' .
Preizkuševalci se tudi resnično izogibajo vrsti testiranja, za katero menijo, da je zelo zapletena, in razvijalčevemu delu. Da, 'testiranje bele škatle'.
Pokritost
White Box Testiranje je zajetje specifikacije v kodi:
2. Pokritost segmentov: Poskrbite, da se bo vsak stavek kode izvedel enkrat.
3. Pokritost podružnice ali preskušanje vozlišč: Pokritost vsake veje kode od vseh možnih je bila.
4. Pokritost sestavljenega stanja: Za več pogojev preizkusite vsak pogoj z več potmi in kombinacijo različnih poti, da dosežete to stanje.
5. Preskušanje osnovne poti: Vsaka neodvisna pot v kodi je preizkušena.
6. Preskušanje pretoka podatkov (DFT): Pri tem pristopu sledite določenim spremenljivkam z vsakim možnim izračunom in tako definirate nabor vmesnih poti skozi kodo. DFT ponavadi odraža odvisnosti, predvsem pa skozi zaporedja manipulacije s podatki. Skratka, vsaki podatkovni spremenljivki se sledi in preveri njena uporaba. Ta pristop ponavadi odkriva napake, kot so spremenljivke, ki se uporabljajo, vendar se ne inicializirajo ali deklarirajo, vendar ne uporabljajo itd.
7. Testiranje poti: Testiranje poti je mesto, kjer so definirane in zajete vse možne poti skozi kodo. To je zamudno opravilo.
8. Preskušanje z zanko: Te strategije se nanašajo na preizkušanje posameznih zank, združenih zank in ugnezdenih zank. Ta pristop preizkuša neodvisne in odvisne zanke in vrednosti kode.
Zakaj izvajamo WBT?
Zagotoviti:
- Da so bile vse neodvisne poti znotraj modula izvedene vsaj enkrat.
- Vse logične odločitve preverjene glede njihovih resničnih in napačnih vrednosti.
- Vse zanke se izvajajo na njihovih mejah in znotraj njihovih operativnih meja veljavnosti notranjih podatkovnih struktur.
Odkriti naslednje vrste napak:
- Logične napake se običajno prikradejo našemu delu, ko načrtujemo in izvajamo funkcije, pogoje ali kontrole, ki niso v programu
- Napake pri načrtovanju zaradi razlike med logičnim tokom programa in dejansko izvedbo
- Tiskarske napake in preverjanje skladnje
Ali to testiranje zahteva podrobna znanja programiranja?
Moramo pisati testni primeri ki zagotavljajo popolno pokritost programske logike.
Za to moramo dobro poznati program, torej poznati moramo specifikacijo in kodo, ki jo želimo preizkusiti. Za tovrstno testiranje je potrebno znanje programskih jezikov in logike.
Omejitve
Ni mogoče preizkusiti vseh poti zank v programu. To pomeni, da izčrpno testiranje za velike sisteme ni mogoče.
To ne pomeni, da WBT ni učinkovit. Z izbiro pomembnih logičnih poti in podatkovne strukture za testiranje je praktično mogoče in učinkovito.
Razlika med testiranjem White-Box in Black-Box
Preprosto povedano:
Pri testiranju črne škatle testiramo programsko opremo z vidika uporabnika, v beli škatli pa vidimo in preizkusimo dejansko kodo.
Pri testiranju črne skrinjice izvajamo testiranje, ne da bi videli notranjo sistemsko kodo, v WBT pa notranjo kodo vidimo in preizkusimo.
Tehniko testiranja bele škatle uporabljajo tako razvijalci kot preizkuševalci. Pomaga jim razumeti, katera vrstica kode je dejansko izvedena in katera ne. To lahko pomeni, da manjka logika ali tipkarska napaka, kar lahko sčasoma privede do nekaterih negativnih posledic.
Priporočeno branje => Popoln vodnik za testiranje črne škatle
Koraki za izvajanje WBT
Korak 1 - Razumevanje funkcionalnosti aplikacije prek njene izvorne kode. Kar pomeni, da mora biti preizkuševalec dobro obvladan s programskim jezikom in drugimi orodji ter tehnikami, ki se uporabljajo za razvoj programske opreme.
2. korak - Ustvarite teste in jih izvedite.
Ko razpravljamo o konceptu testiranja, pokritost 'Velja za najpomembnejši dejavnik. Tukaj bom razložil, kako zagotoviti največjo pokritost v kontekstu testiranja bele škatle.
Preberite tudi=> Graf vzrokov in posledic - Tehnika pisanja dinamičnih testnih primerov za največjo pokritost
Vrste in tehnike testiranja bele škatle
Za vsako vrsto preskušanja bele škatle obstaja več vrst in različnih metod.
Za referenco si oglejte spodnjo sliko.
Danes se bomo osredotočili predvsem na vrste preizkušanja izvedbe „Tehnika enote za testiranje bele škatle“.
3 glavne tehnike testiranja bele škatle:
- Pokritost izjave
- Pokritost podružnice
- Pokritost poti
Upoštevajte, da stavek, veja ali pokritost poti ne prepozna nobene napake ali napake, ki bi jo bilo treba odpraviti. Identificira samo tiste vrstice kode, ki se nikoli ne izvršijo ali ostanejo nedotaknjene. Na podlagi tega se lahko osredotočimo na nadaljnje testiranje.
Razumimo te tehnike eno za drugo s preprostim primerom.
# 1) Pokritost izjave:
V programskem jeziku stavek ni nič drugega kot vrstica kode ali navodila, ki jih mora računalnik razumeti in delovati v skladu s tem. Stavek postane izvršljiv stavek, ko se prevede in pretvori v objektno kodo in izvede dejanje, ko je program v delujočem načinu.
Zato 'Pokritost izjave' , kot že samo ime pove, je metoda preverjanja, ali se vsaka vrstica kode izvede vsaj enkrat.
# 2) Pokritost podružnice:
'Razvejanje' v programskem jeziku je kot 'stavki IF'. Stavek IF ima dve veji: T rue in False .
Torej v Pokrivanje podružnic (imenovano tudi Pokritje odločitev) preverimo, ali se vsaka podružnica izvede vsaj enkrat.
V primeru izjave »IF« bosta preskusna pogoja dva:
- Ena za potrditev prave veje in,
- Drugo za preverjanje napačne veje.
Torej je v teoriji pokritost podružnice testna metoda, ki ob izvedbi zagotavlja izvedbo vsake podružnice iz vsake odločitvene točke.
# 3) Pokritost poti
Pokrivanje poti preizkuša vse poti programa. To je obsežna tehnika, ki zagotavlja, da se vse poti programa prehodijo vsaj enkrat. Pokritost poti je celo močnejša od pokritosti podružnice. Ta tehnika je uporabna za testiranje zapletenih programov.
Vzemimo preprost primer, da bomo razumeli vse te tehnike preizkušanja bele škatle.
aplikacija za prosti čas za android
Preverite tudi=> Različne vrste testiranja
Primer testiranja bele škatle
Upoštevajte spodnjo preprosto psevdokodo:
INPUT A & B C = A + B IF C>100 PRINT “ITS DONE”
Za Pokritost izjave - za preverjanje vseh vrstic kode bi potrebovali le en testni primer.
To pomeni:
Če pomislim TestCase_01 naj bo (A = 40 in B = 70), potem bodo izvedene vse vrstice kode.
Zdaj se postavlja vprašanje:
- Ali je to dovolj?
- Kaj, če svoj testni primer obravnavam kot A = 33 in B = 45?
Ker bo pokritost z izjavo pokrivala samo resnično stran, za psevdo kodo za preskušanje NE bi zadostoval samo en testni primer. Kot preizkuševalec moramo upoštevati tudi negativne primere.
Za čim večjo pokritost moramo razmisliti ' Pokritost podružnice ' , ki bo ocenil pogoje »FALSE«.
V resničnem svetu lahko dodate ustrezne izjave, kadar stanje ne uspe.
Torej, psevdokoda postane:
INPUT A & B C = A + B IF C>100 PRINT “ITS DONE” ELSE PRINT “ITS PENDING”
Ker pokritost z izjavo ne zadostuje za preizkus celotne psevdo kode, bi morali zagotoviti pokritost podružnice, da zagotovimo največjo pokritost .
Za pokritost podružnice bi torej potrebovali dva testna primera za dokončanje preskušanja te psevdo kode.
TestCase_01 : A = 33, B = 45
TestCase_02 : A = 25, B = 30
S tem lahko vidimo, da se vsaka vrstica kode izvede vsaj enkrat.
Tu so zaključki, ki so do zdaj izpeljani:
- Pokritost podružnice zagotavlja večjo pokritost kot pokritost z izjavo.
- Pokritost podružnic je močnejša od pokritosti z izjavo.
- 100% pokritost podružnice pomeni 100% pokritost izpiskov.
- Toda 100% pokritost z izpiski ne zagotavlja 100% pokritosti poslovalnic.
Zdaj pa pojdimo na Pokritost poti:
Kot smo že omenili, se pokritost poti uporablja za preizkušanje zapletenih delčkov kode, ki v osnovi vključujejo stavke zanke ali kombinacijo zank in stavkov odločitve.
Razmislite o tej psevdokodi:
INPUT A & B C = A + B IF C>100 PRINT “ITS DONE” END IF IF A>50 PRINT “ITS PENDING” END IF
Da bi zagotovili kar največjo pokritost, bi potrebovali 4 testne primere.
Kako? Preprosto - obstajata 2 izjavi o odločitvi, zato bi za vsako izjavo o odločitvi potrebovali dve veji za preizkus. Eno za resnično in drugo za lažno stanje. Za dve izjavi o odločitvi bi torej potrebovali 2 testna primera za preizkus resnične strani in 2 testna primera za preizkus lažne strani, kar skupaj predstavlja 4 testne primere.
Za poenostavitev si oglejmo spodnji diagram poteka psevdo kode, ki ga imamo:
Za popolno pokritost bi potrebovali naslednje testne primere:
TestCase_01: A = 50, B = 60
TestCase_02 : A = 55, B = 40
TestCase_03: A = 40, B = 65
TestCase_04: A = 30, B = 30
Torej bo zajeta pot:
Rdeča črta - TestCase_01 = (A = 50, B = 60)
Modra črta = TestCase_02 = (A = 55, B = 40)
Oranžna črta = TestCase_03 = (A = 40, B = 65)
Zelena črta = TestCase_04 = (A = 30, B = 30)
******************
= >> Kontaktiraj nas da predlagam vaš seznam tukaj
*****************
Orodja za testiranje bele škatle
Spodaj je seznam najboljših orodij za preizkus bele škatle.
# 1) Veracode
Veracodejeva orodja za testiranje bele škatle vam bodo pomagala pri hitrem in preprostem prepoznavanju in odpravljanju napak programske opreme po znižanih stroških. Podpira več aplikacijskih jezikov, kot so .NET, C ++, JAVA itd., Omogoča pa tudi preizkus varnosti namiznih, spletnih in mobilnih aplikacij. Kljub temu obstaja več drugih prednosti orodja Veracode. Za podrobne informacije o orodjih za preizkušanje Veracode White box preverite spodnjo povezavo.
Povezava do spletnega mesta: Veracode
# 2) EclEmma
EclEmma je bila prvotno zasnovana za testne vožnje in analize znotraj delovne mize Eclipse. Velja za brezplačno orodje za pokrivanje kode Java in ima tudi več funkcij. Če želite namestiti ali vedeti več o EclEmma, si oglejte spodnjo povezavo.
Povezava do spletnega mesta: EclEmma
# 3) RCUNIT
najboljša programska oprema za čiščenje Windows 10
Okvir, ki se uporablja za testiranje programov C, je znan kot RCUNIT. RCUNIT se lahko ustrezno uporablja na podlagi pogojev licence MIT. Uporaba je brezplačna in če želite namestiti ali vedeti več o njej, preverite spodnjo povezavo.
Povezava do spletnega mesta: RCUNIT
# 4) cfix
cfix je eden od enot testnih okvirov za C / C ++, katerega cilj je le čim bolj enostaven in enostaven razvoj testnih paketov. Medtem je cfix običajno specializiran za način jedra NT in Win32. Če želite namestiti in vedeti več o cfixu, si oglejte spodnjo povezavo
Povezava do spletnega mesta: cfix
# 5) Google Test
Googletest je Googlov testni okvir za C ++. Test Discovery, preizkusi smrti, preskusi, parametrirani z vrednostjo, neuspehi s smrtnim izidom in neusmiljeni primeri, ustvarjanje poročila o preskusu XML itd. Linux, Windows, Symbian, Mac OS X je nekaj platform, na katerih je bil uporabljen GoogleTest. Da biPrenesite, prosimo, preverite spodnjo povezavo.
Povezava za prenos: Googlov test
# 6) EMMA
Emma je enostavno za uporabo brezplačno orodje za pokrivanje kod JAVA. Vključuje več funkcij in prednosti. Če želite prenesti in vedeti več o Emmi, preverite spodnjo povezavo.
Povezava za prenos: EMMA
# 7) NUnit
NUnit je enostaven za uporabo odprtokodni okvir za preskušanje enot, ki ne zahteva nobenega ročnega posega za presojo rezultatov preizkusa. Podpira vse jezike .NET. Podpira tudi preskuse na podlagi podatkov in preskuse, ki se izvajajo vzporedno pod NUnit. Prejšnje izdaje NUnit so uporabljale licenco NUnit, NUnit 3 pa je bil izdan pod licenco MIT. Toda obe licenci omogočata brezplačno uporabo brez kakršnih koli omejitev. Če želite prenesti in izvedeti več o NUnit, preverite spodnjo povezavo.
Povezava za prenos: NUnit
# 8) CppUnit
CppUnit je enotno preskusno ogrodje, napisano v jeziku C ++ in velja za vrata JUnit-a. Testni izhod za CppUnit je lahko v obliki XML ali besedila. Ustvari enotne teste s svojim razredom in jih izvaja v testnih zbirkah. Licenciran je pod LGPL. Če želite prenesti in izvedeti več o CppUnit, preverite spodnjo povezavo.
Povezava za prenos: CppUnit
# 9) JUnit
JUnit je tih in enostaven okvir za testiranje enot, ki podpira avtomatizacijo preizkusov v programskem jeziku Java. V glavnem podpira program Test Driven Development in zagotavlja tudi poročilo o pokritosti s testi. Licenciran je pod javno licenco Eclipse. Za brezplačen prenos in če želite izvedeti več o JUnit, preverite spodnjo povezavo.
Povezava za prenos: JUnit
# 10) JsUnit
JsUnit velja za pristanišče JUnit za javascript. To je odprtokodni okvir za testiranje enot, ki podpira Javascript na strani odjemalca. Licenciran je pod GNU Public License 2.0, GNU Lesser Public License 2.1 in Mozilla Public License 1.1. Če želite prenesti in izvedeti več o JsUnit, preverite spodnjo povezavo.
Povezava za prenos: JsUnit
Preverite tudi vsa orodja, ki smo jih navedli pod Analiza statične kode tukaj .
Prosto predlagajte bolj preprosta ali napredna orodja, ki jih uporabljate za tehniko bele škatle.
Zaključek
Zanašanje samo na testiranje črne škatle ne zadostuje za največjo pokritost s preskusi. Moramo imeti kombinacijo tehnik testiranja črne škatle in bele škatle pokrivajo največje napake .
Če bo pravilno opravljeno, bo testiranje bele škatle zagotovo prispevalo k kakovosti programske opreme. Prav tako je dobro, da preizkuševalci sodelujejo pri tem testiranju, saj lahko poda najbolj 'nepristransko' mnenje o kodi. :)
Sporočite nam, če imate kakršna koli vprašanja o metodah, o katerih smo razpravljali v tem članku.
Priporočeno branje
- Ključne razlike med testiranjem črne škatle in testiranjem bele škatle
- Testiranje črne škatle: poglobljena vadnica s primeri in tehnikami
- Funkcionalno testiranje vs nefunkcionalno testiranje
- Najboljša orodja za testiranje programske opreme 2021 (QA Test Automation Tools)
- Med preizkušanjem programske opreme premišljujem!
- Vodič za preizkušanje prenosljivosti s praktičnimi primeri
- Alfa testiranje in beta testiranje (popoln vodnik)
- Vrste testiranja programske opreme: različne vrste preskušanja s podrobnostmi