2Grundlagen des Abnahmetests
Dieses einleitende Kapitel erklärt die grundlegende Bedeutung des Abnahmetests im Softwarelebenszyklus. Es werden die Beziehungen des Abnahmetests zur Businessanalyse veranschaulicht und wichtige Begriffe und Konzepte der Businessanalyse, die einen Einfluss auf den Abnahmetest haben, dargestellt.
2.1Der Abnahmetest im Softwarelebenszyklus
2.1.1Testen im Softwarelebenszyklus
Softwaresysteme werden in der Regel schrittweise und mit zunehmender Detaillierung konzipiert, entworfen und implementiert. Ausgehend von einer Problemstellung und Beschreibung der Kunden- bzw. Nutzeranforderungen, wird eine fachliche Lösung entworfen, die technische Umsetzung geklärt und schließlich die einzelnen Komponenten entwickelt, die dann zu einem Produkt integriert werden.
Testen im V-Modell
Beim Testen muss diese Integration von der einzelnen Komponente bis zum fertigen Produkt berücksichtigt und das System auf den verschiedenen Ebenen betrachtet und geprüft werden [Spillner& Linz 19]. Dieses grundsätzliche Verständnis von Entwicklungs- und Testaktivitäten wird durch das allgemeine V-Modell beschrieben [Boehm 79]. Es beschreibt verschiedene Teststufen sowie deren Beziehungen zu den korrespondierenden Entwicklungsaktivitäten (sieheAbb. 2–1). Wichtig am V-Modell sind dabei nicht die konkrete Anzahl, die Bezeichnungen oder die Reihenfolge der Entwicklungs- und Testaktivitäten, diese können in der Praxis durchaus unterschiedlich sein. Vielmehr verdeutlicht das V-Modell die grundlegende logische Beziehung von Entwicklungs- und Testaktivitäten und deren gleichberechtigte Abbildung.
Abb. 2–1
Allgemeines V-Modell
Jede Teststufe ist eine Gruppe von Testaktivitäten, die gemeinsam organisiert und verwaltet werden, und stellt eine Instanz des Testprozesses dar (bestehend aus den Hauptaktivitäten Testplanung, Testüberwachung und -steuerung, Testanalyse, Testentwurf, Testrealisierung, Testdurchführung, Testabschluss).
Teststufen
Die Teststufen stehen mit anderen Aktivitäten des Softwareentwicklungslebenszyklus in Verbindung. Jede Teststufe ist gekennzeichnet durch ihre spezifischen Ziele, Testbasis, Testobjekte, typische Fehlerzustände und -wirkungen sowie Ansätze und Verantwortlichkeiten. Grundsätzlich unterscheidet man die folgenden vier Teststufen:
- Komponententest
Konzentriert sich auf einzelne Komponenten, die einzeln (d. h. getrennt bzw. isoliert voneinander) testbar sind.
- Integrationstest
Konzentriert sich auf die Integration von Komponenten oder Systemen sowie die Interaktion zwischen diesen Komponenten oder Systemen1.
- Systemtest
Konzentriert sich auf das Verhalten und die Fähigkeiten des Systems oder Produkts (z. B. Ende-zu-Ende-Aufgaben). Der Systemtest ist die letzte Teststufe in der Verantwortung des Herstellers und wird in der Regel von unabhängigen Testern durchgeführt.
- Abnahmetest
Konzentriert sich wie der Systemtest typischerweise auf das Verhalten und die Fähigkeiten eines gesamten Systems oder Produkts. Diese Teststufe liegt in der Regel in der Verantwortung des Kunden bzw. Anwenders.
Auch wenn das V-Modell ein wenig in die Jahre gekommen scheint und obwohl es eigentlich ein rein sequenzielles Softwareentwicklungsmodell ist, sind die grundlegenden Prinzipien für das Testen auch heute noch relevant und lassen sich auf Projekte übertragen, in denen nach einem iterativ-inkrementellen oder agilen Softwareentwicklungsmodell entwickelt wird – gewissermaßen steckt in jeder Iteration der Durchlauf eines kleinen V-Modells.
2.1.2Zweck und Ziele des Abnahmetests
Der Schwerpunkt des Abnahmetests ist es, zu bestimmen, ob ein System abgenommen werden kann. Im Gegensatz zu den Teststufen Komponenten-, Integrations- und Systemtest, bei denen der Softwarehersteller die Verantwortung trägt, liegt die Verantwortung beim Abnahmetest beim Kunden bzw. Anwender2. Sowohl Hersteller als auch Anwender können sich dabei innerhalb derselben Organisation befinden (z. B. Fachbereich und Entwicklungsabteilung) oder auch in einer geschäftlichen Beziehung als verschiedene Organisationen zueinanderstehen (z. B. Auftraggeber und A