AW: Wann hat sich die Funktion SecondsBetween geändert
21. Aug 2014, 17:10
Für Unittests bildet man Kongruenzklassen für die Parameter, wählt Kandidaten aus den KK aus und testet mit allen Kombinationen von Parametern.
Beispiel:
"Bei positivem Kontostand werden Guthabenzinsen verwendet, bei negativem die Dispozinsen. Ist der Kontostand 0, wird kein Zinsatzverwendet. Auszudrucken ist der zu verwendete Zinssatz"
Wir haben drei Kongruenzklassen (laut Spec):
1. Alle Guthaben > 0
2. Guthaben = 0
3. Alle Guthaben < 0
Wir generieren Tests für Werte ...
* so in der Mitte einer KK
* so am Rand der KK
* direkt am Rand der KK
Manchmal alle drei, manchmal reichen zwei (Mitte und direkt am Rand) oder nur ein wert (der in der Mitte).
Wie sieht das bei 'SecondsBetween' aus? Wieviele Kongruenzklassen haben wir? Laut Spec 2: "gültiges Datum" und "ungültiges Datum". Bischen wenig.
Mist. Unser Test wird entweder imnmer fehlschlagen (weil wir Glück haben, und Datumse gewählt haben, die nicht passen) oder immer funktionieren. Davon haben wir dann aber nicht viel.
Also: Genau spezifizieren, wie SecsBetween (also 'Seconds between') implementiert werden muss.
Daher mit Tipp: Für Kernfunktionen exakt spezifizieren wie sich die Funktion verhalten soll und im Idealfall das Verfahren angeben. Dann kann man KK bilden und 100% Testabdeckung erzielen.
|