====== LU01c - Aufbau eines Testfalls ====== Testfälle sind detaillierte Beschreibungen, wie bestimmte Funktionen der Software getestet werden sollen, um festzustellen, ob sie die gewünschten Anforderungen erfüllen. Jeder Testfall beschreibt die Eingabedaten, die erwarteten Ergebnisse und die Schritte zur Ausführung. ===== Einleitung ===== Das Testen eines Programms ist ein wichtiger Teil der Qualitätssicherung bei der Softwareentwicklung. Beim Testen wird das Programm mit genau definierten Eingaben bzw. Daten ausgeführt. Ziel ist es, möglichst viele Fehler zu finden. Wichtig ist dabei nicht nur sogenannte Positiv-Tests durchzuführen, sprich zu testen ob sich das Programm mit korrekten Daten korrekt verhält, sondern auch Negativ-Tests, sprich Testfälle bei denen das Programm auf fehlerhafte Eingaben reagieren muss. Für jedes Programm erstellen wir eine Reihe von Testfällen. Mit diesen Testfällen wollen wir möglichst alle verschiedenen Kombinationen von Eingaben und Ausgaben testen. Wenn wir die Testfälle ausführen, halten wir die Ergebnisse in einem separaten Dokument fest, dem [[.:testprotokoll|Testprotokoll]]. ===== Testfall ===== Ein Testfall definiert * welche Situation getestet werden soll * mit welchen konkreten Daten wir testen * welches Ergebnis erwartet wird. Die Daten gehören zu einem Testfall: * Nr: Eine eindeutige Nummer hilft, den Testfall zu identifizieren. * Bezeichnung: Was getestet wird. * Eingabe: Mit welchen Eingaben bzw. Daten wird der Test durchgeführt. * Erwartetes Ergebnis: Welche Ergebnisse und Meldungen das Programm ausgeben soll. ==== Präsentation ==== Um den Aufbau der Testfälle zu demonstrieren, zeige ich dies an einem konkreten Beispielprogramm. Das Programm berechnet eine Seite eines rechtwinkligen Dreiecks. * Der Benutzer gibt die Länge von 2 der 3 Seiten ein. * Für die dritte, unbekannte Seite gibt man -1 ein. * Das Programm gibt die Länge der dritten Seite aus. === Tabellarische Darstellung === ^ Nr ^ Testfall ^ Eingabe ^^^ Erwartetes Ergebnis ^ ^ ::: ^ ::: ^ Seite a ^ Seite b ^ Seite c ^ ::: ^ | 1 | Berechnung der Seite c | 3 | 4 | -1 | Seite c: 5 | | 2 | Berechnung der Seite a | -1 | 4 | 5 | Seite a: 3 | | 3 | Seitenlänge a ist 0 |0 | 15 | 7 | Eine der Seiten hat die Länge 0: Berechnung nicht möglich | 4 | Alle Seiten angegeben | 4 | Alle Seiten angegeben | 3 | 4 | 5 | Alle drei Seiten angegeben: Berechnung nicht möglich | Jede Zeile enthält die Daten eines Testfalls. Diese Form ist sehr kompakt und eignet sich gut für einfache Programme. === Testfall einzeln darstellen === ^ Nr || 1 | ^ Testfall || Berechnung Seite c | ^ Eingabe ^ Seite a | 3 | ^ ::: ^ Seite b | 4 | ^ ::: ^ Seite c | -1 | ^ Erwartetes Ergebnis || Seite c: 5 | | ||| ^ Nummer || 2 | ^ Testfall || Berechnung Seite a | ^ Eingabe ^ Seite a | -1 | ^ ::: ^ Seite b | 4 | ^ ::: ^ Seite c | 5 | ^ Erwartetes Ergebnis || Seite a: 3 | | ||| ^ Nummer || 3 | ^ Testfall || Seitenlänge a ist 0 | ^ Eingabe ^ Seite a | 0 | ^ ::: ^ Seite b | 15 | ^ ::: ^ Seite c | 7 | ^ Erwartetes Ergebnis || Eine der Seiten hat die Länge 0: Berechnung nicht möglich | | ||| ^ Nr || 4 | ^ Testfall || Alle Seiten spezifiziert | ^ Eingabe ^ Seite a | 3 | ^ ::: ^ Seite b | 4 | ^ ::: ^ Seite c | 5 | ^ Erwartetes Ergebnis || Alle drei Seiten wurden angegeben: Berechnung nicht möglich | Diese Form ist weniger kompakt und eignet sich eher für Programme mit komplexen Ein-/Ausgaben. === Übung === Das obige Beispiel enthält 4 Testfälle. Wenn Sie dieses kleine Programm vollständig testen müssen, welche weiteren Testfälle gibt es? ==== Weitere Literatur ==== [[https://www.inmediasp.de/unternehmen/insights/die-kunst-gute-testfaelle-zu-schreiben-2|Die Kunst, gute Testfälle zu schreiben]] ---- {{tag>M450-LU01}} [[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] Marcel Suter