- 1 Abschnitt
- 7 Lektionen
- Um den Kurs in deinem Profil zu hinterlegen klicke oben auf Starten
Testentwurfsverfahren
1. Black-Box-Testen
Black-Box-Testen konzentriert sich auf die Eingaben und Ausgaben des Systems, ohne die interne Struktur oder den Code zu berücksichtigen.
Techniken des Black-Box-Testens:
- Äquivalenzklassenbildung:
- Aufteilung der Eingabedaten in Klassen, die als gleichwertig betrachtet werden.
- Ziel ist es, aus jeder Klasse einen repräsentativen Testfall auszuwählen.
Beispiel: Für die Funktion „Gerät hinzufügen“ kann man folgende Äquivalenzklassen definieren:
- Gültige IP-Adressen: z.B. „192.168.1.3“
- Ungültige IP-Adressen: z.B. „999.999.999.999“
- Leere IP-Adressen: z.B. „“
- Grenzwertanalyse:
- Testen der Grenzwerte von Eingabedaten.
- Besonders wichtig bei Zahlenbereichen, um die Stabilität an den Rändern zu überprüfen.
Beispiel: Für die Funktion „Gerät hinzufügen“:
- Grenzwerte für IP-Adressen: Überprüfung, ob jede Oktett im Bereich 0-255 liegt.
| Testfall-ID | Beschreibung | Eingabewerte | Erwartetes Ergebnis |
|---|---|---|---|
| TC-01 | Gerät mit IP „0.0.0.0“ hinzufügen | Gerätname: „Switch“, IP: „0.0.0.0“ | Bestätigung „Gerät hinzugefügt“ |
| TC-02 | Gerät mit IP „255.255.255.255“ hinzufügen | Gerätname: „Router“, IP: „255.255.255.255“ | Bestätigung „Gerät hinzugefügt“ |
| TC-03 | Gerät mit IP „256.256.256.256“ hinzufügen | Gerätname: „Firewall“, IP: „256.256.256.256“ | Fehlermeldung „Ungültige IP-Adresse“ |
2. White-Box-Testen
White-Box-Testen analysiert die interne Struktur und den Code des Systems. Es wird oft von Entwicklern durchgeführt, um sicherzustellen, dass der Code wie erwartet funktioniert.
Techniken des White-Box-Testens:
- Anweisungsüberdeckung:
- Jede Anweisung im Code wird mindestens einmal ausgeführt.
Beispiel: Für die Funktion add_device soll jeder Codepfad getestet werden.
# Beispielcode für die Funktion, die getestet wird
def add_device(device_name, ip_address):
if not ip_address:
return "IP-Adresse ist erforderlich"
if not validate_ip(ip_address):
return "Ungültige IP-Adresse"
if device_exists(ip_address):
return "IP-Adresse bereits vorhanden"
# Füge das Gerät hinzu
return "Gerät hinzugefügt"
# Unit-Test zur Überprüfung der Anweisungsüberdeckung
def test_add_device():
assert add_device("Switch", "") == "IP-Adresse ist erforderlich" # Test für leere IP-Adresse
assert add_device("Switch", "192.168.1.3") == "Gerät hinzugefügt" # Test für gültige IP-Adresse
assert add_device("Switch", "999.999.999.999") == "Ungültige IP-Adresse" # Test für ungültige IP-Adresse
assert add_device("Switch", "192.168.1.1") == "IP-Adresse bereits vorhanden" # Test für bereits vorhandene IP-Adresse
test_add_device()
- Zweigüberdeckung:
- Jede Entscheidung im Code (if/else) wird mindestens einmal ausgeführt.
Beispiel: Für die Funktion add_device soll jeder Entscheidungszweig getestet werden.
# Unit-Test zur Überprüfung der Zweigüberdeckung
def test_add_device_branches():
assert add_device("Switch", "") == "IP-Adresse ist erforderlich" # Test für leere IP-Adresse
assert add_device("Switch", "192.168.1.3") == "Gerät hinzugefügt" # Test für gültige IP-Adresse
assert add_device("Switch", "999.999.999.999") == "Ungültige IP-Adresse" # Test für ungültige IP-Adresse
assert add_device("Switch", "192.168.1.1") == "IP-Adresse bereits vorhanden" # Test für bereits vorhandene IP-Adresse
test_add_device_branches()
3. Exploratives Testen
Exploratives Testen ist eine unstrukturierte Testmethode, bei der der Tester die Software frei erkundet und dabei Tests entwirft und ausführt. Diese Methode wird oft verwendet, wenn wenig formale Dokumentation vorhanden ist oder um neue Funktionen schnell zu überprüfen.
Beispiel: Der Tester könnte verschiedene Kombinationen von Gerätetypen und IP-Adressen ausprobieren, um unvorhergesehene Fehler zu finden.
| Testfall-ID | Beschreibung | Eingabewerte | Erwartetes Ergebnis |
|---|---|---|---|
| TC-01 | Gerät mit Sonderzeichen im Namen hinzufügen | Gerätname: „Sw!tch“, IP: „192.168.1.4“ | Bestätigung „Gerät hinzugefügt“ |
| TC-02 | Gerät mit leerem Namen hinzufügen | Gerätname: „“, IP: „192.168.1.5“ | Fehlermeldung „Gerätename ist erforderlich“ |
