Mittel📊 33% Prüfungs-Häufigkeit
Unit-Tests & Code-Coverage
Was bedeutet welche Coverage-Stufe? Kleine Rechenaufgaben sind beliebt.
Warum Priorität „Mittel"? Gelegentlich Teil der Prüfung (40–59%). Verstehen, aber nicht überinvestieren.
Lernziele
- Die Coverage-Stufen C0, C1, C2 unterscheiden
- Anzahl notwendiger Testfälle aus einem Kontrollflussdiagramm bestimmen
- Äquivalenzklassen und Grenzwertanalyse anwenden
Coverage-Stufen
- C0 – Statement Coverage: jede Anweisung mindestens 1× ausgeführt.
- C1 – Branch Coverage: jede Verzweigung einmal true und einmal false.
- C2 – Path Coverage: jeder mögliche Pfad durch den Code.
- Condition Coverage: jede Einzelbedingung true/false (bei zusammengesetzten Bedingungen).
Beispiel
pseudocode
FUNKTION rabatt(betrag, stammkunde)
r ← 0
WENN betrag > 100 DANN r ← 5
WENN stammkunde DANN r ← r + 10
GIB r zurück
ENDE FUNKTION| Kombination | betrag > 100 | stammkunde | r |
|---|---|---|---|
| 1 | false | false | 0 |
| 2 | true | false | 5 |
| 3 | false | true | 10 |
| 4 | true | true | 15 |
Für 100 % C1 reichen 2 geschickt gewählte Testfälle (z. B. 1 und 4). Für 100 % C2 braucht es alle 4.
Black-Box: Äquivalenzklassen + Grenzwerte
Eingaben in Äquivalenzklassen partitionieren (Werte mit gleichem erwarteten Verhalten). Pro Klasse mindestens einen Testfall. Dann Grenzwerte der Klassen zusätzlich.
Beispiel: Alter muss 18-99 sein.
- gültige Klasse: 18..99 → Testwerte 18, 42, 99 (inkl. Grenzen)
- ungültig niedrig: <18 → -1, 17
- ungültig hoch: >99 → 100Übungen
Eine AntwortWie viele Testfälle braucht es für 100 % Branch Coverage im Rabatt-Beispiel oben?
Eine AntwortWas ist der Unterschied zwischen C1 und C2?