Junior
Mis on valge kasti testimine?
sobes.tech AI
Vastus AI-lt
Valge kasti testimine (White-box testing) on tarkvaratestimise meetod, mis kontrollib sisemist struktuuri, disaini ja koodi loogikat. Testija on juurdepääs lähtekoodile ja loob selle põhjal testjuhtumid:
Peamised põhimõtted:
- Koodi katvus: Testjuhtumid töötatakse välja maksimaalse katvuse saavutamiseks erinevatele koodielementidele (operaatorid, harud, teed):
- Sisemise struktuuri mõistmine: Nõuab arusaamist, kuidas programm töötab seestpoolt:
- Avastamine: Loogika vead, vale täitmise teed, tsüklid ja tingimuslikud operaatorid:
- Automatiseerimine: Kasutatakse sageli üksustestides, integratsiooni- ja turvatestides — koodi tasemel:
Katvuse tüübid:
- Operaatorite katvus (Statement Coverage): Iga operaator peab olema täidetud vähemalt üks kord:
- Harude katvus (Branch Coverage): Iga tingimus (if, else, switch) peab olema täidetud nii true kui ka false:
- Teede katvus (Path Coverage): Kõigi võimalike teede täitmine programmis (kõige põhjalikum, kuid sageli ebapraktiline):
Python näide harude katvusest:
# Näidifunktsioon
def calculate_discount(price, is_member):
if price > 100 and is_member: # Haru 1 (tõene)
discount = price * 0.1 # Haru 2 (täidetakse, kui Haru 1 'tõene')
else: # Haru 3 (väär)
discount = 0 # Haru 4 (täidetakse, kui Haru 1 'väär')
return price - discount
# Testjuhtumid harude katvuse jaoks:
# 1. price > 100 ja is_member == True (Haru 1 tõene, Haru 2)
# 2. price <= 100 või is_member == False (Haru 1 väär, Harud 3, 4)
Eelised:
- Vigade varajane avastamine:
- Tagab, et olulised koodiosad on testitud:
- Aitab mõista, kuidas kood töötab, ja parandada selle disaini:
Puudused:
- Nõuab sügavaid teadmisi koodist:
- Võib olla keeruline suurte ja keeruliste süsteemide puhul:
- Ei testi programmi tööd lõppkasutaja vaatenurgast (mis on musta kasti testimise eesmärk):
Oluline on kontrollida, kuidas programm töötab, mitte ainult mida ta teeb.