White box je kategorie testování softwaru, která se týká metod testování fungování vnitřní struktury a návrhu softwaru. Je to kontrast k testování černé skříňky, což je testování, které se nezabývá vnitřními operacemi softwaru, ale testuje pouze vnější výstupy softwaru.
V tomto článku se budeme zabývat tématem testování bílých skříněk: co to je, jak funguje a jaké typy nástrojů pro testování softwaru mohou testerům a vývojářům pomoci při testování softwaru provádět testování bílých skříněk.
Co je to testování bílé skříňky?
Testování bílé skříňky je technika testování softwaru, která zahrnuje testování vnitřní struktury a návrhu softwarového sestavení na rozdíl od vnějších výstupů nebo zkušeností koncového uživatele, které se testují při testování černé skříňky.
Testování bílé skříňky je zastřešující pojem, který zahrnuje mnoho různých typů testování softwaru včetně testování jednotek a integračního testování. Vzhledem k tomu, že testování white boxu zahrnuje testování kódu a programování, vyžaduje testování white boxu obvykle určité znalosti počítačového programování.
Testování bílé skříňky v softwarovém inženýrství může zahrnovat testování kódu a vnitřního návrhu softwaru s cílem ověřit vstupně-výstupní tok a zkontrolovat návrh, použitelnost a zabezpečení softwaru.
Testování bílé skříňky umožňuje testerům prozkoumat vnitřní fungování systému a zároveň ověřit, že vstupy vedou k určitým očekávaným výstupům.
Testování bílé skříňky je základním krokem při testování softwaru, protože je to jediný typ testování, který zohledňuje fungování samotného kódu.
1. Kdy a proč potřebujete bílý box
testování v oblasti testování softwaru a inženýrství?
Testování bílé skříňky lze provádět v různých fázích testovacího cyklu, aby se ověřila funkčnost vnitřního kódu a struktury.
Nejčastěji se white box testování provádí, když vývojáři a testeři provádějí testování jednotek a někdy také během integračního testování.
Podle definice je testování jednotek považováno za druh testování bílé skříňky, zatímco integrační testování může mít společné rysy testování bílé i černé skříňky, ale obecně je považováno za formu testování černé skříňky.
Jinak lze testování bílé skříňky použít také ad hoc k ověření vnitřního fungování sestavení softwaru. Testování bílých skříněk je nejekonomičtějším způsobem, jak zvýšit pokrytí testů, pokud je to potřeba, a je to také snadný způsob, jak ověřit, jak fungují konkrétní části kódu, nebo otestovat oblasti sestavení softwaru, u kterých mají testeři podezření, že nejsou dostatečně otestovány.
K identifikaci bezpečnostních chyb a dalších zranitelností lze využít také formální revize kódu, které se provádějí pomocí testování bílé skříňky. Stejně tak v případě, že jsou některé prvky kódu nefunkční, může testování bílého pole pomoci softwarovým inženýrům určit, kde je chyba.
2. Když nepotřebujete provádět testování bílého pole
Ve většině případů, kdy softwaroví inženýři a testeři provádějí testovací cyklus nové softwarové sestavy, je nutné provést určité testování bílé skříňky, aby se ověřilo vnitřní fungování kódu.
Testování jednotek je typem testování bílé skříňky, které provádějí vývojáři, aby ověřili, že jednotlivé jednotky fungují podle očekávání. Tento včasný typ testování umožňuje vývojářům identifikovat chyby a nedostatky ještě předtím, než proběhne formální testování v prostředí QA.
Po testování jednotek následuje integrační testování, systémové testování a uživatelské akceptační testování. Ty jsou obecně považovány za formy testování černé skříňky, které obvykle nezahrnují mnoho technik testování bílé skříňky.
V některých případech však mohou testeři a vývojáři v těchto fázích použít testování bílých skříněk, aby identifikovali konkrétní chyby v kódu. Pokud v této fázi nic nenasvědčuje tomu, že by s kódem bylo něco v nepořádku, a všechny testy černé skříňky projdou, mnoho testovacích týmů se může domnívat, že není třeba provádět další testy bílé skříňky.
3. Kdo se podílí na testování bílých skříněk?
Testování bílé skříňky téměř vždy provádějí vývojáři softwaru a softwaroví inženýři. Je to proto, že testování white boxu vyžaduje detailní znalost počítačového kódu a kódovacích technik a většina testerů QA nemá technické dovednosti potřebné k provádění testování white boxu.
Testování jednotek, hlavní typ testování bílého rámečku, provádějí vývojáři vždy ve vývojovém prostředí. Vývojáři mohou také podle potřeby provádět testování white boxu, aby ověřili, jak fungují různé prvky kódu, nebo zkontrolovali, zda byly chyby správně opraveny.
Výhody testování bílého pole
Testování bílé skříňky umožňuje vývojářům a softwarovým inženýrům testovat více aspektů kódu než testování černé skříňky.
Zatímco testování černé skříňky nám může říci, jak sestavení softwaru funguje pro koncové uživatele, testování bílé skříňky nám může říci více o tom, jak softwarový kód funguje. Čistý a efektivní kód je při vývoji softwaru nezbytný, zejména pokud chtějí vývojáři kód později znovu použít nebo v budoucnu přidávat opravy a aktualizace.
1. Maximalizujte pokrytí testů
Testování bílé skříňky může testerům pomoci maximalizovat pokrytí testů. Testování co největší části softwarového kódu obvykle maximalizuje šanci na odhalení případných chyb nebo nedostatků v kódu a účelem testování bílého pole je obvykle otestovat co největší část kódu.
Naproti tomu při testování černé skříňky jde jednoduše o provádění testovacích případů, které mohou, ale nemusí nabízet široké pokrytí kódu.
2. Vyhledávání skrytých chyb a omylů
Jednou z největších výhod white box testování je, že díky tomu, že white box testování ověřuje interní funkčnost, je pro vývojáře snazší najít chyby a nedostatky, které by jinak mohly být skryty hluboko v kódu.
Kromě identifikace přítomnosti chyb je při testování bílého pole obvykle snazší přesně určit, kde v kódové bázi se chyba nachází, protože tento typ testování je velmi specifický.
3. Snadná automatizace
Automatizovat testování bílého rámečku je velmi snadné, zejména při provádění testování jednotek. Jednotkové testy obvykle vyžadují, aby vývojáři testovali malé části kódu jednotlivě a zjišťovali, zda běží podle očekávání. Tento postup lze velmi snadno automatizovat, což znamená, že se jedná o rychlou a efektivní formu testování softwaru.
To je jeden z důvodů, proč se jednotkové testování provádí před jinými, časově náročnějšími typy testování.
4. Časově efektivní
Testování bílého pole je časově úsporné z několika důvodů.
Jak bylo uvedeno výše, většinu typů testování bílé skříňky lze poměrně snadno automatizovat, což znamená, že testování bílé skříňky je často rychlejší než testování černé skříňky. Kromě toho testování bílého boxu usnadňuje vývojářům hledání chyb a nedostatků, které v kódu identifikují, protože je nacházejí při testování samotného kódu.
5. Kvalita kódu
Testování bílé skříňky umožňuje vývojářům podívat se na napsaný kód z druhé strany a posoudit jeho kvalitu a čistotu.
Procházení kódu po částech dává vývojářům možnost odstranit nepotřebné části kódu a vyčistit kód, což usnadňuje jeho opakované použití a úpravy v budoucnu.
Vývojáře to také může donutit k tomu, aby zvážili, jakým způsobem je kód implementován a zda se bude v budoucnu dobře škálovat.
Výzvy testování bílých skříněk
Testování bílého pole není bez problémů. Existuje několik důvodů, proč může být pro některé vývojové týmy testování bílé skříňky obtížnější než testování černé skříňky, a také další důvody, proč je někteří lidé považují za méně důležité než testování černé skříňky.
1. Technické překážky
Testování bílé skříňky s sebou nese technické překážky, které testování černé skříňky nemá. K testování bílých skříněk potřebují testeři znalost vnitřního fungování systému, což v případě testování softwaru obvykle znamená znalost programování.
Proto testování bílých skříněk téměř vždy provádějí softwaroví inženýři a vývojáři a neprovádějí je testeři QA, kteří mají jen zřídka technické dovednosti potřebné k provádění tohoto typu testování.
2. Náklady
Testování bílé skříňky může být ve srovnání s testováním černé skříňky nákladnější, protože tento typ testování je důkladný.
Vývojáři musí strávit spoustu času psaním náročných unit testů a white box testy často nelze opakovaně použít pro jiné aplikace, což znamená, že provedení white box testů obvykle stojí poměrně hodně peněz.
3. Přesnost
Testování bílé skříňky není vždy nejpřesnější metodou testování softwaru, a pokud by se vývojové týmy spoléhaly pouze na testování bílé skříňky, vedlo by to k mnoha přehlédnutým chybám a případům.
Testování bílé skříňky ověřuje pouze již existující funkce, zatímco testování černé skříňky lze použít k testování částečně implementovaných funkcí nebo k identifikaci funkcí, které v softwaru skutečně chybí a měly by být zahrnuty do pozdějších iterací.
4. Oblast působnosti
Testování bílé skříňky nám obvykle neřekne mnoho o uživatelské zkušenosti nebo o konečném výsledku funkcí zabudovaných do softwaru.
Vývojáři sice mohou pomocí testování bílé skříňky ověřit, zda kód funguje tak, jak má, ale nemohou pak dojít k závěru, že funkční kód poskytuje koncovým uživatelům správné výstupy, aniž by kombinovali testování bílé skříňky s testováním černé skříňky.
To znamená, že rozsah testování white boxu a to, kolik nám může říci o softwaru, je omezené.
Charakteristiky testů white box
Testování bílé skříňky lze definovat na základě určitých charakteristik, které jej odlišují od jiných forem testování, jako je testování černé a šedé skříňky.
Většinu těchto charakteristik lze posoudit z hlediska toho, jak se liší od charakteristik testování černé skříňky a jak se tím liší testování bílé skříňky a testování černé skříňky.
1. Udržovatelnost
Testování bílých skříněk vede k vyšší úrovni udržovatelnosti kódu a zjednodušuje práci, kterou musí váš tým vykonávat v budoucnu.
Protože kód a jeho práci s daty neustále sledujete, je jeho údržba mnohem jednodušší, protože chápete, kde a proč vznikají problémy. Tím se také zjednodušuje kód pro budoucí aktualizace, protože nemusíte vyvíjet rozsáhlé a složité záplaty pro neznámé a jednoduché problémy.
2. Flexibilita
Testování bílé skříňky probíhá na kódu, který je dostatečně flexibilní, aby mohl relativně rychle přijímat změny. Nepružný kód, například kód, který je součástí modulu nebo integrace třetí strany, znemožňuje testerovi bílého pole provádět rychlé změny.
Zaměření na kód, který můžete změnit, jakmile objevíte problém, činí testování white boxu vysoce přizpůsobivým a znamená, že problémy programu jsou vyřešeny mnohem dříve.
3. Modularita
Testování bílé skříňky se daří v kódu, který má určitou míru modularity, což znamená, že jednotlivé prvky softwaru jsou od sebe jasně odlišeny.
Pokud se v programu vyskytuje problém „špagetového kódu“, v němž je každý aspekt svázán s jiným, stává se testování bílé skříňky nekonečně složitější, protože tester musí prověřit celý program, a nikoliv konkrétní jednotku.
4. Integrace
Testování bílé skříňky je velmi užitečné pro integrační testování. Testeři mohou zjistit, zda funkce funguje až do okamžiku, kdy opustí daný software, a zda se z integrovaného systému vrátí tak funkční, jak se očekávalo.
To má vysokou vypovídací hodnotu a umožňuje organizaci zjistit, zda je problém lokální, nebo zda je součástí integrované platformy.
Co testujeme v testech white box?
Testy bílé skříňky se používají k testování funkcí kódu, které nelze ověřit metodami testování černé skříňky. To může znamenat testování fungování samotného kódu, které vývojářům umožní pochopit příčiny a následky různých aspektů kódu.
Vývojáři používají testování bílého pole k testování bezpečnostních mezer, příkazů a funkcí, výstupů a cest v kódu.
1. Vnitřní bezpečnostní díry
Testování bílé skříňky lze použít k hledání bezpečnostních mezer a zranitelností v kódu, které by hackeři a kyberzločinci mohli v budoucnu využít.
Testování bílé skříňky lze použít ke kontrole, zda byly ve fázi vývoje dodrženy osvědčené postupy zabezpečení, a k hledání bezpečnostních chyb, které by bylo možné opravit předtím, než kód postoupí k dalšímu testování.
2. Cesty v procesech kódování
Testování bílého pole umožňuje vývojářům testovat cesty, které spojují různé prvky kódu. Vývojáři netestují pouze logiku kódu, ale mohou se zaměřit také na strukturu a hygienu kódu.
Dobrý a čistý kód neobsahuje žádné zbytečné řádky nebo nefunkční prvky, které nefungují podle očekávání, i když externí výstupy testování černé skříňky odpovídají očekávání.
3. Očekávané výstupy
Testování bílé skříňky může také testovat očekávané výstupy kódu stejným způsobem jako testování černé skříňky, ačkoli testeři tak činí spíše na základě kódu než pomocí aplikace, jak to mohou dělat testeři při testování černé skříňky.
Vývojáři testují očekávané výstupy tak, že postupně ověřují vstupy a kontrolují, zda výsledný výstup odpovídá očekávání.
4. Příkazy, objekty a funkce
Vývojáři softwaru mohou pomocí technik white box testování zajistit, aby se příkazy, objekty a funkce v kódu chovaly logicky a vedly k očekávaným výstupům.
5. Funkčnost podmíněných smyček
Testování bílého pole lze použít také ke kontrole funkčnosti podmíněných smyček, včetně jednoduchých, spojovaných a vnořených smyček. Vývojáři budou kontrolovat, zda jsou tyto smyčky efektivní, zda splňují požadavky na podmíněnou logiku a zda správně pracují s lokálními a globálními proměnnými.
Vyjasnění některých nejasností:
Testování White box vs. Black box vs. Grey box
White box testing, black box testing a grey box testing jsou termíny, které testeři softwaru používají pro různé kategorie testování nebo různé metody testování.
Moderní pohled na tyto rozdíly v testování je takový, že hranice mezi jednotlivými typy testování se stále více stírají, protože různé typy testování často kombinují prvky testování bílé i černé skříňky a odvozují testy z dokumentů na různých úrovních abstrakce.
Přesto však mezi těmito formami testování existují důležité rozdíly.
1. Co je to testování černé skříňky?
Testování černé skříňky je forma testování softwaru, při které testeři kontrolují funkčnost softwaru, aniž by znali vnitřní strukturu kódu nebo způsob implementace kódu na vyšší technické úrovni.
Testování černé skříňky testuje pouze externí výstupy softwaru, jinými slovy testuje to, co koncový uživatel zažije při používání softwaru.
Testování černé skříňky je také známé jako behaviorální testování, protože testuje, jak se software chová za určitých podmínek.
Pomocí testování černé skříňky mohou testeři posoudit, jak se chovají různé funkce softwaru, a porovnat je s očekáváním, aby se ujistili, že software splňuje požadavky uživatelů. Testování černé skříňky se používá při testování systému a akceptačním testování k ověření různých funkcí a kontrole, zda systém funguje podle očekávání, když funguje jako celek.
Při testování černé skříňky uživatelé píší testovací případy, které ověřují různé prvky jednotlivě. Protože testování černé skříňky nevyžaduje stejné technické dovednosti jako testování bílé skříňky, testování černé skříňky obvykle provádějí spíše testeři v prostředí QA než vývojáři.
Automatizace testování černé skříňky je ve srovnání s testováním bílé skříňky obvykle jednodušší, a to pomocí nástrojů pro automatizaci end-to-end, jako je ZAPTEST.
Jaké jsou rozdíly mezi testováním bílé a černé skříňky?
Hlavní rozdíl mezi testováním černé a bílé skříňky spočívá v tom, co se testuje.
Testování černé skříňky se týká testování vnějších výstupů sestavení softwaru, zatímco testování bílé skříňky se týká testování toho, co se děje pod kapotou.
Mezi hlavní rozdíly mezi testováním černé a bílé skříňky patří:
Účel
Účelem testování černé skříňky je ověřit, zda systém funguje podle očekávání koncového uživatele, zatímco účelem testování bílé skříňky je ověřit kvalitu a integritu kódu softwaru.
Například při testování černé skříňky u videohry může koncový uživatel hru vyzkoušet a zhodnotit své zkušenosti, přičemž testování bílé skříňky u stejného projektu zajistí, že zadání konkrétních vstupů povede k tomu, že postava provede správnou akci.
Proces
Procesy používané při testování bílé a černé skříňky se velmi liší. Testování bílé skříňky je mnohem snazší automatizovat než testování černé skříňky a obvykle je nutné testování černé skříňky automatizovat pomocí nástrojů pro automatizaci softwaru.
Například při testování databáze zahrnuje testování bílé skříňky automatické zadávání dat, aby se zkontrolovalo, zda jsou všechny výsledky správné, zatímco testování černé skříňky zahrnuje uživatele, kteří replikují manuální procesy a podávají o nich zprávy bez použití automatizačního systému.
Testery
Testování černé skříňky je téměř vždy prováděno v prostředí QA profesionálními testery softwaru, zatímco testování bílé skříňky provádějí vývojáři softwaru a inženýři, kteří mají podrobnější technické znalosti o zdrojovém kódu.
Techniky
Při testování černé skříňky se používají různé techniky, například rozdělení ekvivalence, analýza hraničních hodnot a testování pomocí rozhodovacích tabulek. Testování bílé skříňky využívá techniky, jako je pokrytí rozhodnutími, pokrytí podmínkami a pokrytí příkazy.
Operace
Testovací metodiky black box testování jsou vhodné pro vyšší úrovně testování, jako je testování systému a akceptační testování, zatímco white box testování je vhodnější pro nižší úrovně testování, jako je testování jednotek a integrační testování.
Z tohoto důvodu se testování bílé skříňky obvykle provádí před většinou forem testování černé skříňky.
2. Co je to testování šedého boxu?
Grey box testing je technika testování softwaru, která se používá k testování softwarových produktů a aplikací testery, kteří mohou mít částečnou znalost vnitřní struktury aplikace, ale ne úplnou.
Testování šedé skříňky může kombinovat prvky testování černé skříňky i testování bílé skříňky, aby vývojáři a testeři mohli identifikovat chyby v kódu a najít chyby specifické pro daný kontext.
Testování šedé skříňky kombinuje vlastnosti testování černé skříňky i testování bílé skříňky. Testeři musí mít určité znalosti o vnitřním fungování systému jako při testování bílé skříňky, ale tyto znalosti používají k vytváření testovacích případů a jejich provádění na úrovni funkčnosti jako při testování černé skříňky.
Testování šedé skříňky nabízí mnoho výhod testování černé i bílé skříňky a zároveň je relativně časově efektivní a flexibilní.
Jaké jsou rozdíly mezi testování bílého a šedého boxu?
Vzhledem k tomu, že testování šedé skříňky nabízí některé stejné funkce jako testování černé skříňky, existují mezi testováním šedé skříňky a testováním bílé skříňky velké rozdíly, i když jich možná není tolik jako u testování černé skříňky.
Mezi největší rozdíly mezi testováním šedého a bílého boxu patří:
Strukturální znalosti
Při testování bílé skříňky by osoba provádějící testování měla plně znát vnitřní návrh a strukturu kódu. Při testování šedého boxu je vnitřní struktura kódu obvykle známa jen částečně.
Zúčastněné osoby
Testování bílé skříňky provádějí téměř výhradně vývojáři softwaru a softwaroví inženýři, zatímco testování šedé skříňky mohou provádět koncoví uživatelé, testeři a vývojáři.
Účinnost
Testování bílé skříňky je považováno za časově nejnáročnější typ testování softwaru, zatímco testování šedé skříňky využívá některé z výhod testování černé skříňky, aby se zkrátila doba potřebná k provedení testů.
Operace
Při testování bílého rámečku vývojáři jednoduše napíší kód pro implementaci testů bílého rámečku a tento kód spustí. Při testování šedé skříňky, stejně jako při testování černé skříňky, testeři provádějí funkční testy, aby posoudili, jak systém funguje navenek.
Pokrytí
Testování bílé skříňky je nejúplnějším typem testování, zatímco rozsah testování šedé skříňky se může lišit v závislosti na tom, zda je typ prováděných testovacích případů založen na kódu nebo grafickém uživatelském rozhraní.
Závěr:
Bílá skříňka vs. černá skříňka vs. testování šedé skříňky
White box testing, black box testing a grey box testing jsou termíny používané pro různé techniky testování softwaru. Obecně lze každý typ testování definovat na základě toho, do jaké míry musí mít testeři znalosti o kódové základně a implementaci kódu:
1. Testování černé skříňky:
Vnitřní struktura kódu není známa.
2. Testování bílé skříňky:
Vnitřní struktura kódu je známá.
3. Testování šedé skříňky:
Vnitřní struktura kódu je částečně známa.
Při testování softwaru jsou všechny tři typy testování důležité pro ověření funkčnosti a integrity softwaru. Zatímco testování bílé skříňky nám řekne více o základní struktuře kódu, testování šedé skříňky a testování černé skříňky může ověřit, jak systém funguje a zda splňuje požadavky koncových uživatelů.
Největší rozdíly mezi těmito třemi typy testování se pravděpodobně týkají toho, kdo jednotlivé typy testů provádí, požadavků na samotné testování a toho, co testování obnáší.
Testování bílé skříňky má nejvyšší vstupní bariéru, protože ho provádějí vývojáři s detailní znalostí samotné kódové základny a protože jde o časově nejnáročnější a často i nejnákladnější typ testování.
Naproti tomu testování černé skříňky je nejjednodušší a mohou je provádět testeři bez znalosti základního kódu.
Typy testů white box
Existuje mnoho různých typů white box testů, z nichž každý lze použít k testování trochu jiných aspektů vnitřní struktury kódu.
Níže jsou uvedeny některé z nejběžnějších typů testování white box, které se dnes používají.
1. Testování cesty
Testování cesty je typ testování bílé skříňky založený na řídicí struktuře programu. Vývojáři používají strukturu řízení k vytvoření grafu toku řízení a testují různé cesty v tomto grafu.
Testování cest je typ testování, který je závislý na řídicí struktuře programu, což znamená, že vyžaduje, aby testeři tuto strukturu důkladně znali.
Pokud má například systém kontaktovat zákazníky s nastavenými zprávami v určitých bodech prodejního trychtýře, testování cesty zahrnuje zajištění správného postupu v závislosti na podmínkách, které data nastavují.
2. Testování smyčky
Testování smyček je jedním z nejdůležitějších typů testování bílé skříňky, které testuje smyčky v kódu programu. Smyčky jsou implementovány v algoritmech v kódu a testování smyček ověřuje, zda jsou tyto smyčky platné.
Testování smyček může posoudit, zda v konkrétních smyčkách existují zranitelnosti, a upozornit na oblasti, kde by vývojáři mohli potřebovat opravit kód, aby bylo zajištěno, že smyčka funguje tak, jak má.
Příkladem testu smyčky je sledování smyčky s určitou sadou datových bodů, které vybízejí k pokračování smyčky, například odmítnutí přijetí některých podmínek, před zadáním údaje, který smyčku specificky přeruší. Pokud se smyčka chová podle očekávání, je test úspěšný.
3. Podmíněné testování
Podmíněné testování je typ testování bílého rámečku, který ověřuje, zda jsou logické podmínky pro hodnoty v kódu pravdivé nebo nepravdivé.
Podmíněné testování je hlavní formou white box testování, které vývojářům říká, zda je kód logický a zda splňuje požadavky programové logiky.
Příkladem podmíněného testování je účetní platforma. Zadání řady výdajů a příjmů by mělo vést ke správným průběžným součtům a software by měl poskytovat přesné výsledky po celou dobu úspěšného testu.
4. Testování jednotek
Testování jednotek je důležitou fází testování softwaru, kdy vývojáři testují jednotlivé komponenty a moduly a ověřují, zda fungují podle očekávání, než začnou jednotlivé jednotky integrovat dohromady.
Softwaroví inženýři používají metody white box testování v rámci testování jednotek k testování malých částí kódu najednou. To usnadňuje identifikaci chyb a omylů, které se vyskytnou během testování.
Příkladem testování jednotek je situace na začátku vývoje, kdy společnost vytvoří na webových stránkách jednoduché tlačítko, které uživatele přesune na jinou stránku. Pokud jednotka funguje podle očekávání, je úspěšná, přičemž vývojáři provádějí změny, dokud tomu tak není.
5. Testování mutací
Testování mutací je typ testování, který testuje změny a mutace. Při testování mutací provádějí vývojáři drobné úpravy zdrojového kódu, aby zjistili, zda mohou odhalit chyby v kódu.
Pokud testovací případ projde, znamená to, že v kódu je nějaký problém, protože po provedení změn by neměl projít. V ideálním případě při testování mutací všechny testovací případy selžou.
Příkladem testování mutací je strojové učení. Programy strojového učení automaticky „mutují“ v závislosti na nových informacích, takže důsledné testování těchto programů na standard „mutace“ informuje vývojáře o tom, zda software funguje podle očekávání.
6. Integrační testování
Integrační testování je hlavní fází testování softwaru, během níž testeři zjišťují, zda různé moduly fungují správně, když jsou integrovány s jinými moduly.
Techniky testování bílé skříňky se používají při integračním testování, aby se ověřilo, že kód funguje i v případě, že spolu pracuje více modulů, které často kódovali různí vývojáři.
Pokud databáze čerpá informace například z online zdroje, integrační testování zajišťuje, že získaná data jsou přesná a aktualizují se přiměřeně konzistentní rychlostí.
7. Penetrační testování
Penetrační testování je typem testování bílé skříňky, které lze použít k simulaci konkrétních kybernetických útoků na systém.
Při penetračním testování mají testeři přístup ke kompletním údajům o síti a systému, jako jsou hesla a síťové mapy. Poté se pokusí získat přístup k datům v systému nebo je zničit, a to prostřednictvím co největšího počtu různých způsobů útoku.
Penetrační testování je důležitým aspektem testování zabezpečení, které by se mělo provádět u všech sestavení softwaru.
Například platforma HR provede penetrační testování a hledá zranitelnosti v kódu, aby se ujistila, že je dostatečně bezpečná pro uchovávání dat zaměstnanců.
Techniky testování bílé skříňky
Existuje mnoho různých technik testování bílých skříněk, které lze použít k provedení výše uvedených testů bílých skříněk. Jak už to tak bývá, pro testování různých aspektů kódu jsou nejvhodnější různé techniky, ale všechny níže uvedené techniky bílé skříňky jsou důležité.
1. Pokrytí výkazů
Jedním z definičních znaků testování bílé skříňky je, že testeři by se měli při provádění testů bílé skříňky snažit pokrýt co největší část zdrojového kódu.
Pokrytí kódu je silným měřítkem a pokrytí příkazů je jednou z technik, kterou mohou testeři bílé skříňky použít ke zvýšení pokrytí příkazů v kódu.
Pokrytí příkazů je metrika, která měří počet provedených příkazů vydělený celkovým počtem příkazů a vynásobený 100. Testeři bílé skříňky by se měli snažit o vysoké pokrytí výroků.
2. Pokrytí větví
Pokrytí větví, stejně jako pokrytí příkazů, odráží, jak široké je pokrytí jednotlivých prvků kódu při testování bílé skříňky. Větve jsou obdobou příkazů „IF“ v logice, kde se kód větví na možnosti true a false, které ovlivňují výsledek operace.
Při použití technik pokrytí větví tester white boxu kontroluje, zda je každá větev zpracována alespoň jednou, a ověřuje, zda obě větve fungují správně.
3. Pokrytí cesty
Techniky pokrytí cest hodnotí cesty v rámci softwarové aplikace. Maximalizace pokrytí testovacích cest znamená zajistit, aby všechny cesty v rámci programu byly prozkoumány alespoň jednou. Jedná se o podobný typ testovací techniky jako pokrytí větví, ale je považován za důkladnější a efektivnější.
Testování pokrytí cesty je obvykle považováno za nejvhodnější pro testování kompletních aplikací, nikoli dílčích sestavení.
4. Pokrytí rozhodnutí
Pokrytí rozhodováním je jednou z nejdůležitějších technik bílé skříňky, protože poskytuje údaje o pravdivých a nepravdivých výsledcích logických výrazů ve zdrojovém kódu.
Testování pokrytí rozhodnutí ověřuje platnost zdrojového kódu tím, že zajišťuje, aby každá značka každého potenciálního rozhodnutí byla během testování prověřena alespoň jednou.
Rozhodovací body zahrnují všechny případy, kdy existuje možnost dvou nebo více různých výsledků.
5. Pokrytí podmínek
Krytí podmínek je také známé jako krytí výrazem. Tato technika bílého rámečku vyhodnocuje dílčí proměnné v podmíněných příkazech v kódu a ověřuje výsledek každé logické podmínky.
Tento typ testování zohledňuje pouze výrazy s logickými operandy, zatímco testování pokrytí rozhodnutí a testování pokrytí větví se používá k zajištění ostatních logických operací.
6. Pokrytí více stavů
V testech pokrytí více podmínek testeři ověřují různé kombinace podmínek a hodnotí rozhodnutí, které kód učiní pro každou kombinaci.
Pro testy pokrytí více podmínek může existovat mnoho různých testovacích případů, protože existuje obrovské množství kombinací podmínek, takže tento typ testování je často časově velmi náročný.
7. Pokrytí konečných stavových strojů
Pokrytí konečných stavových strojů je důležitým typem testování, ale také jedním z nejobtížnějších způsobů, jak dosáhnout vysokého pokrytí kódu při testování bílé skříňky. Pracuje s funkčností návrhu a vyžaduje, aby vývojáři počítali, kolikrát je během testování navštíven nebo překročen stav a kolik sekvencí obsahuje každý konečný stavový systém.
8. Testování řídicího toku
Testování toku řízení je technika testování bílé skříňky, která se snaží zjistit pořadí provádění programu pomocí jednoduché struktury řízení.
Vývojáři sestavují testovací případy testování toku řízení tak, že vyberou určitou část programu a sestaví testovací cestu. Testování toku řízení se obvykle používá při testování jednotek.
Životní cyklus testování bílé skříňky
ve vývoji softwaru
Testování bílé skříňky je důležitým krokem v životním cyklu vývoje softwaru, i když v něm nemá své pevné místo.
Vývojáři mohou provádět testování bílého rámečku podle toho, kdy potřebují zkontrolovat funkčnost kódu, a někteří vývojáři mohou být při kontrole nově napsaného kódu důkladnější než jiní, aby se ujistili, že je čistý a neobsahuje zbytečné řádky.
Testování bílého pole se však nejčastěji provádí během testování jednotek a integračního testování. Vývojáři během vývojové fáze provádějí jak jednotkové, tak integrační testování.
Probíhají před funkčním testováním, jako je testování systému a akceptační testování, a dávají vývojářům možnost identifikovat, najít a opravit hlavní chyby v rané fázi testování před předáním produktu týmu QA.
Manuální nebo automatizované testy bílé skříňky?
Stejně jako jiné typy testování softwaru je možné i testování bílého pole automatizovat. Může být buď manuální, nebo automatizované, i když ve většině případů je snazší automatizovat testování bílé skříňky než testování černé skříňky.
Vzhledem k tomu, že testování bílých skříněk je časově velmi náročný typ testování, je automatizace mezi softwarovými týmy stále oblíbenější.
Manuální testování bílé skříňky: výhody, problémy a postupy
Manuální testování bílých skříněk znamená ruční provádění testů bílých skříněk a vyžaduje, aby vývojáři měli dovednosti a čas na psaní jednotlivých testovacích případů, aby otestovali každý řádek kódu v sestavení softwaru. To může zabrat hodně času, ale také to vede k nejdůkladnějším výsledkům a výstupům testů.
Mezi výhody ručního testování bílého rámečku patří:
1. Hloubka
Manuální testování umožňuje testerům prozkoumat kód softwaru do větší hloubky než automatizované testování, pokud se tak rozhodnou, například pročítáním celého zdrojového kódu aplikace namísto pouhého automatizování úloh, které se dotýkají povrchové funkčnosti.
2. Umístění chyby
Ruční testování usnadňuje vyhledávání chyb a nedostatků, protože vývojáři by měli být schopni přesně určit, ve kterém řádku kódu se chyba nachází.
Pokud například zjistíte, že se nenačítá obrázek, a poté v kódu vyhledáte řádky, které se týkají načítání obrázků, výrazně tím zúžíte příčinu.
3. Rychlost
Ruční testování obvykle trvá déle než automatizované testování, ale pokud vývojáři chtějí provést pouze jeden nebo dva rychlé testy, je pravděpodobně rychlejší provést je ručně než nastavit automatizaci.
Například testování jednotek zahrnuje spíše zkoumání funkce a zjišťování, zda funguje, než shromažďování velkého množství dat pomocí automatizace procesu. Ruční testování bílých skříněk má však i své nevýhody.
Mezi problémy manuálního testování bílých skříněk patří:
1. Přesnost
Manuální testování sice umožňuje vývojářům pokrýt široký rozsah kódu, ale lidští testeři jsou vždy náchylnější k chybám a omylům než počítačové programy, což znamená, že manuální testování je často považováno za méně přesné než automatizované testování.
2. Čas
Manuální testování trvá déle než automatizované testování a manuální testování bílých skříněk patří k časově nejnáročnějším testům vůbec. Tím se prodlužuje doba realizace a může být obtížnější dodržet krátké termíny vývoje.
3. Náklady
Vzhledem k množství pracovních sil a zdrojů, které vyžaduje manuální testování bílých skříněk, je toto testování pro vývojové týmy často nákladnější než automatizované testování, které obvykle vyžaduje méně vývojářů a méně času.
4. Škálovatelnost
Manuální testování je vhodné pouze pro testování malých aplikací nebo jednotlivých komponent větších aplikací. U větších aplikací, jako je například databáze hostovaná v cloudu s tisíci vstupy za minutu, se jako metoda simulace standardní zátěže mnohem více upřednostňuje automatizované testování.
Automatizované testování bílé skříňky: výhody,
výzvy a procesy
Automatizační technologie každý den usnadňují automatizaci aspektů testování softwaru. Za přechodem odvětví k hyperautomatice stojí zčásti efektivita a úspora nákladů, které automatizace nabízí vývojovým týmům, jež se vždy cítí být v úzkých.
White box je jedním z nejvhodnějších a nejvhodnějších typů testování pro automatizaci, protože je relativně snadné jej automatizovat a časová i finanční úspora automatizace white box testů může být značná.
Automatizované testování bílých skříněk může zahrnovat vývojáře, kteří sami píší testovací skripty, nebo lze proces urychlit pomocí komplexních nástrojů, jako je ZAPTEST, které poskytují nejmodernější technologii komplexního testování softwaru.
Mezi výhody automatizace testování bílého pole patří:
1. Přesnost
Počítačové testování eliminuje riziko chyb, protože počítače se neunaví a nedělají chyby.
2. Čas
Automatizované testování bílých skříněk je podstatně rychlejší než ruční testování bílých skříněk a uvolňuje čas, který mohou vývojáři věnovat jiným úkolům, například opravám chyb nebo psaní oprav aktualizací.
3. Měřítko
Automatizované testování se škáluje mnohem lépe než manuální testování, takže pokud se vaše softwarová aplikace rozrůstá nebo chcete provést rozsáhlé testování najednou, je automatizace lepší volbou.
Například rozšíření zadávání dat zahrnuje požadavek na více vstupů v automatizaci ve srovnání s najímáním více zaměstnanců při manuálních testech.
4. Náklady
Náklady na automatizované testování jsou po sečtení obvykle nižší než náklady na manuální testování, protože automatizace ušetří množství pracovních hodin. Desetinásobná návratnost investic ZAPTESTu ukazuje, jak automatizace může vývojářům ušetřit peníze a vést k vyšším výnosům. Automatizace však není bez nevýhod.
Mezi problémy spojené s automatizací testování bílých skříněk patří:
1. Sledování chyb
Automatizace ne vždy usnadňuje nalezení chyb v kódu v závislosti na tom, jakým způsobem vývojáři automatizují testy nebo jaké testovací nástroje používají, zejména ve srovnání s manuálním white box testováním, kdy testeři vidí kód, který se spouští, kdykoli se objeví chyba.
2. Dovednosti
Ne všichni vývojáři vědí, jak automatizovat testy nebo jak používat nástroje pro automatizované testování, takže přechod na automatizaci může vyžadovat určité investice do školení hlavních dovedností, jako je kódování v jazyce dané testovací platformy a používání dovedností analýzy dat k pochopení příčin problémů v testu bílé skříňky.
Závěr: Manuální testování bílé skříňky
nebo automatizace testování bílé skříňky?
Celkově lze říci, že testování bílých skříněk v softwarovém inženýrství je jedním z nejvhodnějších typů testování, které lze přizpůsobit automatizovanému testování, a to zejména kvůli časové náročnosti a složitosti manuálního testování bílých skříněk.
Automatizované testování bílých skříněk je rychlejší, levnější, efektivnější a přesnější než manuální testování, zejména při práci s rozsáhlejšími aplikacemi.
Pokud je to možné, měli by vývojáři softwaru při testování softwaru automatizovat testování bílých skříněk, aby zvýšili spolehlivost testů a testováním pokryli větší oblast větších aplikací, než je prakticky možné při ručním provádění testů. Důvodem jsou značné náklady a odborné znalosti, které jsou nutné při provádění testů white box výhradně manuálními metodami.
Co potřebujete pro začátek
testování bílé skříňky?
Než začnete s testováním white boxu, ujistěte se, že máte vše, co potřebujete k zahájení testování. V závislosti na tom, zda provádíte manuální nebo automatizované testování bílých skříněk, nepotřebujete kromě času a peněz mnoho prostředků.
Musíte však zajistit, aby váš tým měl odpovídající znalosti a nástroje pro správné provádění testování bílých skříněk.
1. Porozumění zdrojovému kódu
Testování bílé skříňky je testování, které provádějí vývojáři a inženýři softwaru s plnou znalostí zdrojového kódu a vnitřní struktury softwaru.
Pokud jste tester QA bez těchto znalostí, budete muset software předat někomu jinému, než bude možné zahájit testování white boxu.
2. Testovací případy
Před provedením white box testování je nutné napsat testovací případy. Testovací případy jsou jednotlivé sady instrukcí, které popisují činnosti, jež mohou testeři nebo vývojáři provádět při testování funkcí a fungování systému.
Při testování bílé skříňky jsou testovací případy navrhovány lidmi s úplnou znalostí vnitřní struktury systému a vytvářeny za účelem ověření, zda systém funguje tak, jak má.
3. Nástroje pro testování bílé skříňky
Pro white box testování je k dispozici spousta nástrojů, které podporují přístup ke zdrojovému kódu a návrhovým dokumentům a zároveň umožňují automatizaci testů. Ty jsou také dostupné v různých cenových relacích pro uživatele, například ve verzích ZAPTEST FREE a ZAPTEST ENTERPRISE, které poskytují větší flexibilitu.
Před zahájením testování si vyberte nástroje, které chcete používat, s důrazem na to, aby měly správnou funkčnost, jako je práce napříč platformami a technologie počítačového vidění, abyste viděli to, co vidí automatické testy.
Ujistěte se, že všichni vývojáři a inženýři zapojení do testování vědí, jak a kdy je používat.
Proces testování bílé skříňky
Testování bílé skříňky zahrnuje mnohem více znalostí o fungování systému než testování černé skříňky a některé kroky při testování bílé skříňky jsou trochu odlišné.
Testeři bílé skříňky musí nejprve identifikovat funkce nebo součásti systému, které chtějí ověřit, a teprve poté navrhnout možné cesty testování a napsat testovací případy, které se mají provést.
Proces testování bílé skříňky se může lišit také podle toho, jakou techniku testování bílé skříňky používáte. Postupujte podle následujících kroků a zjistěte, jak provést testování bílého pole a zároveň maximalizovat pokrytí cesty.
Krok 1: Identifikace testovaných funkcí
Než začnete provádět testování bílého rámečku, zvažte, co přesně chcete testovat a jak to budete testovat. Obvykle se jedná o zaměření se na malou množinu funkcí nebo vlastností a vytvoření sady testovacích případů pouze pro jejich testování.
Tento krok budete provádět opakovaně pro různé oblasti systému, abyste maximalizovali pokrytí testů, ale je důležité rozdělit různé oblasti na jednotlivé testy.
Čím užší je vaše zaměření, tím spolehlivější a přesnější mohou být vaše testy.
Krok 2: Zakreslete všechny možné cesty do grafu toků
Významnou součástí přípravných prací na testování white boxu je zakreslení všech možných cest, které je třeba otestovat, do vývojového diagramu.
Tento krok vám pomůže maximalizovat pokrytí cest a zajistit, že v každém vytvořeném testovacím případu ověříte všechny možné cesty. Nakreslete vývojový diagram, který zahrnuje všechny možné cesty pro každou testovanou funkci nebo komponentu, například načrtnutím různých cest, které vznikají při zadání různých hodnot.
Krok 3: Identifikace všech možných cest
Podívejte se na svůj vývojový diagram a určete všechny možné cesty, kterými se uživatelé mohou vydat, počínaje prvním krokem vývojového diagramu a konče posledním krokem.
Čím více větví a rozhodnutí bude ve vašem vývojovém diagramu, tím více jedinečných cest bude existovat. Pochopení toho, kolik jedinečných možných cest existuje, vám pomůže zajistit, aby vaše testovací případy pokrývaly všechny možnosti.
Krok 4: Vytvoření testovacích případů
Další fází testování bílého rámečku je napsání testovacích případů, které ověří všechny cesty, které jste identifikovali výše.
Je důležité se ujistit, že vaše testovací případy pokrývají všechny možné cesty a jasně popisují akce, které musí testeři nebo vývojáři provést, aby provedli každý testovací případ.
U každého testovacího případu uveďte ID a název testovacího případu spolu se stručným popisem a očekávanými výsledky každého testu.
Krok 5: Spuštění testovacích případů
Nyní je čas na provedení testovacích případů, což většina lidí považuje za samotné testování bílého boxu.
Testeři provádějí testovací případy podle stručného souboru instrukcí uvedených v každém testovacím případu a hlásí výsledek každého testovacího případu. To lze porovnat s očekávanými výsledky uvedenými v testovacím případu a zjistit, zda každý test bílé skříňky prošel nebo neprošel.
Krok 6: Opakujte cyklus podle potřeby
Stejně jako u jiných forem testování softwaru jde i u testování white boxu o porovnání skutečného fungování systému s očekáváním, které mají testeři o tom, jak by měl systém fungovat.
Pokud testeři zjistí, že se systém nechová tak, jak očekávají, může to znamenat, že testování bílé skříňky selhalo a vývojáři musí před dalším testováním opravit řádky kódu.
Opakováním výše uvedeného postupu proveďte další testování bílého pole, dokud nebude systém důkladně otestován a případné chyby nebudou odstraněny.
Osvědčené postupy pro testování bílého rámečku
Osvědčené postupy při testování bílého rámečku závisí na tom, jaký typ testování provádíte a v jaké fázi testovacího procesu se nacházíte.
Vzhledem k tomu, že většina testování bílého rámečku probíhá během testování jednotek a integračního testování, vztahuje se většina osvědčených postupů testování bílého rámečku na tyto fáze.
1. Maximalizujte pokrytí testů
Podle definice je při testování bílého boxu důležité maximalizovat pokrytí testů, aby se zajistilo, že během této fáze bude otestováno vysoké procento softwaru.
Toho lze dosáhnout maximalizací pokrytí cest a větví a psaním testovacích případů, které během přípravné fáze zkoumají všechny možné cesty a výsledky.
2. Ověření chování a výkonu
Při psaní testovacích případů v rámci white box testování chcete vytvořit testovací případy, které ověří, že systém funguje tak, jak očekáváte, a také testovací případy, které ověří výkonnost systému.
Kromě ověření, zda určité akce vedou k určitým výsledkům, můžete například také ověřit, jak rychle dokáže systém provádět určité úlohy nebo jak je výkon ovlivněn různými proměnnými.
3. Pište testovací případy nezávisle na sobě
Pokud chcete ověřit dvě různé funkce, například pokud třída kódu závisí na určité databázi, vytvořte abstraktní rozhraní, které odráží toto připojení k databázi, a implementujte rozhraní s maketovým objektem pro testování tohoto připojení.
Tím zajistíte, že vaše testovací případy ověřují spojení, která chcete, aby ověřovaly, a ne něco jiného.
4. Pokrytí všech cest a smyček
Maximální pokrytí testů znamená pokrytí všech možných cest, zohlednění podmíněných smyček a dalších typů smyček v kódu.
Ujistěte se, že jste navrhli testovací případy, které plně prozkoumají možné cesty a ověří, že se smyčky chovají tak, jak očekáváte, bez ohledu na vstupní údaje.
7 chyb a nástrah při
Implementace testů bílého rámečku
Při zahájení testování white boxu je důležité si uvědomit některé z nejčastějších nástrah, do kterých se vývojáři při provádění testování white boxu často dostávají. Běžné chyby při testování white boxu mohou způsobit zpoždění a nepřesnosti, které mohou poškodit kvalitu a časový plán vydání softwaru.
1. Domníváte se, že testování bílé skříňky není nutné.
Někteří testeři se domnívají, že testování bílé skříňky není nutné, protože testování černé skříňky testuje všechny vnější výstupy softwaru, a pokud tyto výstupy správně fungují, předpokládá se, že funguje i vnitřní fungování systému.
Testování bílé skříňky však může vývojářům pomoci odhalit problémy a chyby, které se při testování černé skříňky nemusí vždy projevit, a je nezbytné pro ověření bezpečnosti softwarových systémů.
Pokud například program obsahuje únik paměti, který způsobuje pokles výkonu po delší dobu a který testování černé skříňky nezkoumá, je testování bílé skříňky jedinou možností, jak kód projít a problém najít ještě před zveřejněním.
2. Provádění všech testů bílých skříněk ručně
Někteří vývojáři si mohou myslet, že je stejně snadné provést testování bílé skříňky jako testování černé skříňky.
Testování bílého boxu je však časově podstatně náročnější a vývojáři, kteří se snaží provádět testování bílého boxu zcela ručně, mohou zjistit, že není možné provést ruční kontrolu v požadovaném rozsahu nebo při maximálním pokrytí testů.
3. Přidělení testerů k provádění testovacích případů
Testování bílé skříňky by měli kompletně provádět vývojáři, softwaroví inženýři a lidé, kteří dokonale rozumí vnitřnímu fungování softwarového systému.
Někteří vývojáři se domnívají, že mohou testování bílých skříněk přenést na testery QA, když sami napsali testovací případy, ale to vede pouze ke špatnému provedení a snížení kvality dokumentace.
4. Spěch při testování
Testování softwaru je dlouhý a časově náročný proces a někteří vývojáři mohou být v pokušení uspěchat testování bílé skříňky a přejít do další fáze vývoje. Je důležité vyčlenit dostatek času a zdrojů na white box testování, aby se vývojáři necítili uspěchaní a měli dostatek času na maximální pokrytí testů.
5. Špatná dokumentace
Vedení řádné dokumentace před testováním, v jeho průběhu i po něm zajišťuje, že všichni, kdo se podílejí na vývoji a testování softwaru, mají ve správný čas přístup ke správným informacím.
Ujistěte se, že každý člen vývojového týmu ví, jak psát jasnou dokumentaci a jak hlásit výsledky testování bílých skříněk.
6. Nesprávné používání automatizačních nástrojů
Automatizační nástroje mohou usnadnit testování bílých skříněk, ale je důležité se ujistit, že celý váš tým rozumí tomu, které automatizační nástroje používáte a jak je používat.
Různé nástroje jsou vhodné pro různé typy testování, proto je důležité vybrat si automatizační nástroje vhodné pro testování bílého pole a naučit se správně používat jejich funkce.
Některé nástroje například neintegrují automatizaci a místo toho se zaměřují na shromažďování informací a organizaci tiketů, což není pro automatizované testování zdaleka ideální. Naopak full-stack nástroje, jako je ZAPTEST, pokrývají celý proces testování prostřednictvím funkcí, jako je například automatizace libovolné úlohy, a jsou tak vhodné pro efektivnější testování bílých skříněk.
7. Nespolupráce s týmem QA
To, že testování white boxu plánují a provádějí vývojáři, neznamená, že by se tým QA neměl nijak zapojit.
Je důležité předat výsledky testování bílé skříňky týmu QA, aby pochopil, co bylo dosud testováno a jak mohou výsledky testování bílé skříňky ovlivnit způsob, jakým tým QA přistupuje k testování černé skříňky.
Nezapojením týmu QA vzniká potenciální nesoulad mezi jednotlivými odděleními, což vede ke špatné komunikaci a horší zpětné vazbě v pozdější fázi testování. Výsledkem je výrazně nižší úroveň kvality konečného produktu.
Typy výstupů z white box testů
Při testování softwaru ve white boxu získáte různé výstupy v závislosti na výsledcích provedených testů. Pochopení těchto výstupů z testů white box vám pomůže zjistit, jaké kroky je třeba podniknout dále.
1. Výsledky testů
Výsledky testů bílé skříňky vám prozradí, zda je třeba pokračovat v dalším testování, zda je třeba opravit chyby a zda jednotlivé testovací případy prošly nebo neprošly. Důkladná dokumentace je nezbytná, protože pomáhá vývojářům a testerům porozumět výsledkům testování bílých skříněk.
2. Vady
Defekty lze identifikovat při testování white boxu a někdy jsou výstupem testů white boxu defekty a chyby.
Pokud se softwarový systém během testování white boxu nechová tak, jak jste očekávali, může to znamenat, že se v programu vyskytují závažné vady, které je třeba před pokračováním vývoje a testování odstranit.
3. Zkušební protokoly
Testovací zprávy jsou zprávy, které sestavují vývojáři a testeři během testování softwaru a po něm.
Obsahují podrobné informace o výsledcích testování, včetně toho, které testovací případy prošly a které ne, případné závady zjištěné během testování a doporučení pro další postup.
Vývojáři používají zprávy o testech ke komunikaci s ostatními vývojáři, jejichž úkolem může být oprava chyb a nedostatků zjištěných během testování.
Příklady testů bílého rámečku
Testování bílé skříňky umožňuje vývojářům ověřit, zda vnitřní struktura softwarového systému funguje tak, jak má, bez ohledu na vnější výsledky a výstupy systému.
Níže uvedené příklady ilustrují, jak může testování bílé skříňky pomoci vývojářům ověřit vnitřní funkce softwaru.
1. Příklad registrační stránky elektronického obchodu
Jeden z příkladů testování white boxu se týká způsobu, jakým vývojáři testují funkce webových stránek. Pokud se snažíte otestovat registrační stránku webu elektronického obchodu, může testování bílého rámečku umožnit vývojářům zjistit, zda funkce a třídy zapojené do registrace fungují tak, jak by měly, když je funkce registrace provedena.
Konkrétně se jedná o všechny informace, které uživatel zadává, a vyhodnocuje parametry formuláře, včetně dat, která jsou a nejsou platná, a toho, co formulář považuje za legitimní e-mailovou adresu.
Tým pak zadá řadu řetězců, které testují formulář, přičemž některé jsou navrženy tak, aby selhaly, a jiné tak, aby uspěly, a poté vyhodnotí výsledky oproti předpokládaným výsledkům.
Naproti tomu testování černé skříňky pouze zkontroluje, zda stránka funguje, bez další analýzy proč a jak.
2. Příklad kalkulačky
Dalším příkladem testování white boxu jsou aplikační kalkulačky.
Pokud vytváříte kalkulačku, která se používá jako součást aplikace, testery černé skříňky jednoduše otestují, zda je výstup kalkulačky správný, když se kalkulačka používá podle svého určení.
Testy bílé skříňky zkontrolují interní výpočty kalkulačky a ověří, jak byl výstup vypočítán a zda je správný. To je užitečnější pro složitější výpočty s několika fázemi, jako jsou daně. Testeři zkoumají kód, aby zjistili, jaké kroky kalkulačka provádí a v jakém pořadí, a teprve po každé fázi vidí výsledek.
Pokud je vstup kalkulačky (7*4) – 6 a výstup je 22, je to správně a test černé skříňky by tímto testem prošel. Je to však proto, že 7*4 = 28 a 28 – 6 je 22. Testování white boxu by mohlo odhalit, že software zjistil tento výsledek provedením 7*4 = 32 a 32 – 6 = 22, přičemž ani jedna z těchto možností není správná.
Tento větší přehled ukazuje, že výpočet je přesný po každé konkrétní fázi, najde fázi, ve které nemusí být přesný, a rychleji ji vyřeší, protože tester jasně vidí, kde dochází k problému.
Typy chyb a omylů při testování white boxu
Během testování bílé skříňky je možné identifikovat a lokalizovat chyby, které mohou ovlivnit fungování systémů pod kapotou. Tyto chyby mohou ovlivňovat externí funkce nebo mohou mít vliv na výkon či spolehlivost.
Níže jsou uvedeny některé z nejčastějších typů chyb a nedostatků, které vznikají při testování bílého rámečku.
1. Logické chyby
Logické chyby vznikají při testování bílé skříňky, protože testy bílé skříňky odhalují oblasti, kde program nefunguje logicky nebo kde jsou v kódu softwaru nesprávně použity funkce a podmínky.
Logické chyby se mohou projevovat jako selhání systému nebo jednoduše vést k neočekávanému chování a výstupům.
2. Chyby návrhu
Testování bílé skříňky může vývojářům pomoci identifikovat chyby v návrhu kódu. Chyby návrhu vznikají, když existuje rozdíl mezi logickým průběhem softwaru a jeho skutečnou implementací. Mohou vést k neočekávanému chování a chybám výkonu.
3. Typografické chyby
Typografické chyby a syntaktické nedostatky jsou chyby, které vznikají v důsledku lidského faktoru – například proto, že vývojář chybně zadal určitou frázi nebo přidal do řádku kódu špatnou interpunkci. Takovéto drobné chyby mohou vést k poškození funkcí a příkazů, které software nedokáže přečíst, což může způsobit závažné chyby v systému.
Běžné metriky testování bílé skříňky
Při provádění testování bílých skříněk vám běžné metriky testování pomohou měřit úspěšnost a komplexnost testů bílých skříněk a také pochopit kvalitu práce vašich vývojářů.
Metriky testování informují proces vývoje, protože mohou identifikovat oblasti, které je třeba zlepšit, nebo řídit proces testování v budoucnosti.
1. Pokrytí kódu
Jednou ze základních charakteristik testování bílého boxu je, že by mělo pokrýt co největší část kódu, a pomocí metrik pokrytí kódu můžete měřit, kolik kódu jste pokryli.
Metriky pokrytí kódu ukazují, jak velkou část celkového kódu aplikace jste ověřili pomocí testování white box. Vývojáři se obecně snaží pokrýt co nejblíže 100 % softwarového kódu pomocí testování bílého pole.
Pokrytí kódu lze rozdělit na různé metriky, včetně pokrytí cest, segmentů, příkazů a větví.
Pokrytí složenými podmínkami je dalším typem metriky pokrytí kódu, která kontroluje, zda byla každá podmínka v sadě zkontrolována vedle více cest a kombinací cest.
2. Metriky závad
Metriky defektů vyjadřují, kolik defektů bylo nalezeno, jak dobře se vám daří identifikovat defekty pomocí testování bílé skříňky a kolik procent kódu prošlo nebo neprošlo testováním bílé skříňky.
Metriky defektů mohou být prezentovány jako počet defektů na tisíc řádků kódu nebo počet celkových defektů v programu. I když se nízký počet závad může zdát pozitivní, vývojáři musí zajistit, aby to nebylo proto, že závady byly při testování přehlédnuty.
3. Provedení testu
Metriky provádění testů mohou vývojářům pomoci rychle zjistit, jaká část z celkového počtu testů byla dosud provedena a kolik zbývá neprovedených testů. Metriky provádění textů pomáhají softwarovým týmům pochopit, jak daleko je testování bílé skříňky a zda automatizované softwarové testy probíhají podle očekávání.
Je však možné, že dojde k falešně pozitivním i falešně negativním výsledkům, což může ovlivnit přesnost této metriky.
4. Doba trvání testu
Metriky trvání testů nám ukazují, jak dlouho trvá spuštění automatizovaných testů, což je důležité zejména při testování bílých skříněk, protože automatizace je nezbytná pro maximalizaci efektivity testů a pokrytí testů.
Doba trvání testů je často úzkým místem při agilním vývoji softwaru, takže porozumění tomu, jak dlouho trvá spuštění softwarových testů, může vývojovým týmům pomoci urychlit proces vývoje.
Je však důležité si uvědomit, že metriky trvání testů nevypovídají nic o kvalitě prováděných testů.
Nástroje pro testování bílé skříňky
Díky nástrojům a technologiím může být testování bílých skříněk podstatně přesnější, efektivnější a komplexnější. Nástroje pro testování bílých skříněk mohou softwarovým inženýrům pomoci automatizovat testování bílých skříněk, zaznamenávat a dokumentovat proces testování bílých skříněk a řídit testování bílých skříněk od začátku do konce.
5 nejlepších bezplatných nástrojů pro testování bílé skříňky
Pokud zatím nechcete investovat do drahých nástrojů pro testování bílých skříněk, můžete si vyzkoušet celou řadu bezplatných nástrojů pro testování bílých skříněk online, aniž byste museli cokoli platit.
Bezplatné testovací nástroje nenabízejí vždy všechny funkce jako podnikové nástroje, ale jsou dobrým výchozím bodem pro začátečníky v oblasti testování bílých skříněk a mohou vývojovým týmům pomoci lépe pochopit, jaké nástroje a technologie potřebují.
1. ZAPTEST FREE edition
ZAPTEST je nástroj pro testování softwaru a software pro automatizaci robotických procesů, který umožňuje vývojářům a testerům QA automatizovat testování bílých i černých skříněk.
Bezplatná verze ZAPTESTu umožňuje více virtuálních uživatelů, více iterací a podporu uživatelského fóra. Aplikace pracuje s místními i externími zdroji dat a integruje se s HP ALM, Rally a JIRA. Uživatelé, kterým se bezplatná nabídka ZAPTESTu líbí a chtějí vidět více z toho, co společnost nabízí, se mohou také informovat o upgradu na podnikovou verzi, jakmile bude připravena.
2. Bugzilla
Bugzilla je velmi populární open-source nástroj pro testování softwaru, který umožňuje vývojářům sledovat chyby a nedostatky v softwaru a spravovat jejich životní cyklus.
Bugzilla umožňuje snadno přiřazovat chyby vývojářům, určovat jejich priority, ověřovat je a po opravě je uzavírat. Bugzilla je skvělý nástroj pro týmy, které se stále snaží standardizovat svůj přístup k hlášení chyb, a je zcela zdarma.
3. OpenGrok
OpenGrok je open source prohlížeč kódu a vyhledávač v databázi kódu. Je kompatibilní s kódem napsaným v jazycích Java C++, JavaScript a Python a s dalšími programovými jazyky.
Chcete-li se během testování white boxu rychle orientovat v rozsáhlé databázi kódu, OpenGrok je zcela zdarma a snadno se používá.
4. SQLmap
SQLmap je dalším nástrojem s otevřeným zdrojovým kódem, který je považován za téměř nezbytný pro testování bílého boxu. SQLmap reguluje průběh využívání a odhalování chyb SQL injection.
Nástroj SQLmap, který sám sebe označuje jako „nástroj pro penetrační testování“, může testerům bílých skříněk pomoci identifikovat a lokalizovat bezpečnostní chyby ve zdrojovém kódu a opravit je předtím, než se pustí do dalšího testování.
5. Emma
Emma je sada nástrojů s otevřeným zdrojovým kódem, která dokáže měřit pokrytí kódu, pokud pracujete v jazyce Java. Je to velmi rychlý způsob, jak rychle zjistit pokrytí kódu a sledovat, kolik kódu pokryl každý člen vývojového týmu individuálně.
Emma podporuje pokrytí tříd, metod, řádků a základních bloků a je plně založena na Javě.
5 nejlepších nástrojů pro testování bílé skříňky v podniku
Pokud hledáte nástroje, které nabízejí větší funkčnost nebo lepší podporu, mohou být pro váš vývojový tým vhodnější podnikové nástroje pro testování bílých skříněk.
1. ZAPTEST ENTERPRISE edition
Podniková edice ZAPTESTu je vylepšenou verzí bezplatného ZAPTESTu. V této verzi mohou uživatelé využívat neomezené množství šablon OCR, neomezené množství iterací a neomezené množství skriptů VBScript a JavaScript.
Podniková edice ZAPTEST nabízí kompletnější sadu nástrojů pro vývojové týmy, které chtějí přejít na automatizaci, a podniková verze je také vybavena odbornou podporou, aby váš tým mohl maximálně využít technologie ZAPTEST pro automatizaci testování softwaru a RPA.
2. Skřipec
Fiddler je sada nástrojů od společnosti Telerik, která je určena k testování webových aplikací v režimu white box. Fiddler dokáže zaznamenávat veškerý provoz HTTP mezi systémem a internetem a vyhodnocovat nastavené body přerušení a upravovat odchozí a příchozí data. Je k dispozici v různých formátech v závislosti na vašem rozpočtu a požadavcích, takže existuje edice Fiddler téměř pro každý tým.
3. HP Fortify
HP Fortify, dříve známý jako Fortify, je dalším nástrojem pro testování zabezpečení, který nabízí komplexní bezpečnostní řešení pro testování bílé skříňky. Sada nástrojů Fortify zahrnuje nástroj Fortify Source Code Analysis, který automaticky skenuje zdrojový kód a hledá v něm zranitelnosti, které by mohly vaši aplikaci vystavit kybernetickým útokům.
4. Jednotka ABAP
Podniková verze ABAP Unit umožňuje vývojářům softwaru rychle a jednoduše provádět manuální i automatizované testování jednotek. Vývojáři píší v rámci aplikace ABAP jednotkové testy a používají je k ověření funkcí kódu a identifikaci chyb v rámci jednotkových testů.
Softwarové týmy, které si chtějí tento nástroj vyzkoušet, mohou začít s bezplatnou verzí ABAP Unit a teprve poté přejít na podnikovou verzi.
5. LDRA
LDRA je proprietární sada nástrojů, které lze použít pro pokrytí příkazů, pokrytí větví a pokrytí rozhodnutí při provádění testování bílého pole. Je to vynikající nástroj, pokud chcete zkontrolovat, zda váš zdrojový kód splňuje standardní požadavky na shodu, sledování a hygienu kódu.
Kdy byste měli používat podnikové
versus bezplatné nástroje pro testování bílé skříňky?
Jak podnikové, tak bezplatné nástroje pro testování softwaru mají své místo v každém moderním týmu vyvíjejícím software. Jak se váš tým rozrůstá a automatizované testování se stává důležitějším pro váš přístup k testování bílých skříněk, pravděpodobně budete chtít přejít od práce s bezplatnými testovacími nástroji k práci s podnikovými nástroji, které nabízejí více funkcí a neomezené možnosti použití.
Existují však specifické scénáře, ve kterých mohou být freemium nástroje vhodnější než podnikové nástroje.
Mnoho vývojářů se při experimentování s novými funkcemi a technologiemi rozhoduje začít s nástroji s volným vstupným, především proto, aby před investicí do podnikových technologií vyhodnotili, zda jsou tyto technologie pro jejich tým vhodné.
Můžete si také vyzkoušet bezplatné verze podnikových nástrojů, jako je ZAPTEST, abyste si je mohli před nákupem vyzkoušet a zjistit více o tom, co podnikové nástroje nabízejí.
A konečně, některé bezplatné nástroje, jako je Emma a Bugzilla, se specializují na specifické, ale důležité funkce, které nabízejí trvalé výhody i softwarovým týmům připraveným platit za podnikové technologie.
Testování bílé skříňky: kontrolní seznam, tipy a triky
Když jste připraveni provést testování white boxu, ujistěte se, že máte vše potřebné, než začnete. Níže je uveden seznam věcí, které je třeba mít na paměti před zahájením testování bílého rámečku, abyste maximalizovali pokrytí testů a zlepšili přesnost výsledků testování bílého rámečku.
1. Použití automatizačních nástrojů
Automatizační nástroje mohou výrazně urychlit proces provádění testování bílých skříněk, snížit chybovost a zvýšit celkovou přesnost.
Téměř všechny softwarové týmy dnes používají určitou úroveň automatizace k provádění testování bílých skříněk, takže experimentování s různými automatizačními nástroji a technologiemi před zahájením testování bílých skříněk vám může pomoci vybrat nástroje, které chcete použít před zahájením testování.
2. Usilujte o 100% pokrytí testy
Pravděpodobně nedosáhnete svého cíle 100% pokrytí testů, ale snaha o co nejbližší pokrytí je při testování bílých skříněk nejlepší.
Pomocí nástrojů pro měření pokrytí testů můžete sledovat a měřit jednotlivé metriky, jako je pokrytí cest a větví, a zajistit, aby byly během testování bílého boxu pokryty všechny nejdůležitější cesty a větve vašeho softwaru.
3. Vypracování přehledných zkušebních protokolů
Stejně jako v případě jiných forem testování softwaru se ujistěte, že váš tým ví, jak sestavit přesné a přehledné zprávy o testech po každé fázi testování.
Zpráva o testování by měla být napsána ve srozumitelném formátu a měla by obsahovat podrobnosti o přístupu k testování a shrnutí výstupů a výsledků každého provedeného testovacího případu. Závěrečná zpráva by měla zdůvodnit přijaté kroky a uvést doporučení pro další postup.
4. Měření úspěchu pomocí testovacích metrik
Metriky testování pomáhají softwarovým týmům sledovat a zaznamenávat průběh testování bílých skříněk a nabízejí cenné informace, které mohou být podkladem pro budoucí vývojové procesy.
Je důležité, aby vývojáři používali metriky, aby pochopili, jak efektivní je testování, které provádějí, a jak čistý byl jejich původní kód, aby mohli v budoucnu svou práci zlepšit.
Testování bílé skříňky:
Závěr
Testování bílé skříňky v softwarovém inženýrství je základní typ testování softwaru, který ověřuje vnitřní strukturu a logiku zdrojového kódu softwarové aplikace.
Ve spojení s testováním černé skříňky se testováním bílé skříňky zjišťuje nejen to, zda software funguje podle očekávání, ale také to, zda je vnitřní kód logický, čistý a úplný.
Testování bílého pole se nejčastěji provádí v rámci testování jednotek a integračního testování a vždy je provádějí vývojáři a softwaroví inženýři s kompletní znalostí vnitřního kódu softwaru.
I když některé testy bílého rámečku lze provádět ručně, dnes je mnoho testů bílého rámečku automatizováno díky zvýšení rychlosti, efektivity a pokrytí, které automatizace testování bílého rámečku nabízí.
Často kladené dotazy a zdroje
Pokud se chcete dozvědět více o testování white boxu, můžete využít spoustu bezplatných online zdrojů. Pomocí videí, knih a dalších zdrojů se můžete naučit, jak provádět testování white boxu, a zajistit, aby vaše standardy testování white boxu odpovídaly osvědčeným postupům.
1. Nejlepší kurzy automatizace testování bílé skříňky
Pokud se chcete dozvědět více o automatizaci testování bílé skříňky, můžete navštívit kurz o testování softwaru a testování bílé skříňky. Některé z těchto kurzů jsou akreditované a nabízejí formální kvalifikaci, zatímco jiné jsou neformální online kurzy určené vývojářům a testerům softwaru, kteří si chtějí zlepšit své znalosti v určitém oboru.
Mezi nejlepší kurzy testování bílých skříněk, které jsou dnes k dispozici online, patří:
2. Jakých je pět nejčastějších otázek při pohovoru o automatizaci testování bílých skříněk?
Pokud se připravujete na pohovor, kde můžete diskutovat o testování bílých skříněk, technikách bílých skříněk a nástrojích pro automatizaci, je důležité, abyste věděli.
- Jaký je rozdíl mezi white box testováním a black box testováním?
- Proč je testování bílého pole důležité?
- Jaké jsou různé přístupy k testování bílých skříněk?
- Jaké procesy jsou součástí white box testování a jak je můžeme zlepšit?
- Jaké nástroje a technologie můžete použít k urychlení nebo zpřesnění testování bílého pole?
3. Nejlepší návody na testování bílého rámečku na YouTube
Pokud se chcete o testování bílého rámečku dozvědět více, sledování výukových programů na YouTube vám pomůže pochopit, jak testování bílého rámečku funguje, a prohlédnout si názorná vysvětlení procesů a přístupů, které jsou součástí testování bílého rámečku.
Mezi nejinformativnější výukové programy na YouTube patří:
- Udacity: Příklad testování bílé skříňky
- Guru99: Co je to testování bílé skříňky?
- Testování bílé a černé skříňky
- Techniky testování bílé skříňky
- Mentor testování softwaru: Co je to testování bílé skříňky?
4. Jak udržovat testy bílé skříňky
Údržba testů softwaru zajišťuje, že prováděné testy budou vždy důkladné a vhodné pro daný účel. Je důležité udržovat všechny typy testů softwaru v rámci blackbox i whitebox testování, protože kód, na kterém testy provádíte, se neustále mění s každou opravou chyby a iterací. To znamená, že se spolu s ním musí změnit i vaše testovací skripty.
Údržba testů bílé skříňky zahrnuje udržování aktuálního rámce pro automatizaci testování a prosazování procesů, které mají zajistit pravidelnou aktualizaci testů a testovacích případů.
Toho můžete docílit tak, že:
Zapracování údržby do návrhu testů:
Zohlednění budoucnosti testů white box již při jejich vytváření a navrhování usnadní jejich údržbu v budoucnu.
Umožnit jasnou komunikaci mezi týmy:
Ujistěte se, že všichni členové vašeho vývojového týmu mají k dispozici více komunikačních kanálů, aby se změny v kódu mohly rychle promítnout do testů.
Buďte přizpůsobiví:
Někdy se může stát, že v kódu provedete změny, které jste neplánovali. Ujistěte se, že váš tým ví, jak se rychle přizpůsobit těmto změnám, a má schopnosti tyto změny sledovat v testování.
Neustále přehodnocujte testovací protokoly:
Testovací protokoly, které jste zavedli na začátku testování, nemusí být vhodné, jakmile váš software projde různými změnami a vylepšeními. V pravidelných fázích přehodnocujte své testovací protokoly, abyste ověřili, zda jsou stále vhodné.
5. Nejlepší knihy o testování bílých skříněk
Testování bílého pole je hluboké téma, jehož zvládnutí může trvat roky. Pokud se chcete stát odborníkem na moderní testování softwaru metodou white box, můžete si přečíst knihy o testování metodou white box, které napsali vývojáři, akademici a inženýři.
Mezi nejlepší knihy o testování bílých skříněk a automatizaci testování patří:
- The Art of Software Testing, Third Edition by Glenford J. Myers, Corey Sandler, Tom Badgett, Todd M. Thomas
- Testování softwaru: Jorgensen: Testování softwaru: řemeslný přístup, čtvrté vydání, Paul C. Jorgensen
- Jak rozbít software: James Whittaker: Praktický průvodce testováním.
- Automatizace testování softwaru Just Enough od Dana Mosleyho a Bruce Poseyho
Tyto knihy byste měli najít v některých knihkupectvích a knihovnách i na internetu. V seznamech četby dobrých kurzů a programů pro testování softwaru naleznete také další materiály a studijní zdroje.