Ein Testfall ist eine Zusammenfassung aller Eingaben (Fachwissen, Fachkonzept), die zur gleichen Wirkung führen.
Der Prozess der Testfallfindung zielt darauf ab, mit minimalem Aufwand eine maximale Testabdeckung zu erreichen und potenzielle Fehlentwicklungen aufzudecken. Ein strukturiertes Vorgehen ist hierfür essenziell, um Ressourcen effizient einzusetzen und die Testabdeckung zuverlässig bewerten zu können.
Ein systematischer Ansatz in der Testfallfindung trägt maßgeblich zur Qualitätssicherung bei, indem er sicherstellt, dass Tests zielgerichtet, umfassend und effizient durchgeführt werden können.
Ein abstrakter Testfall dient als Vorlage oder Schema, das die wesentlichen Komponenten eines Tests definiert, ohne spezifische Eingabewerte oder Details zu verwenden. Diese Art von Testfall ist besonders nützlich, um standardisierte Testprozesse zu entwickeln, die auf eine Vielzahl ähnlicher Testszenarien anwendbar sind. Hierbei wird der Fokus auf die generelle Teststruktur und die zu prüfenden Bedingungen gelegt, nicht auf individuelle Testdaten.
Beispiel: Testfall für einen Zahlungseingang
Ein abstrakter Testfall wird ohne konkrete Ein- und Ausgabewerte für Eingabedaten und vorausgesagte Ergebnisse beschrieben. Es werden logische Operatoren verwendet, weil die konkreten beispielsweise noch nicht definiert oder verfügbar sind. Der abstrakte Testfall wird daher auch logischer Testfall bezeichnet. |
Ein konkreter Testfall verwendet spezifische Daten, um die Funktionalität und Korrektheit von Systemprozessen unter realen Bedingungen zu überprüfen. Er wird aus einem abstrakten Testfall abgeleitet, indem konkrete Daten und Szenarien eingeführt werden, die die tatsächlichen Betriebsbedingungen simulieren. Dieser Ansatz ermöglicht es, die Präzision und das Verhalten des Systems unter festgelegten Bedingungen zu evaluieren.
Beispiel: Testfall für einen Zahlungseingang
Unter einer intuitiven Testfallermittlung ist ein Testverfahren zu verstehen, bei dem die Erfahrung von bestimmten Experten genutzt wird, um mögliche vorkommende Fehlerzustände in einem Softwaresystem oder einer Komponente vorherzusagen. Auf dieser Basis können Testfälle so abgeleitet werden, dass diese diesbezügliche Fehlerzustände aufdecken. |
Unter einer Entscheidungstabelle versteht man eine Menge von Regeln, die jeweils aus eine Kombination von Bedingungen und den dazugehörigen Aktionen bestehen und für die Erstellung von Testfällen dienen. |
Für die Beschreibung dieser Testfälle sollten folgende Regel beachtet werden |
» Jede Bedingung muss einzeln (d.h. nicht mit UND/ ODER Anweisungen verbunden) sein |
» Nur positive Formulierung sollen doppelte Verneinungen vermeiden |
» Pro Testobjekt eine separate Entscheidungstabelle, damit Anzahl an Testfällen überschaubar |
Testabdeckungsgrad |
Bedeutung |
Maximal |
Berücksichtigung aller theoretisch möglichen Kombinationen für zur Überdeckung der Bedingungskombinationen |
Minimal |
Sämtliche Wirkungen müssen mindestens einmal berücksichtigt werden (Wirkungsabdeckung 100%). |
Optimal |
Kombinationen mit gleicher Wirkung werden zusammengefasst (Bedingungsabdeckung 100%). |
Unter Äquivalenzklassen ist ein Teil des Wertebereichs von Ein- oder Ausgaben zu verstehen, in dem basierend auf der zugrunde liegenden Spezifikation ein gleichartiges Verhalten der Komponente oder des Softwaresystems angenommen wird. |
Die Clusterung (Gruppierung) von geeigneten Äquivalenzklassen - welche nicht zwingend überschneidungsfrei sein müssen - kann einen Testaufwand erheblich reduzieren.
Im Rahmen einer Äquivalenzklassenbildung werden Testfälle grundsätzlich so ausgewählt, dass jede Äquivalenzklasse mindestens einmal abgedeckt wird. |
Vorgehen für die Ermittlung von Testfällen mit Hilfe der Äquivalenzklassenmethode |
Einteilung des Eingabewertebereiches und mögliche Anfangszustände des Testobjektes in Äquivalenzklassen unter Berücksichtigung der Zielvorgabe für die zu testenden Gesichtspunkte. |
Prüfung der Äquivalenzklassen auf Vollständigkeit und ggf. auf Überschneidungsfreiheit. Ungültige Äquivalenzklassen werden bei Bedarf ergänzt oder aussortiert. |
Auswahl und Spezifizierung der konkreten Eingabedaten, Anfangszustände, Ausgabewerte und Endzustände. |
Prüfung der konkreten Testdaten auf deren Wirksamkeit zwecks Aufdeckung von möglichen Fehlern |
Die Grenzwertanalyse ist Black Box Testverfahren, bei dem die Testfälle unter der Verwendung von Grenzwerten mit der Zielverfolgung entstehen, insbesondere die Werte mit einer besonderer Fehleranfälligkeit (höherer Fehlerwahrscheinlichkeit) zu prüfen. |
Unter Grenzwert ist ein Ein- oder Ausgabewert zu verstehen, der am Rand einer Äquivalenzklasse (kleinste und größte Wert eines Bereichs) liegt. |
Für die Testbasis können verschiedene Informationen berücksichtig werden |
» Formale Dokumentationen (Funktionelles Design, Datenmodelle, Anforderungen) |
» Informelle Dokumentationen (Handbücher, Voruntersuchungen, Memos) |
» Undokumentierte Erfahrungswerte |
Identifizierung der Testsituationen |
Identifizierung aller Attribute, die die Funktionalität beeinflussen, Bestimmung der dazugehörigen Äquivalenzklassen und Ermittlung der Abhängigkeiten der Attribute zueinander.
Anschließend werden die Attribute als ein Klassifizierungsbaum dargestellt und die Äquivalenzklassen wie die Blätter eines Baumes angehängt.
Kritische Kombinationen aus Attributen können zusätzlich als Attributpaare definiert werden, um ein Testen in allen möglichen Kombinationen sicherstellen zu können. |
Erstellung logischer Testfälle |
In Form einer Tabelle werden unter dem Klassifikationsbaum die logischen Testfälle im rahmen eines Gitterrasters (senkrechte Linien = Äquivalenzklassen, wagerechte Linien = logischer Testfall) entwickelt.
Welche Äquivalenzklassen pro Testfall genutzt werden sollen, kann durch eine Markierung auf dem Schnittpunkt der Verbindungslinien markiert werden.
Dei der Auswahl der Kombinationen ist darauf zu achten, dass Abhängigkeiten der Attribute untereinander beachtet werden. |
Erstellung konkreter Testfälle |
Die einzelnen Attribute werden mit konkreten Daten – die z.B. anhand einer Grenzwertanalyse ermittelt werden können - belegt und führen somit zu konkreten Testfällen. |
Festlegung des Startpunktes |
Um die korrekten Testfälle nutzen zu können, muss die Belegung der für diese Testfälle relevanten Stammdaten festgelegt werden. |
Bei einer Abhängigkeit des Attributes C vom Attribut B ergeben sich bei der Bestimmung von logischen Testfällen (siehe nachfolgendes Schaubild) 6 Testfälle.
Anmerkung:
Ohne Verwendung von Attributpaaren wären es hingegen nur 3 Testfälle.
Die systematische Testfallentwicklung verfolgt das Ziel eine optimale Abdeckung der Fachlichkeiten zu erreichen.
Bestimmen der Elementklassen und der fachlichen Wirkungen |
» Definitionsbereich je Eingabefeld ist durch eine/mehrere Elementklassen vollständig abgedeckt |
» Inhalte zweier Elementklassen dürfen sich nicht überlappen |
» Zulässige Elementklassen ermöglichen Verarbeitung/ unzulässige verhindern Verarbeitung |
» Zwei Elementklassen dürfen hinsichtlich der Wirkungen nicht identisch sein |
Die systematische Testfallermittlung ist beendet, wenn : |
» Alle Elementklassen mindestens in einem Testfall enthalten sind |
» Bei abhängigen Elementklassen alle relevanten Kombinationen in mindestens einem Testfall |
» Alle zulässigen Elementklassen bzw. alle Kombinationen, die zu einer Verarbeitung führen, |
» Alle Wirkungen sind mindestens einmal erreicht |
Identifizierung der Testsituationen |
Um auf der Grundlage eines Flussdiagramms einen Geschäftsprozesstest durchführen zu können, ist es erforderlich, dass für die einzelnen Aktionen der Start und das Ende festgelegt werden und aus den dazwischen befindlichen Teilpfaden entsprechende logische Testfälle abgeleitet werden. |
Erstellung logischer Testfälle |
Aus den einzelnen Teilpfaden werden - bis alle Teilpfade (ggf. mehrfach) genutzt sind - Pfadkombinationen zusammengesetzt, wobei das Ende eines Teilpfades dem folgenden Anfang des Teilpfades entsprechen muss. |
Erstellung konkreter Testfälle |
Die logischen Testfälle werden mit konkreten Werten für Eingaben und vorausgesagte Ergebnisse versehen, welche aus einem Softwaresystem stammen oder entsprechend angelegt werden müssen. |
Das Vorgänger Nachfolger Matrix Verfahren dient zu einer vollständigen Abbildung aller relevanten Testfallkettenbeziehungen.
|
Nachfolgeraktivitäten |
||||
Vorgängeraktivitäten |
Testobjekt 1 |
Testobjekt 2 |
Testobjekt 3 |
Testobjekt 4 |
|
Testobjekt 1 |
|
|
|
|
|
Testobjekt 2 |
|
|
|
|
|
Testobjekt 3 |
|
|
|
|
|
Testobjekt 4 |
|
|
|
|
Um diese Funktionsketten fachlich vollständig testen zu können, müssen auch die hierfür passenden Verarbeitungstage (Zeitachse Start vs. Ende sowie Turnus: täglich, monatlich, jährlich, ultimo, Jahresende etc.) festgelegt werden.
Anwendungsgebiete für datengetriebene Tests sind parameter- oder tabellengesteuerte Systeme. Da dieses jedoch meist nur für einen Teil eines Systems möglich ist, empfiehlt es sich die Qualität der festgelegten Algorithmen durch einen Funktionstest abzusichern.
Grundsätzliche Aufgaben im datengetriebenen Test |
» Analyse Datenbasis auf bestehende Voraussetzungen, Annahmen und Konsistenz |
» Analyse Ist Ergebnisse und Minimierung von Fehlerlisten |
» Ermitteln Grad der Auswirkungen bei einer Variation von Einflussparametern und Regeln |
Testdaten sind Daten, die vor der Ausführung eines Tests existieren und die Ausführung des Softwaresystems oder einer Komponente im Test beeinflussen bzw. dadurch beeinflusst werden. |
Möglichkeiten zwecks Festlegung von Regeln und Einflussparameter auf Daten |
Beschreibung von passgenau qualitativ auf die zu prüfenden Aspekte zugeschnittenen synthetische Daten (Einzelfälle), anhand derer die korrekte Verarbeitung der Funktionalität überprüft werden kann.
Einzelne Testdatensätze lassen sich synthetisch anpassen bzw. erstellen. |
Beschreibung synthetischer Daten einer repräsentativen Menge und im definierten quantitativen Verhältnis zur Situation in der Produktion.
Es werden geeignete Werkzeuge benötigt, die die einzelne Testdatensätze unter Einhaltung aller benötigten Konsistenzbedingungen vervielfältigten. |
Beschreibung einer Auswahl an Produktionsdaten, die für die Überprüfung von spezifischen Auswirkungen geeignet erscheint.
Für die Auswahl von Testdaten aus Produktion sind Datenschutzbestimmungen zu berücksichtigen. Einerseits dürfen personenbezogene Testdaten nicht auf reale Produktionsdaten zurückführbar sein, andererseits muss die Auswirkung einer Anonymisierung auf die Testergebnisse beurteilt werden können. |