Junior
V čem spočívá testování bílého boxu?
sobes.tech AI
Odpověď od AI
Testování bílého boxu (White-box testing) je metoda testování softwaru, která kontroluje vnitřní strukturu, návrh a logiku kódu. Tester má přístup ke zdrojovému kódu a na jeho základě navrhuje testovací případy.
Hlavní principy:
- Pokrytí kódu: Testovací případy jsou vyvíjeny tak, aby dosáhly maximálního pokrytí různých prvků kódu (operátory, větve, cesty).
- Znalost vnitřní struktury: Vyžaduje pochopení toho, jak program uvnitř funguje.
- Detekce: chyb v logice, nesprávných cestách provádění, problémů s cykly a podmíněnými operátory.
- Automatizace: Často se používá u jednotkových testů, integračních testů a bezpečnostních testů na úrovni kódu.
Typy pokrytí:
- Pokrytí příkazů (Statement Coverage): Provedení každého příkazu v programu alespoň jednou.
- Pokrytí větví (Branch Coverage): Provedení každé podmínky (if, else, switch) jak jako true, tak jako false.
- Pokrytí cest (Path Coverage): Provedení všech možných cest programem. (Nejkompletnější, ale často nepraktické).
Příklad pokrytí větví v Pythonu:
# Příklad funkce
def calculate_discount(price, is_member):
if price > 100 and is_member: # Větev 1 (pravda)
discount = price * 0.1 # Větev 2 (provádí se, pokud Větev 1 je 'pravda')
else: # Větev 3 (nepravda)
discount = 0 # Větev 4 (provádí se, pokud Větev 1 je 'nepravda')
return price - discount
# Testovací případy pro pokrytí větví:
# 1. price > 100 a is_member == True (pokrytí Větev 1 pravda, Větev 2)
# 2. price <= 100 nebo is_member == False (pokrytí Větev 1 nepravda, Větev 3, Větev 4)
Výhody:
- Včasné odhalení chyb.
- Zajišťuje, že důležité části kódu byly otestovány.
- Pomáhá pochopit, jak kód funguje, a zlepšit jeho návrh.
Nevýhody:
- Vyžaduje hluboké znalosti kódu.
- Může být časově náročné u velkých a složitých systémů.
- Neověřuje funkčnost programu z pohledu koncového uživatele (což je úkolem testů černé skříňky).
Podstatou je ověřit "jak" program funguje, nikoli pouze "co" dělá.