Úvod do testování bílé skříňky

Testování je jednou z důležitých součástí vývoje softwaru, zajišťuje, že všechny chyby jsou vyřešeny a program funguje tak, jak byl zamýšlen. Testování softwarového produktu může mít několik kroků a více postupů. V tomto článku se podíváme na jeden z důležitých přístupů k testovacímu procesu, Testování bílé skříňky.

Co je testování White Box?

Testování na bílé skříňce se také nazývá testování na bázi kódu, testování na prázdné krabice, testování na otevřené krabici a strukturální testování. Hlavní myšlenkou tohoto přístupu k testování softwaru je podívat se na návrh vnitřní struktury a na kód programu, který jej otestuje.

Při testování v bílém poli může tester vidět celý kód programu a má za úkol ověřit tok fungování vstupů a výstupů v programu. Na rozdíl od testování černé skříňky, která se více zaměřuje na testování funkčnosti programu, se testování bílé skříňky týká testování vnitřních struktur programu. Pohled na program tímto způsobem nám umožňuje pracovat na zdokonalení designu, použitelnosti a zvýšení bezpečnosti produktu.

Jak můžete hádat, nazývalo se to testování bílé skříňky nebo skleněné krabice, protože tester vidí kód a další části programu.

Co odlišuje testování bílé skříňky od testování černé skříňky

Pokud jste v minulosti testovali špičky prstů, jsem si jist, že jste narazili na testování Black Box. Největší rozdíl mezi testováním White Box a Black Box Testing je ten, že na rozdíl od testování Black Box, které se provádí z pohledu uživatele, se testování White Box provádí z pohledu vývojáře.

Jinými slovy, spíše než se podívat na program zvenku, přístup White Box Testing vidí interní kód a otestuje jej.

Jak se provádí testování White Box?

Proces testování bílé skříňky můžeme rozdělit do dvou hlavních kroků.

1. Porozumění poskytnutému kódu

Nejprve se bude muset tester v aplikaci White Box Testing naučit kód aplikace. Vzhledem k tomu, že testování White Box je o porozumění a testování veškerého interního kódu programu, každý, kdo má za úkol testovat kód, by měl mít nejen dobré znalosti programování, ale bude také potřebovat dobrou znalost jazyka zdrojového kódu.

Zabezpečení je jedním z důležitých aspektů testování bílé skříňky, takže tester bude také muset umět zabezpečené kódovací postupy.

2. Vytváření a provádění testovacích případů

Jakmile byl testovací tým studován kódem, mohou začít testovat kód a zkontrolovat jeho správný tok a strukturu. Za tímto účelem budou testeři psát nějaký kód pro některé testovací případy, které se budou snažit procházet všemi řádky kódu přítomnými v programu.

Lze to také provést v manuálním testování, které zahrnuje pokus a omyl. Testeři mohou také použít některé automatizované testovací nástroje, jako jsou JUnit a NUnit.

Příklad testování bílé skříňky

Chcete-li lépe porozumět konceptu White Box Testing, podívejte se na níže uvedený kód:

print (int x, int y) (
int sum = x + y;
If ( sum > 0 )
Print ( "Positive", result )
Else
Print ( "Negative", result )
)

Jak jsme diskutovali dříve, cílem testování White Box je procházet všemi větvemi, smyčkami a příkazy, které jsou v kódu přítomny. Vzhledem k tomu můžeme vytvořit 2 testovací případy, jeden, kde oba vstupy jsou kladné, a druhý, kde oba vstupy jsou záporná celá čísla.

Příklad:

  • A = 10 a B = 20
  • A = -10 a B = -20

Techniky testování bílé skříňky

Jeden z nejpopulárnějších testovacích technik pro testování v bílé skříňce se nazývá analýza pokrytí kódu, tato technika se snaží odstranit všechny mezery v sadě testovacích případů a identifikuje části aplikace, které se v testovacích případech nepoužívají. Jakmile budou tyto mezery nalezeny, můžeme vytvořit případy, abychom viděli a ověřili části kódu, který je netestovaný, což nakonec vede k vyleštěnějšímu produktu.

Následuje několik technik analýzy pokrytí:

  • Pokrytí příkazů: V této metodě se snažíme procházet všechny příkazy v kódu alespoň jednou. Tím je zajištěno, že je testován celý kód.
  • Pokrytí větve: Tato metoda je naplánována tak, aby procházela každou větev rozhodovacích bodů v kódu. Tím je zajištěno, že všechna rozhodnutí jsou testována alespoň jednou.

Existují i ​​další testovací techniky, zde je jen několik:

  • Pokrytí podmínek: V této testovací technice se ujistíme, že jsou v kódu zahrnuty všechny podmínky, například:

READ A, B
IF (A == 0 || B == 0)
PRINT '0'

Jak vidíte, máme zde 2 podmínky: A == 0 a B == 0. Nyní tyto podmínky dostanou jako hodnoty TRUE a FALSE. Jedním z možných příkladů může být:

# TC1 - A = 0, B = 110
# TC2 - A = 10, B = 0

  • Vícenásobné pokrytí podmínek: Toto je o něco pokročilejší než poslední. Jak můžete uhodnout, testujeme všechny možné kombinace a všechny možné výsledky alespoň jednou. Zde je slušný příklad:

READ A, B
IF (A == 0 || B == 0)
PRINT '0'

# TC1: A = 0, B = 0
# TC2: A = 0, B = 10
# TC3: A = 110, B = 0
# TC4: A = 110, B = 5

Proto. Vyžadujeme 4 testovací případy pro 2 podmínky.

Pokud tedy existují n podmínky, budeme požadovat 2 n testovacích případů.

  • Testování cesty podle základu: V této technikě testování bílé skříňky vytvoříme graf toku a poté vypočítáme jeho cyklomatickou složitost, což je počet nezávislých cest. Pomocí cyklomatické složitosti můžeme najít minimální počet testovacích případů, které můžeme navrhnout pro každou nezávislou cestu vývojového diagramu.
  • Testování smyčky : Smyčky jsou jedním z nejpoužívanějších nástrojů v programátorské výzbroji. Protože jsou jádrem tolika algoritmů, má smysl mít testovací techniku ​​založenou na smyčkách. Existují 3 typy smyček: jednoduché, vnořené a zřetězené. Pojďme se podívat, jak se bude tester zabývat technikou těchto typů:

1. Jednoduché smyčky: Pro smyčku, která je jednoduchá v designu a má velikost n, můžeme navrhnout několik testovacích případů, které provedou následující:

  • Přeskočte uvedenou smyčku.
  • Procházejte smyčkou pouze jednou.
  • Mají 2 průchody
  • Mají jakýkoli počet průchodů, které jsou menší než jeho velikost.
  • n-1 an + 1 prochází smyčkou.

2. Vnořené smyčky: U kódu s vnořenými smyčkami začneme nejvnitřnější smyčkou a potom vyjdeme ven, dokud se nedostaneme k nejvzdálenější smyčce.

3. Zřetězené smyčky: V případě těchto smyček. Jednoduchý test smyčky používáme jednou za druhou a v případě, že zřetězená smyčka není nezávislá, můžeme s nimi jednat stejně jako vnořené smyčky.

Výhody

Nyní, když jsme viděli, co je tato metoda testování a jak to funguje. Pojďme se podívat na některé z výhod tohoto.

  • Testování v bílém poli má jednoduchá a jasná pravidla, která testerovi oznámí, kdy je testování provedeno.
  • Techniky testování White Box se snadno automatizují, což vede k tomu, že vývojář musí najmout méně testerů a snížit náklady.
  • Ukazuje úzká místa, která programátorům usnadňují optimalizaci.
  • Testovací tým může začít s jejich prací, aniž by musel čekat, až vývojový tým dokončí vývoj uživatelského rozhraní.
  • Protože ve většině případů jsou kódem pokryty všechny cesty kódu, testování kódu je více.
  • Pomáhá při odstraňování částí kódu, které nejsou nezbytné pro funkčnost programu.

Nevýhody

  • Je to docela zdanění zdrojů. Aby bylo testování dokončeno, budete potřebovat někoho, kdo zná váš kód velmi dobře, aby byl v testovacím týmu a který je sám dobrý programátor. Tento typ úrovně dovedností zvyšuje náklady na testování.
  • V mnoha případech není možné testovat všechny možné podmínky v kódu kvůli časovým omezením nebo rozpočtovým omezením.
  • Protože testování v bílém poli je založeno na kontrole funkčnosti existujícího kódu, nemůžete v programu najít chybějící funkce.
  • Pokud je některá část kódu přepracována a přepsána, testeři musí testovací případy znovu napsat.

Nástroje pro testování bílé skříňky

Nyní, když jste obeznámeni s výhodami, nevýhodami a technikami testování bílé skříňky, se můžeme podívat na některé populární nástroje, které mohou testeři použít k provádění zkoušek bílé skříňky.

  • JSUnit.net

Toto je testovací nástroj JavaScriptu. JSUnit je součástí Junit a jeho open source framework pro testování jednotek, který lze použít k testování White Box. JSUnit je zcela open source pod GNU Public License 2.0, což znamená, že ani pro komerční použití nemusí vývojář platit žádný licenční poplatek.

  • CppUnit

Stejně jako JSUnit je i CppUnit považován za součást JUnit. Tento nástroj může v závislosti na potřebách testeru vydávat ve formátu prostého textu nebo XML a může vytvářet testy jednotek s vlastními třídami. CppUnit je licencován pod LGPL.

  • Veracode

I když to není zdarma k použití, Veracode má několik výkonných nástrojů, které lze použít k testování .NET, C ++, Java a některých dalších jazyků. Testování White Boxu lze provádět i aplikace určené pro stolní, webové a mobilní aplikace.

  • NUnit

Je to framework pro testování jednotek a byl napsán v C #. Tento nástroj podporuje všechny dostupné jazyky .Net a podporuje také datově řízený test. Funkce moudře, může pracovat na paralelním i souběžném provádění a může poskytovat rámec třídy a aplikace pro běžecké testování. Jeden pozoruhodný rys NUnit že to je docela snadné použití.

  • JUnit

Jak můžete odhadnout ze svého názvu, JUnit je nástroj pro automatizaci testování jednotek pro Javu. Dodávka JUnit je snadno integrovatelná s IDE, jako je Eclipse, Macen ACT atd. Je schopna podporovat vývoj řízený testem a může synchronizovat stávající testy s nově vytvořenými jednou. JUnit je zcela otevřený zdroj a lze jej použít pro jakýkoli druh vývoje Java.

  • CSUnit

Stejně jako Nunit je i CSUnit postaven pro podporu testování jednotek v prostředí .Net Framework. Podporuje jazyky jako C # a VB.Net. CSUnit má vestavěnou podporu pro factoringovou praxi a další typy praktik, které se používají v přístupu agilního rozvoje SDLC.

Závěr

Testování má velmi důležité místo v procesu vývoje softwaru a White Box Testing je cenným přístupem k jeho dosažení. Zatímco tento testovací přístup může být nákladný a časově náročný, testování White Box zůstává jediným způsobem, jak zajistit, aby byly všechny části kódu zahrnuty do procesu testování.

Nejdůležitější součástí testování White Box je to, jak je tester obeznámen s kódem. Někdo pověřený testováním přístupu WBT, který nemá dobrou ruku se zdrojovým kódem a použitým programovacím jazykem, způsobí mnoho problémů. Rovněž v závislosti na bílém testování není dobrý nápad, protože se nevztahuje na chybějící funkce. Pro více pokrytý přístup k vývoji by měly být provedeny testování White Box i Black Box, protože pak bude pokrývat maximální počet chyb, defektů a zbývajících funkcí, které je třeba přidat ještě před odesláním produktu.

Doporučené články

Toto byl průvodce testováním White Box. Zde jsme diskutovali, jak se provádí testování White Box pomocí příkladů a různých technik testování White Box s nástroji. Další informace naleznete také v dalších navrhovaných článcích -

  1. Rozhovory s otázkami testování softwaru
  2. Kariéra v testování softwaru
  3. Dotazy na testování hry
  4. Otázky k rozhovoru s ETL
  5. Pokrytí kódu vs Pokrytí testu Nejlépe 4 rozdíly, které je třeba se naučit
  6. Nástroje pro krytí kódu 6 hlavních nástrojů pro krytí kódu

Kategorie: