white box testing complete guide with techniques
Čo je to testovanie bielej skrinky?
Ak pôjdeme definíciou, „testovanie v bielej krabici“ (tiež známe ako číre, sklenené alebo štrukturálne testovanie) je testovacia technika, ktorá hodnotí kód a vnútornú štruktúru programu.
Testovanie v bielej skrinke zahŕňa preskúmanie štruktúry kódu. Ak poznáte vnútornú štruktúru produktu, môžu sa vykonať testy, aby sa zabezpečilo, že interné operácie prebiehajú podľa špecifikácie. A všetky vnútorné komponenty boli primerane využité.
Čo sa dozviete:
- Moje skúsenosti
- Rozdiel medzi testovaním bielej a čiernej skrinky
- Kroky na vykonanie WBT
- Typy a techniky testovania bielej skrinky
- Príklad testovania bielej skrinky
- Nástroje na testovanie bielej skrinky
- Záver
- Odporúčané čítanie
Moje skúsenosti
Je to už takmer desať rokov, čo sa venujem oblasti testovania softvéru, a zatiaľ som si všimol, že testeri sú najviac nadšení v celom softvérovom priemysle.
Hlavným dôvodom je to, že - tester sa má vždy čo učiť. Či už je to doména, proces alebo technológia, tester môže mať kompletný vývoj, ak chce.
Ale ako sa hovorí 'Vždy existuje temnejšia stránka' .
Testéri sa tiež skutočne vyhýbajú testovaniu, ktoré považujú za veľmi komplikované a je vývojovým kúskom. Áno, „Testovanie bielej skrinky“.
Pokrytie
White Box Testing je pokrytie špecifikácie v kóde:
2. Pokrytie segmentov: Zaistite, aby sa každý príkaz kódu vykonal raz.
3. Pokrytie pobočky alebo testovanie uzlov: Pokrytie každej vetvy kódu zo všetkého možného bolo.
4. Pokrytie zložených podmienok: Pri viacerých podmienkach otestujte každú podmienku pomocou viacerých ciest a kombináciou rôznych ciest, aby ste danú podmienku dosiahli.
5. Testovanie základnej cesty: Každá nezávislá cesta v kóde je použitá na testovanie.
6. Testovanie toku údajov (DFT): V tomto prístupe sledujete konkrétne premenné prostredníctvom každého možného výpočtu, čím definujete množinu prechodových ciest prostredníctvom kódu. DFT má tendenciu odrážať závislosti, ale je to hlavne prostredníctvom sekvencií manipulácie s údajmi. Stručne povedané, každá dátová premenná je sledovaná a je overené jej použitie. Tento prístup má tendenciu odhaľovať chyby ako použité premenné, ktoré sa však neinicializujú alebo deklarujú, ale nepoužívajú sa, atď.
7. Testovanie cesty: Testovanie cesty je miesto, kde sú definované a pokryté všetky možné cesty cez kód. Je to časovo náročná úloha.
8. Testovanie slučky: Tieto stratégie sa týkajú testovania jednotlivých slučiek, zreťazených slučiek a vnorených slučiek. Týmto prístupom sa testujú nezávislé a závislé kódové slučky a hodnoty.
Prečo vykonávame WBT?
Na zabezpečenie:
- Že všetky nezávislé cesty v rámci modulu boli precvičené aspoň raz.
- Všetky logické rozhodnutia overené na ich skutočných a nepravdivých hodnotách.
- Všetky slučky vykonávané na svojich hraniciach av rámci svojich prevádzkových hraníc platnosť vnútorných dátových štruktúr.
Ak chcete zistiť nasledujúce typy chýb:
- Logické chyby majú tendenciu vkrádať sa do našej práce, keď navrhujeme a implementujeme funkcie, podmienky alebo ovládacie prvky, ktoré sú mimo programu
- Chyby v návrhu spôsobené rozdielom medzi logickým tokom programu a skutočnou implementáciou
- Typografické chyby a kontrola syntaxe
Vyžaduje toto testovanie podrobné znalosti programovania?
Musíme písať testovacie prípady ktoré zabezpečujú úplné pokrytie logiky programu.
Na to potrebujeme program dobre poznať, t.j. mali by sme poznať špecifikáciu a kód, ktorý sa má testovať. Pre tento typ testovania sú potrebné znalosti programovacích jazykov a logiky.
Obmedzenia
Nie je možné testovať každú cestu cyklov v programe. To znamená, že pre veľké systémy nie je možné vyčerpávajúce testovanie.
To neznamená, že WBT nie je efektívny. Výber dôležitých logických ciest a dátovej štruktúry pre testovanie je prakticky možný a efektívny.
Rozdiel medzi testovaním bielej a čiernej skrinky
Zjednodušene:
V rámci testovania čiernej skrinky testujeme softvér z pohľadu používateľa, ale v bielej skrinke vidíme a testujeme skutočný kód.
Pri testovaní čiernej skrinky testujeme bez toho, aby sme videli interný systémový kód, ale vo WBT interný kód vidíme a testujeme.
Techniku testovania pomocou bielej skrinky používajú vývojári aj testeri. Pomáha im pochopiť, ktorý riadok kódu sa v skutočnosti vykonáva a ktorý nie. To môže naznačovať, že chýba logika alebo preklep, čo môže nakoniec viesť k negatívnym dôsledkom.
Odporúčané čítanie => Kompletný sprievodca testovaním Black Box
Kroky na vykonanie WBT
Krok 1 - Pochopte funkčnosť aplikácie prostredníctvom jej zdrojového kódu. Čo znamená, že tester musí byť oboznámený s programovacím jazykom a ďalšími nástrojmi a technikami používanými na vývoj softvéru.
Krok 2 - Vytvorte testy a vykonajte ich.
Keď hovoríme o koncepcii testovania, „ pokrytie ”Sa považuje za najdôležitejší faktor. Tu vysvetlím, ako dosiahnuť maximálne pokrytie v súvislosti s testovaním bielej skrinky.
Prečítajte si tiež=> Graf príčin a následkov - Technika zápisu dynamického testovacieho prípadu pre maximálne pokrytie
Typy a techniky testovania bielej skrinky
Pre každý typ testovania v bielom poli existuje niekoľko typov a rôznych metód.
Referenčný obrázok nájdete na nasledujúcom obrázku.
Dnes sa zameriame hlavne na vykonávacích testovacích typov „techniky bielej skrinky na testovanie jednotiek“.
3 hlavné techniky testovania bielej skrinky:
- Pokrytie vyhlásenia
- Pokrytie pobočky
- Pokrytie cesty
Upozorňujeme, že vyhlásenie, vetva alebo pokrytie cesty neidentifikuje žiadnu chybu alebo chybu, ktorú je potrebné opraviť. Identifikuje iba tie riadky kódu, ktoré sa buď nikdy nevykonajú, alebo zostanú nedotknuté. Na základe tohto sa dá zamerať na ďalšie testovanie.
Poďme tieto techniky po jednom pochopiť na jednoduchom príklade.
# 1) Pokrytie vyhlásenia:
V programovacom jazyku nie je vyhlásenie nič iné ako riadok kódu alebo inštrukcia, ktorej má počítač porozumieť a konať podľa neho. Príkaz sa stane vykonateľným príkazom, keď sa kompiluje a prevedie na kód objektu a vykoná akciu, keď je program v bežiacom režime.
Preto „Pokrytie vyhlásenia“ , ako už samotný názov napovedá, ide o metódu overenia, či sa každý riadok kódu vykoná aspoň raz.
# 2) Pokrytie pobočky:
„Pobočka“ v programovacom jazyku je ako „IF výroky“. Výrok IF má dve vetvy: T rue a False .
Takže v časti Pokrytie pobočky (nazývané tiež Pokrytie rozhodnutia) overujeme, či je každá pobočka vykonaná aspoň raz.
V prípade vyhlásenia „IF“ budú existovať dve testovacie podmienky:
- Jeden na overenie skutočnej vetvy a
- Iné na overenie falošnej vetvy.
Teoreticky teda Branch Coverage predstavuje testovaciu metódu, ktorá pri vykonaní zaručuje, že sa vykoná každá vetva z každého rozhodovacieho bodu.
# 3) Pokrytie trasy
Pokrytie cesty testuje všetky cesty programu. Toto je komplexná technika, ktorá zaisťuje, že všetky cesty programu sú prekonané aspoň raz. Pokrytie trasy je ešte výkonnejšie ako pokrytie pobočky. Táto technika je užitočná na testovanie zložitých programov.
Uveďme si jednoduchý príklad na pochopenie všetkých týchto techník testovania v bielom poli.
10 najlepších spoločností na vývoj webu v Indii
Skontrolujte tiež=> Rôzne typy testovania
Príklad testovania bielej skrinky
Zvážte nasledujúci jednoduchý pseudokód:
INPUT A & B C = A + B IF C>100 PRINT “ITS DONE”
Pre Pokrytie vyhlásenia - na skontrolovanie všetkých riadkov kódu by nám stačil jeden testovací prípad.
To znamená:
Ak zvážim TestCase_01 bude (A = 40 a B = 70), potom sa vykonajú všetky riadky kódu.
Teraz vyvstáva otázka:
- Je to postačujúce?
- Čo ak považujem svoj testovací prípad za A = 33 a B = 45?
Pretože pokrytie vyhlásením bude pokrývať iba pravú stranu, pre pseudokód NEDOSTATOČNÝ na testovanie bude iba jeden testovací prípad. Ako tester musíme brať do úvahy aj negatívne prípady.
Preto pre maximálne pokrytie musíme zvážiť „ Pokrytie pobočky „ , ktorá vyhodnotí podmienky „FALSE“.
V skutočnom svete môžete pridať príslušné vyhlásenia, keď podmienka zlyhá.
Takže teraz sa pseudokód stáva:
INPUT A & B C = A + B IF C>100 PRINT “ITS DONE” ELSE PRINT “ITS PENDING”
Pretože pokrytie výpisu nie je dostatočné na otestovanie celého pseudokódu, vyžadovali by sme pokrytie pobočky, aby sme zaistili maximálne pokrytie .
Pre pokrytie pobočky by sme teda na dokončenie testovania tohto pseudokódu vyžadovali dva testovacie prípady.
TestCase_01 : A = 33, B = 45
TestCase_02 : A = 25, B = 30
Vďaka tomu vidíme, že každý riadok kódu je vykonaný aspoň raz.
Tu sú zatiaľ odvodené závery:
- Pobočkové pokrytie zaisťuje väčšie pokrytie ako pokrytie výpisom.
- Pokrytie pobočky je výkonnejšie ako pokrytie výpisom.
- Samotné 100% pokrytie pobočky znamená 100% pokrytie výpisu.
- Ale 100% pokrytie výpisom nezaručuje 100% pokrytie pobočiek.
Teraz prejdime k Pokrytie trasy:
Ako už bolo povedané, pokrytie cesty sa používa na testovanie fragmentov zložitého kódu, ktoré v zásade zahŕňajú cyklové príkazy alebo kombinácie cyklov a výroky o rozhodovaní.
Zvážte tento pseudokód:
INPUT A & B C = A + B IF C>100 PRINT “ITS DONE” END IF IF A>50 PRINT “ITS PENDING” END IF
Aby sme zaistili maximálne pokrytie, vyžadovali by sme 4 testovacie prípady.
Ako? Jednoducho - existujú 2 rozhodnutia - vyhlásenia, takže na každé vyhlásenie by sme potrebovali dve vetvy na testovanie. Jeden pre pravdivý a druhý pre falošný stav. Pre 2 výroky rozhodnutia by sme teda vyžadovali 2 testovacie prípady na otestovanie pravej strany a 2 testovacie prípady na otestovanie falošnej stránky, čo predstavuje celkom 4 testovacie prípady.
Aby sme to zjednodušili, zvážme nižšie uvedený vývojový diagram pseudokódu:
Aby sme mali úplné pokrytie, potrebovali by sme nasledujúce testovacie prípady:
TestCase_01: A = 50, B = 60
TestCase_02 : A = 55, B = 40
TestCase_03: A = 40, B = 65
TestCase_04: A = 30, B = 30
Cesta bude teda:
Červená čiara - TestCase_01 = (A = 50, B = 60)
Modrá čiara = TestCase_02 = (A = 55, B = 40)
Oranžová čiara = TestCase_03 = (A = 40, B = 65)
Zelená čiara = TestCase_04 = (A = 30, B = 30)
*******************
= >> Kontaktuj nás tu navrhnúť váš záznam
******************
Nástroje na testovanie bielej skrinky
Nižšie je uvedený zoznam najlepších testovacích nástrojov v bielom poli.
# 1) Veracode
Testovacie nástroje bieleho poľa od spoločnosti Veracode vám pomôžu rýchlo a ľahko identifikovať a vyriešiť chyby softvéru za znížené náklady. Podporuje niekoľko aplikačných jazykov, ako je .NET, C ++, JAVA atď., A tiež umožňuje testovať bezpečnosť desktopových, webových aj mobilných aplikácií. Existuje ešte niekoľko ďalších výhod nástroja Veracode. Podrobné informácie o testovacích nástrojoch bielej skrinky Veracode nájdete na nasledujúcom odkaze.
Odkaz na webovú stránku: Verakód
# 2) EclEmma
EclEmma bola pôvodne navrhnutá pre testovacie chody a analýzy v pracovnom stole Eclipse. Považuje sa za bezplatný nástroj na pokrytie kódom Java a má tiež niekoľko funkcií. Ak si chcete nainštalovať alebo získať viac informácií o aplikácii EclEmma, kliknite na odkaz uvedený nižšie.
Odkaz na webovú stránku: EclEmma
# 3) RCUNIT
Rámec, ktorý sa používa na testovanie programov C, je známy ako RCUNIT. RCUNIT je možné primerane použiť na základe podmienok licencie MIT. Používanie je bezplatné a ak si chcete nainštalovať alebo o ňom získať viac informácií, skontrolujte nasledujúci odkaz.
Odkaz na webovú stránku: RCUNIT
# 4) cfix
cfix je jedným z rámcov testovania jednotiek pre C / C ++, ktorého jediným cieľom je čo najjednoduchší a najjednoduchší vývoj testovacích balíkov. Medzitým sa cfix zvyčajne špecializuje na režim jadra NT a Win32. Ak chcete nainštalovať a dozvedieť sa viac o cfix, pozrite si odkaz uvedený nižšie
otázky technickej podpory úrovne 1
Odkaz na webovú stránku: cfix
# 5) Google Test
Googletest je testovací rámec spoločnosti C ++ spoločnosti Google. Zistenie testu, test smrti, testy s parametrizáciou hodnoty, fatálne a nefatálne zlyhania, generovanie testovacích protokolov XML atď. Je niekoľko funkcií služby GoogleTest, ale existuje aj niekoľko ďalších funkcií. Linux, Windows, Symbian, Mac OS X je niekoľko platforiem, na ktorých sa použil test GoogleTest. Za účelomStiahnite si, prosím skontrolujte odkaz dole.
Odkaz na stiahnutie: Google test
# 6) EMMA
Emma je ľahko použiteľný bezplatný nástroj na pokrytie kódu JAVA. Zahŕňa niekoľko funkcií a výhod. Ak si chcete stiahnuť a dozvedieť sa viac o Eme, kliknite na odkaz nižšie.
Odkaz na stiahnutie: EMMA
# 7) NUnit
NUnit je ľahko použiteľný rámec testovania jednotiek s otvoreným zdrojovým kódom, ktorý nevyžaduje žiadny manuálny zásah na posúdenie výsledkov testu. Podporuje všetky jazyky .NET. Podporuje tiež testy založené na dátach a testy prebiehajúce paralelne pod NUnit. Predchádzajúce vydania NUnit používali licenciu NUnit, ale NUnit 3 je vydávaná pod licenciou MIT. Ale obe licencie umožňujú bezplatné použitie bez akýchkoľvek obmedzení. Ak si chcete stiahnuť a dozvedieť sa viac o NUnit, kliknite na odkaz nižšie.
Odkaz na stiahnutie: NUnit
# 8) CppUnit
CppUnit je rámec testovania jednotiek napísaný v C ++ a považuje sa za port JUnit. Testovací výstup pre CppUnit môže byť buď vo formáte XML, alebo v textovom formáte. Vytvára jednotkové testy s vlastnou triedou a spúšťa testy v testovacích balíkoch. Je licencovaný pod LGPL. Ak si chcete stiahnuť a dozvedieť sa viac o CppUnit, kliknite na odkaz nižšie.
Odkaz na stiahnutie: CppUnit
# 9) JUnit
JUnit je tichý jednoduchý rámec na testovanie jednotiek, ktorý podporuje automatizáciu testov v programovacom jazyku Java. Podporuje hlavne vývoj zameraný na testovanie a poskytuje tiež správu o pokrytí testu. Je licencovaný pod Eclipse Public License. Zadarmo na stiahnutie a ďalšie informácie o JUnit nájdete na nasledujúcom odkaze.
Odkaz na stiahnutie: JUnit
# 10) JsUnit
JsUnit sa považuje za port JUnit pre javascript. Jedná sa o rámec testovania jednotiek s otvoreným zdrojom na podporu Javascriptov na strane klienta. Je licencovaný podľa GNU Public License 2.0, GNU Lesser Public License 2.1 a Mozilla Public License 1.1. Ak si chcete stiahnuť a dozvedieť sa viac o JsUnit, skontrolujte odkaz nižšie.
Odkaz na stiahnutie: JsUnit
Skontrolujte tiež všetky nástroje, ktoré máme uvedené v zozname Statická analýza kódu tu .
Neváhajte a navrhnite viac jednoduchých alebo pokročilých nástrojov, ktoré používate pre techniku bielej skrinky.
Záver
Spoliehanie sa iba na testovanie čiernej skrinky nie je dostatočné na dosiahnutie maximálneho pokrytia testom. Potrebujeme kombináciu oboch metód testovania čiernej skrinky a bielej skrinky pokryť maximálne chyby .
Ak bude vykonané správne, testovanie pomocou bielej skrinky určite prispeje k kvalite softvéru. Je tiež dobré, aby sa testéri zúčastňovali na tomto testovaní, pretože môže poskytnúť najviac „nestranný“ názor na kód. :)
Ak máte akékoľvek otázky týkajúce sa metód, o ktorých sme hovorili v tomto článku, dajte nám vedieť.
Odporúčané čítanie
- Kľúčové rozdiely medzi testovaním čiernej skrinky a testovaním bielej skrinky
- Testovanie čiernej skrinky: Podrobný návod s príkladmi a technikami
- Funkčné testovanie vs. Nefunkčné testovanie
- Najlepšie nástroje na testovanie softvéru 2021 (QA Test Automation Tools)
- Pri testovaní softvéru vymýšľate z krabice!
- Príručka na testovanie prenosnosti s praktickými príkladmi
- Alfa testovanie a beta testovanie (kompletný sprievodca)
- Typy testovania softvéru: Rôzne typy testovania s podrobnosťami