Sobes.tech
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.