Kapitel 11 von 18

Test-Driven Development

Systematische Test-Strategie Kategorien

Äquivalenzklassen-Tests

  • Volle Stunden (X:00)

  • 5-Minuten-Schritte (X:05, X:10, X:15, ...)

  • Zwischenwerte (X:01-X:04, X:06-X:09, ...)

Grenzwert-Tests

  • Mitternacht (00:00)

  • Mittag (12:00)

  • Tagesübergang (23:59 → 00:00)

Spezialfall-Tests

  • Minute 04: "BALD FÜNF NACH"

  • Minute 29: FAST-Priorität

  • Minute 45-49: DREIVIERTEL vs. VIERTEL VOR

  • 01:00: "ES IST EIN UHR" (wenn UHR als letztes Wort) vs. "ES IST EINS" (wenn UHR fehlt/nicht am Ende)

Test-Beispiele (Minute 29 - Lernfall) Testziel: Prioritäts-Logik verstehen

Variante | KURZ | FAST | BALD | Erwartetes Ergebnis | Begründung |

kfb | ✗ | ✗ | ✗ | "VOR HALB" | Keine Modifikatoren |

kfB | ✗ | ✗ | ✓ | "BALD HALB" | BALD vorhanden |

kFb | ✗ | ✓ | ✗ | "FAST HALB" | FAST vorhanden |

kFB | ✗ | ✓ | ✓ | "FAST HALB" | FAST > BALD bei m=29 |

Kfb | ✓ | ✗ | ✗ | "KURZ VOR HALB" | KURZ vorhanden |

KfB | ✓ | ✗ | ✓ | "BALD HALB" | BALD > KURZ |

KFb | ✓ | ✓ | ✗ | "FAST HALB" | FAST > KURZ |

KFB | ✓ | ✓ | ✓ | "FAST HALB" | FAST hat Priorität |

Code-Implementierung

if(minute === 29) { if(hat_FAST) return [..., "FAST", "HALB", ...]; else if(hat_KURZ) return [..., "KURZ", "VOR", "HALB", ...]; else if(hat_BALD) return [..., "BALD", "HALB", ...]; else return [..., "VOR", "HALB", ...]; }

Automatisierte Tests // Unit Test Framework describe('Zeitberechnung', () => { test('13:00 sollte "EIN UHR" ergeben (wenn UHR am Ende)', () => { const patternMitUhr = "ESIST...EIN...UHR___"; // UHR als letztes Wort expect(berechneZeit(13, 0, patternMitUhr)).toEqual(["ES", "IST", "EIN", "UHR"]); });

test('13:00 sollte "EINS" ergeben (wenn UHR fehlt)', () => { const patternOhneUhr = "ESIST...EINS...NACHT"; // Kein UHR am Ende expect(berechneZeit(13, 0, patternOhneUhr)).toEqual(["ES", "IST", "EINS"]); });

test('13:29 mit FAST sollte "FAST HALB ZWEI" ergeben', () => { const pattern = "...FAST...HALB..."; expect(berechneZeit(13, 29, pattern)).toContain("FAST"); }); });

Validierung und Qualitätssicherung

Fortschritt61%

Kommt als nächstes:

Validierung und Qualitätssicherung