Junior
Čo je podstata testovania bielej skrinky?
sobes.tech AI
Odpoveď od AI
Testovanie bielej skrinky (White-box testing) je metóda testovania softvéru, ktorá kontroluje vnútornú štruktúru, dizajn a logiku kódu. Tester má prístup k zdrojovému kódu a na základe toho navrhuje testovacie prípady.
Hlavné princípy:
- Pokrytie kódu: Testovacie prípady sú vyvíjané tak, aby dosiahli maximálne pokrytie rôznych prvkov kódu (operátory, vetvy, cesty).
- Znalosť vnútornej štruktúry: Vyžaduje pochopenie toho, ako program funguje vo vnútri.
- Detekcia: chýb v logike, nesprávnych ciest vykonávania, problémov s slučkami a podmienkami.
- Automatizácia: Často sa používa pri jednotkových testoch, integračných testoch a bezpečnostných testoch na úrovni kódu.
Typy pokrytia:
- Pokrytie príkazov (Statement Coverage): Vykonanie každého príkazu v programe aspoň raz.
- Pokrytie vetiev (Branch Coverage): Vykonanie každej podmienky (if, else, switch) ako true a ako false.
- Pokrytie ciest (Path Coverage): Vykonanie všetkých možných ciest cez program. (Najkompletnejšie, ale často nepraktické).
Príklad pokrytia vetiev v Pythone:
# Príklad funkcie
def calculate_discount(price, is_member):
if price > 100 and is_member: # Vetva 1 (pravda)
discount = price * 0.1 # Vetva 2 (sa vykoná, ak je Vetva 1 'pravda')
else: # Vetva 3 (nepravda)
discount = 0 # Vetva 4 (sa vykoná, ak je Vetva 1 'nepravda')
return price - discount
# Testovacie prípady na pokrytie vetiev:
# 1. price > 100 a is_member == True (pokrytie Vetva 1 pravda, Vetva 2)
# 2. price <= 100 alebo is_member == False (pokrytie Vetva 1 nepravda, Vetva 3, Vetva 4)
Výhody:
- Včasné odhalenie chýb.
- Zabezpečuje, že dôležité časti kódu boli otestované.
- Pomáha pochopiť, ako kód funguje a zlepšiť jeho dizajn.
Nevýhody:
- Vyžaduje hlboké znalosti kódu.
- Môže byť časovo náročné pre veľké a zložité systémy.
- Netestuje fungovanie programu z pohľadu koncového používateľa (čo je úlohou testov čiernej skrinky).
Podstatou je overiť "ako" funguje program, nie len "čo" robí.