Testovací techniky
Dynamické testovací techniky:
Black Box - Pohled na systém jako na černou skříňku a testování na základě požadavků (funkcionální specifikace, rozhraní)
White Box - Založeno na implementaci (struktura kódu)
Metody Black-box testování
- Ekvivalentní rozdělení
- Analýza hraničních hodnot
- Testování přechodu mezi stavy
- Graf příčin a následků (Cause-Effect Graphing)
- Testování syntaxe
- Náhodné testování
Ekvivalentní rozdělení
- Jde o techniku, která úzce souvisí s již uvedenou technikou testování hraničních hodnot.
- Jejím základem je rozdělení vstupů aplikace do skupin, pro které je očekávaný stejný výsledek. Jinak řečeno vstupní data, která spadají do stejné skupiny jsou aplikací zpracovávány s použitím stejné logiky a výsledek tohoto zpracování je tedy také stejný.
- Vytvoří se jeden testovací případ pro každou identifikovanou množinu (třídu ekvivalence - equivalence class)
- Na následujícím příkladu je vytvořeno ekvivalentní rozdělení pro výběr částky z bankomatu - platný interval je od 10 - 200, kdy hodnota musí být navíc dělitelná 10 z čehož vyplývají 4 intervaly znázorněné v tabulce.

Analýza hraničních hodnot
Pro každou identifikovanou hranici ve vstupech a výstupech se vytvoří dva testovací případy. Jeden na každé straně hranice, tak blízko hranici jak jen to je možné. Ověřování se dělá kvůli zaokrouhlování a podobných faktorů.

Testování přechodu mezi stavy
- Funkční chování je namodelováno pomocí stavového automatu
- Vytvoření testovacích případů pro:
- A) každý stav automatu.
- B) použití každého přechodu automatu (0-přechodové pokrytí)
- C) každou možnou posloupnost přechodů (n-přechodové pokrytí)
- Pokrytí - záleží na vnitřní strategii

White-box testování
- Vstupy testovacích případů jsou vždy odvozeny od implementace (kódu)
- Nejčastější informace potřebné k implementaci TC:
– Výrazy
– Rozhodovací bloky v kódu
– Použití proměnných
- Očekávané výstupy pro testovací případy jsou získány vždy z požadavků!
White-box metody testování
- Testování výrazů/instrukcí (Statement Testing)
- Testování skoků/rozhodování
- Testování toku dat
- Testování podmínek skoků
- Testování kombinace podmínek skoků
- Testování změny podmínky
Testování výrazů/instrukcí
Provede se každý výraz/instrukce kódu alespoň jednou během provádění testovacích případů
Pokrytí výrazů = provedený počet výrazů / celkový počet výrazů

Testování skoků/rozhodování
Vytvoří se testovací případy tak aby se každé rozhodnutí provedlo s výsledkem TRUE a FALSE.

