Sobes.tech
Junior

Mi a fehér doboz tesztelés lényege?

sobes.tech MI

Válasz az MI-től

A fehér doboz tesztelés (White-box testing) egy szoftvertesztelési módszer, amely a kód belső szerkezetét, kialakítását és logikáját vizsgálja. A tesztelő hozzáfér a forráskódhoz, és ennek alapján tervezi a teszteseteket.

Alapelvek:

  • Kódlefedettség: A teszteseteket úgy fejlesztik ki, hogy a lehető legnagyobb lefedettséget érjék el a kód különböző elemeiben (operátorok, ágak, utak).
  • A belső szerkezet ismerete: Megköveteli, hogy megértse, hogyan működik a program belülről.
  • Hibák felismerése: logikai hibák, helytelen végrehajtási utak, ciklusok és feltételes operátorok problémái.
  • Automatizálás: Gyakran használják egységtesztekben, integrációs tesztekben és biztonsági tesztekben a kód szintjén.

Fedettség típusai:

  • Állítások lefedése (Statement Coverage): Minden utasítást legalább egyszer végrehajtani a programban.
  • Ágak lefedése (Branch Coverage): Minden feltételt (if, else, switch) igaz és hamis értékekkel is végrehajtani.
  • Út lefedése (Path Coverage): Minden lehetséges út végrehajtása a programon belül. (A legteljesebb, de gyakran nem praktikus).

Python példával az ágak lefedésére:

# Példafüggvény
def calculate_discount(price, is_member):
    if price > 100 and is_member: # Ág 1 (igaz)
        discount = price * 0.1  # Ág 2 (végrehajtódik, ha az Ág 1 'igaz')
    else: # Ág 3 (hamis)
        discount = 0            # Ág 4 (végrehajtódik, ha az Ág 1 'hamis')
    return price - discount

# Tesztesetek az ágak lefedésére:
# 1. price > 100 és is_member == True (Ág 1 igaz, Ág 2)
# 2. price <= 100 vagy is_member == False (Ág 1 hamis, Ág 3, Ág 4)

Előnyök:

  • Hibák korai felismerése.
  • Biztosítja, hogy a fontos kódrészek tesztelve legyenek.
  • Segít megérteni, hogyan működik a kód, és javítani a tervezést.

Hátrányok:

  • Mély ismereteket igényel a kódról.
  • Időigényes lehet nagy és összetett rendszerek esetén.
  • Nem teszteli a program működését a végfelhasználó szempontjából (ez a fekete doboz tesztelés feladata).

Lényege, hogy ellenőrizzük "hogyan" működik a program, nem csak "mit" csinál.