Definition „Test Case“ Was sind Testfälle?

Von Stephan Augsten

Softwaretests sind ein elementarer Bestandteil in der Entwicklung und Qualitätssicherung von Software. Doch während die Tests selbst häufig automatisch durchgeführt werden können, müssen die Testfälle händisch entworfen werden.

Testfälle beschreiben ein Szenario, mit dem eine spezifizierte Eigenschaft eines Testobjektes untersucht wird, und darüber hinaus das erwartete Ergebnis
Testfälle beschreiben ein Szenario, mit dem eine spezifizierte Eigenschaft eines Testobjektes untersucht wird, und darüber hinaus das erwartete Ergebnis
(Bild: mohamed_hassan)

Test Cases (im Deutschen Testfälle) sind der erste Schritt bei Softwaretests und jener, bei dem die menschliche Designarbeit den wichtigsten Einfluss hat. Natürlich gibt es indes viele automatisierte Testverfahren oder Frameworks, doch ein Test kann nur so gut sein wie der gegebene Test Case. Um Funktionalitäten zu prüfen, müssen also zunächst einmal Testfälle erstellt werden, in denen Aktionen oder Bedingungen der Software geprüft werden und auf das erwartete Ergebnis hin untersucht werden.

Unterschieden werden Testfälle in verschiedene Typen, mit denen verschiedene Aspekte gemessen werden. Denn nicht nur in der Entwicklung ist die Qualität der Test Cases entscheidend, auch in der Qualitätssicherung sind gut funktionierende Testfälle ein wichtiges Kriterium für fehlerfrei funktionierende Software.

Definition – was ist ein Testfall?

Testfälle beschreiben ein Szenario, mit dem eine spezifizierte Eigenschaft eines Testobjektes untersucht wird. Das eigentliche Testen selbst wird durch verschiedene Testmethoden durchgeführt, der Testfall hingegen beschreibt vor allem das Umfeld und das erwartete Ergebnis.

Somit liegt der Testfall in der Entwicklung auch nicht rein im Aufgabenbereich der Programmiererinnen und Programmierer, sondern wird eher vom Projektmanagement und der Qualitätssicherung designt bzw. mitentworfen. Wobei dies natürlich in der Praxis abhängig von der Größe des Teams und Projektes ist.

Wie ist ein Test Case aufgebaut und wie wird er geschrieben?

Testfälle orientieren sich an realistischen Szenarien, mit denen eine Software umgehen muss. Diese werden anschließend in verschiedene Testbedingungen übertragen, wobei berücksichtigt wird, dass die Szenarien realistisch und zielgerichtet sein müssen.

Um in der Praxis Test Cases zu schreiben, sollten einige Bedingungen beachtet werden:

  • ID: Testfälle sollten (einer klaren Nomenklatur folgend) benannt und nummeriert werden.
  • Beschreibung: eine detaillierte und verständliche Beschreibung des Tests, der Einheit und/oder Funktion.
  • Vorbedingungen: In den Vorbedingungen wird festgelegt, von welchem Ausgangspunkt aus der Test durchgeführt wird.
  • Definition: Sowohl das Testobjekt als auch die Spezifikationen müssen für den Testfall klar definiert sein.
  • Daten: Welcher Input ist für die Durchführung des Tests notwendig und welche Handlungen müssen durchgeführt werden?
  • Erwartungen: Hier muss definiert werden, welche Erwartungen an die Software gestellt werden, um anschließend beurteilen zu können, wann ein Test passiert und wann gescheitert ist.
  • Nachbedingungen: Was ist die Folge der Testdurchführung bzw. was würde in der realen Anwendung nach Ausführung der Eingabe geschehen?
  • Rahmenbedingungen: Hier wird definiert, wie Daten an das Testobjekt übermittelt werden und wie der erwartete Wert abgelesen wird.

Unterscheidung in Positivtests und Negativtests

Semantisch wird zwischen zwei unterschiedlichen Arten von Test Case unterschieden, den positiven und den negativen.

Der Positivtest gehört zu den Standardtests, mit dem ein Testfall in der Praxis durch gültige Vorbedingungen und Eingaben getestet wird. Hiermit kann die Funktionalität eines Testobjektes geprüft werden, wenn die Nutzung wie vorgeschrieben erfolgt.

Negativtests hingegen gelten auch als Robustheitstest. In diesen Testfällen wird ein Objekt getestet, indem die Ausgangslage des Tests und/oder die Eingaben ungültig sind. Dadurch können Entwickler*innen leichter ermitteln, wie robust ihr Testobjekt in unerwarteten Szenarien reagiert.

Unerlässlich sind beide Formen Testfälle.

Weitere Unterscheidung des Test Cases

Da Test Case als Überbegriff für verschiedene Bereiche der Softwareentwicklung und Qualitätssicherung genutzt wird, sollte hier noch weiter unterschieden werden. Schließlich sind die Developer, die auf Funktionalität testen, nicht unbedingt auch immer die besten Kontaktpersonen für Sicherheitstest.

Aus der Formulierung eines Testfalles kann sich genau ableiten, in welcher Stelle der Entwicklung oder Qualitätssicherung dieser eingesetzt wird. An erster Stelle stehen funktionale Test Cases, Unit Test Cases, User Interface Test Cases und Integration Test Cases. Werden diese durchlaufen, sollte festgestellt sein, dass Komponenten und Integration, sowie funktionierende Oberfläche gewährleistet sind.

Es folgen Test Cases für Performance, Security, Database und schließlich Usability. Wird diese Pipeline (größtenteils) befolgt, so können die Tests einen umfänglichen Überblick über eine Software geben – von der Funktion über die Sicherheit bis hin zur Usability.

Test Cases als klar definierte Ebene hinter der Testmethode

Da Entwickler- und Testteams nicht immer identisch sein müssen (und es viele Vorteile bietet, eine Software mit frischem Blick zu betrachten), müssten Testfälle so verständlich formuliert sein, dass auch externe Angestellte der formulierten Logik folgen können. Oftmals entstehen Fehler beim Testen nämlich genau beim Formulieren des Testfalles. So wird beispielsweise ein Case übersehen, der den Programmierenden als logisch erschien. Solche Denkfehler ziehen sich vor allem dann durch die Programmierung, wenn rein intern gearbeitet wird.

Nicht nur Kommunikation zwischen einzelnen Teams sollte bei der Formulierung eines Test Cases im Blickpunkt stehen, sondern auch die Kommunikation zwischen den Designerinnen und Designern der Testfälle sowie der durchführenden Software, wenn Automation gewünscht ist. Ist Automatisierung in der Test-Pipeline angestrebt, sollten die Test Cases daher gleich in den entsprechenden Tools angelegt werden.

(ID:48211614)