Testfallermittlung
Dieser Beitrag ist eine Begriffserklärung zur Testfallermittlung – inklusive Prüfungsfragen und Tags.
In a Nutshell
- Äquivalenzklassen: gruppiert Eingaben, die sich gleich verhalten
- Grenzwertanalyse: testet genau an den Grenzen (min, max, min±1, max±1)
- Zweig-/Pfadüberdeckung: sichert, dass jeder Codepfad durchlaufen wird
Kompakte Fachbeschreibung
Äquivalenzklassen
Teilt Eingabebereiche in Klassen ein, für die das System gleich reagiert. Pro Klasse ein Testfall.
Grenzwertanalyse
Testet genau an den Grenzen und direkt daneben – Fehler treten häufig an Grenzen auf.
Zweigüberdeckung (Branch Coverage)
Jeder Zweig (if/else) muss mindestens einmal True und False durchlaufen werden.
Pfadüberdeckung (Path Coverage)
Jede mögliche Kombination von Zweigen wird getestet (aufwändig).
Anweisungsüberdeckung (Statement Coverage)
Jede Codezeile muss mindestens einmal ausgeführt werden.
Prüfungsrelevante Stichpunkte
- Äquivalenzklassen: gültige/ungültige Klassen bilden
- Grenzwertanalyse: min, max, min-1, max+1 testen
- Zweigüberdeckung: alle if/else-Wege abdecken
- Pfadüberdeckung: alle Pfade durchlaufen (theoretisch)
- Anweisungsüberdeckung: jede Zeile ausführen
- Whitebox: Kenntnis der internen Struktur
- Blackbox: nur über Schnittstellen
Kernkomponenten
- Äquivalenzklassenbildung
- Grenzwertanalyse
- Zweigüberdeckung
- Pfadüberdeckung
- Anweisungsüberdeckung
- Testfallkatalog
- Überdeckungsanalyse
- Werkzeuge (Coverage-Tools)
- Risikobasierte Priorisierung
- Dokumentation
Praxisbeispiel (Altersvalidierung)
// Regel: Alter muss zwischen 18 und 65 sein
// Äquivalenzklassen:
// - gültig: [18, 65]
// - ungültig: <18, >65
// Grenzwertanalyse:
// 17, 18, 19 (untere Grenze)
// 64, 65, 66 (obere Grenze)
// Testfälle:
// - 17 (ungültig)
// - 18 (gültig, Grenze)
// - 19 (gültig)
// - 64 (gültig)
// - 65 (gültig, Grenze)
// - 66 (ungültig)
Typische Prüfungsfragen (mit Kurzantwort)
- Was ist Äquivalenzklasse? Gruppe von Eingaben mit gleichem erwarteten Verhalten.
- Warum Grenzwertanalyse? Fehler treten häufig an Grenzen auf.
- Zweigüberdeckung vs. Anweisungsüberdeckung? Zweig: alle if/else-Wege; Anweisung: jede Zeile.
- Pfadüberdeckung? Alle möglichen Pfadkombinationen testen (sehr aufwändig).
Wichtigste Quellen
- https://www.istqb.org
- https://junit.org/junit5/docs/current/user-guide/
- https://testing.googleblog.com