Funktionskettentests sind entscheidend für die Verifizierung der end-to-end Funktionalität von Geschäftsprozessen, die
durch eine Softwareanwendung unterstützt werden.
Sie helfen dabei, die Integration und das Zusammenspiel zwischen verschiedenen Komponenten einer Anwendung zu prüfen und
stellen sicher, dass die komplette Funktionskette effizient und wie spezifiziert arbeitet.
Dieser Testansatz ist besonders wichtig in komplexen Systemen, wo einzelne Module oder Komponenten zwar für sich genommen korrekt funktionieren können, aber ihre Interaktionen mit anderen Teilen des Systems fehleranfällig sein könnten.
Der Funktionskettentest beginnt typischerweise nach Abschluss der einzelnen Modul- oder Komponententests und bevor umfassendere Systemtests oder Akzeptanztests durchgeführt werden. Dieser Testtyp umfasst in der Regel folgende Schritte:
Im Funktionskettentest wird damit die Integration innerhalb eines Anwendungssystems, als auch eines Anwendungssystems mit anderen Anwendungssystemen betrachtet. Dazu gehören auch die Untersuchung von Konkurrenzsituationen bei gleichzeitigem Zugriff und die systemübergreifende Verwaltung der Status.
Ziel des Funktionskettentestes ist es, die Produktionsreife eines Anwendungssystems nachzuweisen. Der Funktionskettentest kann gleichzeitig den User Acceptance Test abdecken.
Gegenstand des Funktionskettentests sind sowohl die Dialog- als auch die Batchfunktionen der zu integrierenden Anwendung. Bei den Dialogfunktionen wird nicht mehr das Zusammenwirken einzelner Funktionen untersucht, stattdessen werden alle Dialogfunktionen der zu integrierenden Anwendungen betrachtet.
Bei den Batchfunktionen werden alle technisch notwendigen Batchketten gestartet, es werden i.d.R. aber nur die Batchketten ausgewertet, die an den Schnittstellen zwischen den Anwendungen zum Einsatz kommen.
Der Funktionskettentest soll eine möglichst genaue Abbildung der Produktion darstellen. Daher ist es bei der Planung und Durchführung von elementarer Bedeutung, dass die beteiligten Mitarbeiter von Anwendungsentwicklung, Fachbereich, Systembetrieb (Datenbankadministration und Arbeitsvorbereitung) in einem zeitweiligen Testteam zusammenarbeiten müssen.
Im Funktionskettentest sind Test-Objekte fachlich zusammengehörige Funktionen
oder Anwendungen, die ein oder mehrere Datenobjekte gemeinsam nutzen.
Je nach Schwerpunkt des Funktionskettentests können nun die Testobjekte festgelegt werden. Wenn der Funktionskettentest eher auf das Zusammenspiel einzelner Funktionen innerhalb einer Anwendung ausgerichtet ist, so werden die Komponenten und Funktionen zu Testobjekten so zusammengefasst, dass alle relevanten Schnittstellen zwischen den Komponenten abgedeckt werden.
Wenn die Überprüfung der Umsetzung von fachlichen Arbeitsabläufen im Fokus steht, so bilden die definierten Geschäftsprozesse die Testobjekte. Bei den datengetriebenen Tests kann eine funktionale Gruppierung und / oder eine Unterteilung in Datenbereiche vorgenommen werden.
Das Risiko kann generell methodisch, aber auch über Erfahrungswerte ermittelt werden. Die über die Risikoanalyse gefundene Risiko-/Komplexitätsklasse liefert nur einen Anhaltpunkt auf die zu verwendende Testmethodik und kann durch den Verantwortlichen geändert werden.
Ziel der Risikoanalyse ist es kritische Systembereiche herauszufiltern und die Testtiefe dem Risikopotenzial der einzelnen Systembereiche anzupassen. Die Risikoanalyse wird für die ermittelten Systemkomponenten durchgeführt.
Das Risiko einer Komponente bzw. eines Ergebnistyps wird auch als Kritikalität bezeichnet. Die Kritikalität bestimmt die Testtiefe, d.h. sie bestimmt z.B. die angemessene Anzahl an fachlichen Varianten, in denen die Funktion im Funktionskettentest getestet werden soll.
Zur Ermittlung der Kritikalität könne die Kriterien herangezogen werden, die auch für die Bewertung des Teilsystems und die Bewertung der Testobjekte im Funktionstest benutzt werden. Wurde im Vorfeld bereits ein Funktionstest geplant, kann die Testobjektbewertung zugrunde gelegt werden (Abweichungen von Funktionen zu Testobjekten sind zu berücksichtigen).
Die Kritikalität von Testobjekten im Funktionskettentest lässt sich aus den Ergebnissen im Funktionstest sehr leicht ableiten. Da in den Testobjekten des Funktionskettentests die Testobjekte aus dem Funktionstest referenziert sind, müssen im Vorfeld folgende Festlegungen getroffen werden.
Wenn kein umfangreicher Funktionstest geplant wird, so müssen für den Funktionskettentest eigene Festlegungen bezüglich der Kritikalität getroffen werden. Dazu können die Kriterien aus dem Funktionstest herangezogen werden und um funktionskettenspezifische Kriterien ergänzt werden.
Aus den Ergebnissen der Risikoanalyse der Funktionen wird die Anzahl der zu bildenden fachlichen Varianten, in denen eine Funktion ausgeführt werden soll, bestimmt. Die folgende Matrix ist eine grundsätzliche Empfehlung.
Je nach Kritikalität des Teilprojektes und der Komponente wird eine definierte Anzahl an fachlichen Varianten pro Funktionalität ermittelt. Nach oben kann im Einzelfall abgewichen werden, d.h. besonders kritische Varianten können ergänzt werden.
Zur Testvorbereitung kann die Vorgänger-Nachfolger-Matrix genutzt werden. Um die
Erstellung der Testumgebung und die Testausführung zu unterstützen kann die Szenarioplanung herangezogen werden. Für die datengetriebenen Tests gibt es ein separates Kapitel in der
Methodenbeschreibung zur Testfallermittlung.
Ebenso wie im Funktionstest wird im Funktionskettentest entschieden, mit welchen Werten die Testfälle durchgeführt werden sollen. Es gelten die gleichen Skalierungsstufen, wobei darauf hingewiesen sei, dass sich die Belegung der Testdaten mit gezielten Werten (Grenzwerte) nur auf die Schnittstellen (sequenzielle Dateien) zwischen den Funktionen beziehen sollte. Eine Überprüfung der korrekten Verarbeitung mit Grenzwerten sollte im Funktionstest erfolgt sein.
Insbesondere bei datengetriebenen Tests ist man oft auf größere Datenmengen produktionsnaher Daten angewiesen, die frühzeitig bereitgestellt werden müssen. Ggf. ist dies auch in Kombination mit synthetischen Daten möglich.
Vorbereitend zur Testausführung müssen Testdaten in der Testumgebung bereitgestellt werden. Empfohlen wird dafür die Erstellung von Bestandstestdaten als anonymisierter Produktionsabzug. Hierbei ist die Kenntnis des Datenmodells erforderlich, da für den integrativen Test die Konsistenz der Testdaten über die gesamte Datenbasis hergestellt werden muss.
Bewegungsdaten (Onlineeingaben) werden gemäß der Szenariobeschreibung eingegeben und per Hardcopy dokumentiert, sodass diese im Fall eines Re-Tests wiederholt werden können.
Die Testausführung erfolgt meist manuell, da eine Automatisierung auf Grund der teilweise hohen Komplexität in Geschäftprozessen die Abbildung der Eingaben mittels Capture-/Replay-Tools häufig höhere Aufwände mit sich bringt.
Wenn der Test jedoch frühzeitig begonnen wurde und sauber strukturiert vorbereitet wurde, kann die Automatisierung schon innerhalb des Projektes eine Zeit- und Kostenersparnis bringen.
Voraussetzungen für einen Funktionskettentest sind: |
» Systemkomponenten / Funktionen sind ermittelbar |
» Alle funktionalen Änderungen sind bereits im Vorfeld erfolgreich funktionsgetestet |
Voraussetzungen für einen Funktionskettentest sind: |
» Es werden fachliche Varianten einer jeden Systemkomponenten / Funktion gebildet |
» Alle Funktionen werden in Testfallketten referenziert |
» Bei datengetriebenen Tests: Jeder Parameter wird in mindestens einem Testfall überprüft |
Ansonsten können fast alle Testende Kriterien des Funktionstests auch für den Funktionskettentest verwendet werden.