Woher wissen Sie, wann Sie mit der Erfassung von Testfällen "fertig" sind?
Das ist nicht der Fall. Sie können keine 100 % erreichen, außer in den trivialsten Fällen. Auch eine 100%ige Abdeckung (von Linien, Pfaden, Bedingungen...) sagt nicht aus, dass Sie alle Randbedingungen getroffen haben.
Am wichtigsten ist, dass die Testfälle nicht einfach geschrieben und vergessen werden können. Jedes Mal, wenn Sie einen Fehler finden, schreiben Sie einen zusätzlichen Test. Prüfen Sie, ob es mit dem ursprünglichen Programm fehlschlägt, prüfen Sie, ob es mit dem korrigierten Programm funktioniert, und fügen Sie es zu Ihrem Testsatz hinzu.
Ein Auszug aus Die Kunst des Softwaretestens von Glenford J. Myers:
- Wenn eine Eingabebedingung einen Wertebereich vorgibt, schreiben Sie Testfälle für die Enden des Bereichs und Testfälle mit ungültigen Eingaben für Situationen, die direkt hinter den Enden liegen.
- Wenn eine Eingabebedingung eine Anzahl von Werten vorgibt, schreiben Sie Testfälle für die minimale und maximale Anzahl von Werten und einen darunter und darüber hinaus.
- Verwenden Sie Leitfaden 1 für jede Ausgabebedingung.
- Verwenden Sie Leitfaden 2 für jede Ausgabebedingung.
- Wenn die Eingabe oder Ausgabe eines Programms eine geordnete Menge ist, konzentrieren Sie sich auf das erste und das letzte Element der Menge.
- Suchen Sie darüber hinaus mit Ihrem Einfallsreichtum nach weiteren Randbedingungen
( Aus urheberrechtlichen Gründen habe ich nur das Nötigste eingefügt. )
Die Punkte 3. und 4. oben sind sehr wichtig. Man vergisst oft die Randbedingungen für die Ausgänge. 5. ist in Ordnung. 6. hilft nicht wirklich weiter :-)
Kurze Prüfung
Das ist schwieriger, als es aussieht. Myers bietet diesen Test an:
Das Programm liest drei ganzzahlige Werte aus einem Eingabedialog. Die drei Werte stellen die Längen der Seiten eines Dreiecks dar. Das Programm zeigt eine Meldung an, die angibt, ob es sich um ein schalenförmiges, gleichschenkliges oder gleichseitiges Dreieck handelt.
Erinnern Sie sich daran, dass ein ungleichseitiges Dreieck ein Dreieck ist, bei dem keine zwei Seiten gleich lang sind, während ein gleichschenkliges Dreieck zwei gleiche Seiten hat und ein gleichseitiges Dreieck drei gleich lange Seiten hat. Außerdem sind die Winkel, die den gleichen Seiten in einem gleichschenkligen Dreieck gegenüberliegen, ebenfalls gleich (daraus folgt auch, dass die Seiten, die gleichen Winkeln in einem Dreieck gegenüberliegen, gleich sind), und alle Winkel in einem gleichseitigen Dreieck sind gleich.
Schreiben Sie Ihre Testfälle. Wie viele haben Sie? Myers stellt 14 Fragen zu Ihrem Testsatz und berichtet, dass hochqualifizierte professionelle Programme im Durchschnitt 7,8 von 14 möglichen Punkten erreichen.