Testfallspezifikation

R 2.0.0

Was ist die Testfallspezifikation?

Was ist die Testfallspezifikation?

Ein Dokument, das eine Menge von Testfällen für ein Testobjekt spezifiziert (inkl. Testdaten und Vor-/Nachbedingung), bei dem die Testfälle jeweils Ziele, Eingaben, Testaktionen, vorausgesagte Ergebnisse und Vorbedingungen für die Ausführung enthalten.

Beschreibung

Ein Testfall ist ein Dokument, das beschreibt, wie ein bestimmter Aspekt eines Software-Systems getestet werden soll. Es handelt sich um eine Menge von Vorbedingungen, Eingaben, Aktionen, erwarteten Ergebnissen und Nachbedingungen.

Testfälle werden mit dem Ziel erstellt, einen testbaren Aspekt einer Komponente oder eines Systems (Testbedingung) zu verifizieren. Testfälle dienen der Verifikation von Anforderungen.

Video: Konkreter Testfall (Länge: 03:12)

Testfallmerkmale

Ein Testfall sollte folgende Merkmale aufweisen:

  • Klarheit: Der Testfall sollte klar und präzise beschrieben werden, sodass die Testschritte von möglichst jedem verstanden und ausgeführt werden können

  • Anforderungsbasiert: Ein Testfall muss sich immer auf eine Anforderung, im besten Fall auf ein konkretes Akzeptanzkriterium (bzw. mehrere Akzeptanzkriterien) beziehen.

  • Rückverfolgbarkeit: Über referenzierte IDs wird sichergestellt, dass die Testfälle eindeutig mit der entsprechenden Anforderung verknüpft sind. Dadurch können Abweichungen und Änderungen angemessen nachverfolgt werden.

  • Wiederverwendbarkeit: Der Testfall sollte wieder verwendbar sein, sodass er bei zukünftigen Tests oder Änderungen am System erneut verwendet werden kann.

  • Risikobasiert: Der Testfall sollte auf Risiken ausgerichtet sein, die für das System von Bedeutung sind.

  • Unabhängig, d.h. ausführbar, ohne dass eine Abhängigkeit zur Ausführung anderer Testfälle besteht.

Hinweis:

Folgende Formulierungen haben eher fachliche Testfälle der Stufen System- und Abnahmetest im Fokus. Prinzipiell gelten die Aussagen aber gleichermaßen für die Erstellung der Testfälle aller Teststufen, auch der frühen Unit- und Integrationstests.

Vorteile von Testfällen

Trotz des Aufwands zur Erstellung und Pflege von schriftlich erfassten Testfällen überwiegt in der Regel folgender Nutzen beim Einsatz von Testfallspezifikationen:

  • Überprüfung der Qualitätsmerkmale Funktionalität, Benutzbarkeit, Effizienz usw.: Testfälle helfen bei der strukturierten Überprüfung eines Systems und stellen sicher, dass es gemäß den Anforderungen arbeitet.

  • Fehlerfrüherkennung: Testfälle ermöglichen bei rechtzeitiger Ausführung, Fehler frühzeitig zu erkennen und zu beheben, bevor sie zu größeren Problemen führen.

  • Testfälle können als konstruktive QS-Maßnahmen bereits vorbeugend zur Fehlervermeidung eingesetzt werden, wenn sie methodisch vor der eigentlich zu testenden Komponenten als Grundlage erstellt werden (Testgetriebene Entwicklung TDD)

  • Effizienzsteigerung: Der strukturierte Einsatz von Testfällen hilft bei der Standardisierung und Optimierung des Testprozesses und erhöht so die Effizienz.

  • Qualitätssicherung der Testdurchführung: Durch die standardisierte Vorgehensweise ist sichergestellt, dass die Aussagefähigkeit von Testergebnissen nicht von den ausführenden Personen abhängt.

  • Kosteneinsparung: Durch frühzeitige Fehlerbehebung kann Geld und Zeit gespart werden. Je später ein Fehler gefunden wird, desto kostenintensiver ist die Beseitigung

  • Qualitätssicherung: Durch die regelmäßige Durchführung der Testfälle kann die Qualität des Testobjekts zu jedem Zeitpunkt verifiziert werden.

  • Transparenz: Testfälle bieten Transparenz und Nachvollziehbarkeit, da sie genau beschreiben, wie das System getestet wird und welche Ergebnisse erwartet werden.

  • Dokumentation: Testfälle dienen auch als Dokumentation für die Funktionsweise des Systems und können zur Bewertung zukünftiger Änderungen herangezogen werden.

  • Teambetrieb: Testfälle erleichtern die Kommunikation zwischen Entwicklern und Testern und tragen so zur Effizienz und Qualität des gemeinsamen Arbeitsprozesses bei.

  • Regressionstests: Testfälle können verwendet werden, um bei zukünftigen Änderungen am System sicherzustellen, dass bestehende Funktionalitäten nicht beeinträchtigt werden.

  • Priorisierung: Durch die Nutzung der Priorisierung von Testfällen ist es dem Testmanagement oder der Projektleitung möglich gegebene Ressourcen entsprechend der identifizierten Risiken einzuteilen.

  • Schulung: Testfälle können als Schulungsmaterial für neue Mitarbeiter oder Entwickler verwendet werden, um ihnen ein Verständnis für das System und dessen Funktionalität zu vermitteln.

  • Feedback: Testfälle können dazu verwendet werden, um Feedback von Benutzern oder Kunden zu erhalten, um das System weiter zu verbessern.

  • Spezifizierte rückverfolgbare Testfälle ermöglichen erst die Erhebung von Metriken und Aussagen zu Testabdeckung und Testfortschritt.

Insgesamt tragen Testfälle dazu bei, dass ein Software-System effizient und effektiv getestet werden kann, Fehler frühzeitig erkannt werden und die Projektleitung einen objektiven Überblick über den Status und die Funktionsfähigkeit der getesteten Software erhält.

Kosten der Testfallerstellung

Zu den wichtigsten Kosten der Testfallerstellung zählt nach ISTQB die Zeit- und Ressourcenintensität. Anforderungen und ihre Akzeptanzkriterien sind das Fundament der Entwicklung, des Tests und damit auch der Testfallerstellung. Um sicherzustellen, dass die relevanten Anforderungen korrekt identifiziert und dokumentiert werden, ist es notwendig, Zeit und Sorgfalt in den Erfassungsprozess selbst und auch in die Qualitätssicherung (Testfall, Prozess, Aktualisierungen des Prozesses, etc.) zu investieren. Nur wenn die Prozesse im Anforderungsmanagement bereits hochwertig erfolgen, ist es möglich die richtigen Testfälle zu ermitteln und damit der Projektleitung erst eine wirksame Projektsteuerung zu ermöglichen. Dies betrifft nicht nur die initiale Erstellung, sondern auch die Pflege des bereits erstellten Bestands an Testfällen, da dieser im Laufe des Projektes automatisch zunimmt, wächst auch der Ressourcenbedarf zur Pflege an dieser Stelle. Dieser Bedarf kann durch den systematischen Einsatz geeigneter Automatisierung abgemildert, aber insgesamt nicht verhindert werden.

Ein weiteres Problem ist die grundsätzliche Unmöglichkeit alle möglichen Auswirkungen auf das System in die Testfälle einzubeziehen. Eine vollständige Abdeckung aller denkbaren Testszenarien bedürfte unendlich vieler Testfälle und ist daher nicht darstellbar. Eine sinnvolle Möglichkeit der Eingrenzung ist die gezielte Fokussierung der Testfälle auf die Risiken, die entsprechend ihrer Kategorisierung identifiziert wurden und ein systematischer Einsatz von Testentwurfsverfahren, um mit dem geringstmöglichen Aufwand die größtmögliche Testqualität zu erreichen.

Erschwert wird die Erstellung der Testfälle in der Praxis nicht selten auch in den Situationen, in denen keine oder nur veraltete Dokumentationen zu den Entwicklungsartefakten vorliegen. Eine ebenfalls existierende Herausforderung kann die bisweilen technische Natur von Spezifikationen sein, die die Lesbarkeit für nicht-technische Mitarbeiter möglicherweise erschwert, was zum Übersehen von wichtigen Aspekten und Fehlern führen kann. Diesem Problem kann mit klarer Formulierung innerhalb der Testfälle, Zusammenarbeit bei der Identifikation der wichtigsten Risiken, gemeinsamer Auswahl der Testentwurfsverfahren (Grenzwertanalyse, Äquivalenztest, etc.) und Reviews der ausgewählten Testfälle durch den Fachbereich begegnet werden.

Grundsätzlich gilt: Testfallerstellung kostet Zeit und Ressourcen. Diese Zeit nicht zu investieren kostet in aller Regel letzten Endes mehr Zeit und mehr Ressourcen.

Wie wird ein Testfall erstellt?

Die Erstellung eines Testfalls kann in folgende Schritte aufgeteilt werden:

  • Anforderungsanalyse: Überprüfung und Verständnis der Anforderungen und Funktionalitäten, die getestet werden sollen

  • Testfallidentifikation: Identifikation der Szenarien/logischen Testfälle, die getestet werden sollen, und die dazu erforderlichen Testfälle

  • Auswahl des Verfahrens: Auswahl des Verfahrens/der Verfahren, mit dem die logischen Testfälle am effizientesten und umfassendsten erstellt werden können (Äquivalenzklassen, Grenzwertanalyse, Zustandsbezogener Test, Entscheidungstabelle etc.)

  • Testfallbeschreibung: Beschreibung des Testfalls, einschließlich des Testzwecks, den Eingabedaten, der durchzuführenden Schritte, den erwarteten Ergebnissen und eventueller Vor- und Nachbedingungen

  • Testdatenerstellung: Identifikation und Erstellung der Testdaten, die für den Testfall erforderlich sind

  • Vorbereitung Testumgebung: Entsprechend der Anforderungen muss sichergestellt sein, dass eine entsprechend konfigurierte Testumgebung vorbereitet ist.

  • Qualitätssicherung: Überprüfung des erstellten Testfalls auf die im Projekt festgelegten Qualitätskriterien (formal, inhaltlich etc.) inkl. testweiser Ausführung

  • Überprüfung und Freigabe: Überprüfung des Testfalls und Freigabe für die weitere Verwendung

  • Rückverfolgbarkeit über die Vergabe eindeutig referenzierter IDs zwischen Anforderung und Testfall

Checkliste für die Testfallerstellung

Hier ist eine Checkliste mit den wichtigsten Punkten für die Testfallspezifikation:

  1. Testfall-ID: Eindeutige Identifikation des Testfalls und Rückverfolgbarkeit zur Anforderung

  2. Testzweck: Klare Beschreibung des Zwecks des Testfalls

  3. Testpriorität: Priorisierung des Testfalls, z. B. hoch, mittel, niedrig

  4. Vorbedingungen: Bedingungen, die erfüllt sein müssen, bevor der Testfall durchgeführt werden kann (inklusive Testumgebung, Hardware, Umsysteme, etc.)

  5. Testschritte: Schritt-für-Schritt-Anweisungen für die Durchführung des Testfalls

  6. Erwartete Ergebnisse: Klare Beschreibung der erwarteten Ergebnisse des Testfalls auf Testschrittebene

  7. Testdaten: Daten, die für den Testfall erforderlich sind

  8. Nachbedingungen: Zustand des Systems nach dem der Test durchgeführt wurde (inklusive Umsysteme, Daten, Datenbanken, usw.)

  9. Ursprungszustand: Überprüfen, ob die Testumgebung nach der Testdurchführung datentechnisch auf den Ursprungszustand zurückgesetzt werden muss, damit andere Testfälle nicht beeinträchtigt werden.

  10. Versionskontrolle: Die Verwaltung unterschiedlicher Testfallversionen durch klare Nummerierung und Dokumentation ist ein wichtiges Hilfsmittel z.B. bei sich ändernden Anforderungen.

Diese Checkliste sollte bei der Erstellung von Testfallspezifikationen als Referenz verwendet werden, um sicherzustellen, dass alle wichtigen Informationen berücksichtigt werden. Auf diese Weise wird ebenfalls sichergestellt, dass ein Testfall auch von Personen, die neu in das Projekt kommen, schnell umgesetzt werden können, ohne die Aussagekraft des Testergebnisses zu reduzieren.

Es ist wichtig, dass Testfälle sorgfältig geplant und spezifiziert werden. Dies stellt sicher, dass sie gründlich, präzise, effektiv und unabhängig von der ausführenden Person durchgeführt werden können und eine gegebenenfalls erfolgende Automatisierung möglichst effizient durchgeführt werden kann.

Beispiel für einen Testfall

Testfall-ID: TF001

Testzweck: Überprüfung der Anmeldefunktionalität

Vorbedingungen:

  • Benutzer hat ein gültiges Konto

  • Betriebssystem: Windows 10 64-Bit

  • Verknüpfung mit Programmaufruf auf Desktop erstellt

  • Hardware: Notebook oder Desktoprechner

Testschritte:

Schritt

Aktion

Testdaten

Erwartetes Ergebnis

1

Klick auf Button „Start“

  • Popup-Fenster „Anmelden“ wird angezeigt

  • Attribute „Login“ und „Passwort“ werden angezeigt

  • Textfelder für Eingabe sind frei und Eingabe kann erfolgen

  • Button „OK“ wird angezeigt und ist nicht aktiv/anklickbar

  • Button „Abbrechen“ wird angezeigt und ist anklickbar

2

Eingabe von Login-Daten

  • Login: Benutzer_1

  • Passwort: siehe Passworttabelle (Anlage in Sharepoint)

  • Login wird in Textfeld angezeigt

  • Passwort wird nicht dargestellt, sondern für jedes Zeichen wird „*“ angezeigt

  • Button „OK“ ist aktiv und anklickbar

3

Klick auf Button „OK“

-

  • Popup-Fenster „Anmelden“ wird geschlossen

  • Fenster mit Hauptprogramm wird geöffnet

  • GUI XYZ-001a wird angezeigt

Nachbedingungen: ____________________

Dies ist ein einfaches Beispiel für einen Testfall, der den Aufruf und die Anmeldung einer Anwendung überprüft. Es beschreibt die Schritte, die ein Benutzer ausführen muss, um sich anzumelden, sowie die erwarteten und tatsächlichen Ergebnisse. Es ist wichtig, dass die Schritte klar und präzise beschrieben werden, um sicherzustellen, dass der Testfall korrekt durchgeführt werden kann.

Methodiken für die Testfallspezifikation

Quellen

  • ISTQB Glossary Testfall, abgerufen am 19.08.2024

  • imbus AG, Video Konkreter Testfall, abgerufen am 08.02.2024

  • Basiswissen Softwaretest - Aus- und Weiterbildung zum Certified Tester - Foundation Level nach ISTQB® -Standard; 6. Auflage 2019; A.Spitler, T. Linz; S. 137, 147, 140,210

  • Praxiswissen Softwaretest - Test analyst und Technical Test Analyst- Aus und Weiterbildung zum Certified Tester Advanced Level nach ISTQB Standard; 3. Auflage 2015; Graham Bath, Judy McKoy; S.31

  • Praxiswissen Softwaretest - Testmanagement - Aus- und Weiterbildung zum Certifed Tester Advanced Level nach ISTQB Standard; 3. Auflage 2011; Andreas Spillner, Thomas Roßner, Mario Winter, Tilo Linz; S. 14

  • Strategie, Planung und Organisation von Testprozessen - Basis für erfolgreiche Projektabwicklung im Softwaretest' 1. Auflage 2020; Frank Witte; S.3

  • ISO 29119 - Die Sofwaretest-Normen verstehen und anwenden; 1. Auflage 2016; Matthias Daigl, RolfGlunz: S.100

  • TP! NEXT - Geschäftsbasierte Verbesserung des Testprozesses; 1. Auflage 2011; A. van Ewijk, Bert Linker, M.van Oosterwijk, Ben Visser, Gerrit de Vries, Loek Wilhelmus; S.1 12

  • TMap NEXT - Praktischer Leitfaden für ergebnisorientiertes Softwaretesten; 1. Auflage 2008; Koomen, van der Aalst, Brokman, Vroon; S. 505

  • ITpedia https://de.itpedia.nl/2018/06/01/testcases-voorbeelden-en-best-practices/ abgerufen am 01.02.2023

  • Blog https://ger.myservername.com/sample-test-case-template-with-test-case-examples, abgerufen am 01.02.2023