Einführung
Strukturorientierte Tests (White-Box Tests)
- Überdeckungsgrad
$Überdeckung (Coverage) =\frac{Anzahl überdeckter Merkmale }{Anzahl vorhandener Merkmale} $
- Anweisungsüberdeckung (Knoten im Kontrollflussgraph)
- Zweigüberdeckung (Kanten im Kontrollflussgraph)
- Pfadüberdeckung (Pfade im Kontrollflussgraph)
VollständigePfadüberdeckung wäre ideal(Schleife)
- Bedingungsüberdeckung
- Einfache Bedingungsüberdeckung (Wahrheitswerte der Atome)
Jede atomare Teilentscheidung muss einmal true und false sein - Mehrfache Bedingungsüberdeckung (Kombinationen der Atome)
Überdeckt jede mögliche Kombination atomarer Teilentscheidungen
bis zu 2^n Testfälle - Minimale Mehrfach-Bedingungsüberdeckung
2.+die Gesamt-Bedingungmuss min. einmal true und einmal false werden - Modifizierte Bedingungs-/Entscheidungsüberdeckung
Die Testfälle müssen demonstrieren, dass jede atomare Teilentscheidung den Wahrheitswert der Gesamtentscheidung unabhängig von den anderen Teilentscheidungen beeinflussenkann
Funktionsorientierte Tests (Black-Box Tests)
vor der Implementierung aufgestellt werden können
- Methoden zur Auswahl von Testfällen
- Äquivalenzklassenbildung
“repräsentativer Daten”
gültigeund ungültigeKlassen - Grenzwertanalyse
Wertebereiche, min/max Werte - Entscheidungstabellen und Klassifikationsbäume
- Randomisiertes Testen
- Fuzzing
randomisiertes negativ Testen
Verwenden von Typinformation: Integers, Strings
Verwenden von Protokollinformation: Name-Value Pairs, Block Identifier, Header Values
Ausblick: Wie wird getestet?
- JUnit
@Before, @After, @BeforeClass, @AfterClass - Eclipse-Plugin Emma, für Java/JUnit