Werte beim Testen händisch oder automatisiert erstellen?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Guten morgen,

ich stelle mir gerade die Frage, wie ich zum Testen die Daten der rechten Seite erstellen soll. Zum Beispiel habe ich bisher zum Testen von monatlichen Wiederholungen die Trefferdaten über eine Funktion erstellen lassen, die letztlich nur eine vereinfachte Variante der Methode ist, die in der zu testenden Klasse werkelt. Sollte ich nicht lieber die Trefferdaten händisch erstellen, damit ein eventueller Fehler in der Methode nicht dadurch unbemerkt bleibt, weil die Funktion, die die Trefferdaten generiert, denselben Fehler hat?

Wenn ihr eine größere Anzahl an Werten abgleichen möchtet, wie erstellt ihr da die Trefferdaten?

mutetella

P.S.: Mit "Trefferdaten" meine ich die Daten, die richtig sind. Die, die eine zu testende Funktion ausspucken sollte.
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
BlackJack

@mutetella: Händisch erstellen ist besser. Zum einen kann man bei Code zum erstellen wie Du schon sagst den selben, oder sogar andere Fehler machen. Und zum anderen geht es beim Testen ja nicht darum möglichst viele Werte zu testen, sondern neben ein oder zwei normalen Fällen hauptsächlich Randfälle abzudecken. Also bei einem ganzzahligen Wertebereich was passiert an den Grenzen, bei Containerobjekten ob der Algorithmus eigentlich auch mit einem leeren Container funktioniert, oder bei Sachen mit Datumsangaben ob sich das auch an ungewöhnlichen Daten, zum Beispiel in Schaltjahren wie erwartet verhält oder wenn Zeitangaben mit im Spiel sind, was in den Zeiten zwischen Sommer-/Winterzeit-Umstellung passiert. Ein weiteres Ziel ist das abdecken der gesamten getesteten Funktion, also in allen Tests zusammen genommen sollte jede Zeile/Anweisung in der Funktion mal ausgeführt worden sein.
Benutzeravatar
pillmuncher
User
Beiträge: 1484
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

BlackJack hat geschrieben:Ein weiteres Ziel ist das abdecken der gesamten getesteten Funktion, also in allen Tests zusammen genommen sollte jede Zeile/Anweisung in der Funktion mal ausgeführt worden sein.
I <3 coverage.
In specifications, Murphy's Law supersedes Ohm's.
Antworten