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.

 

Kam dál?