Abnahmetest

R 2.0.0

Was ist ein Abnahmetest?

Was ist ein Abnahmetest?

Eine Teststufe mit dem Schwerpunkt zu bestimmen, ob ein System abgenommen werden kann.

Das Ziel des Abnahmetests ist es. zu prüfen, ob aus Kundensicht die funktionalen und nicht-funktionalen Anforderungen an ein Testobjekt erfüllt und ausreichend umgesetzt sind.

Der Abnahme- oder auch Akzeptanztest (engl. UAT - User Acceptance Tests) ist die oberste der Teststufen. Die Theorie sagt, dass hier der Kunde testet und mit einem Lächeln im Gesicht feststellt, wie wunderbar alle seine Anforderungen umgesetzt sind. Damit ist der zwischen Kunden und Auftragnehmer geschlossene Vertrag erfüllt.

In der Praxis sieht das leider meist etwas anders aus. Abstürze, unklare Bedienung, fehlende oder falsche Funktionen können manchmal auch in höheren Teststufen noch beobachtet werden. Statt eines zufriedenen Lächelns gibt es Wutausbrüche, Frustration und Streit was wie gemeint war.

Die einzige Möglichkeit, das zu verhindern besteht darin, alle Teststufen, Komponententest, Integrationstest und den Systemtest vollständig und systematisch zu planen und umzusetzen, sowie den Kunden so früh wie möglich einzubinden. Nicht ohne Grund steht das im Mittelpunkt agiler Vorgehen und dem agilen Testen. Dazu gehören frühe, wiederkehrende Feedbackschleifen und Reviews durch den Kunden und Anwender. Alles das trägt dazu bei, dass am Ende nicht das böse Erwachen kommt.

Anwendungsbeispiel

Anwendungsbeispiel
ALT MISSING

Die letzten Wochen steckten ihnen allen in den Knochen. Die Liste von noch dringend zu implementierenden Anforderungen wurde nicht kleiner im Gegenteil Hilde, die erfahrene Projektleiterin, musste in ihren Planungsmeetings immer öfter darauf hinweisen, dass angesichts des feststehenden Inbetriebnahmetermins unmöglich alle Wünsche noch in diesem Release umgesetzt werden könnten. Theo, der junge Testmanager, kämpfte um jeden Tag seiner Testplanung. Eines hatte er schon gelernt: Wenn es darum ging, noch möglichst viele Anforderungen in das Release hinein zu diskutieren, ging das sehr häufig zu Lasten der ohnehin schon zu knapp bemessenen Testzeiträume, „Aber wenn es dann im Wirkbetrieb Probleme gibt, zeigen alle auf die QS", beschwerte er sich bei Hilde.

ALT MISSING

„Ja, das ist wohl so", dachte sie im Stillen, und ein wenig rührte sich ihr schlechtes Gewissen, denn es war einfacher den Wünschen der Produkt Owner nachzugeben und zusätzliche Funktionen präsentieren zu können, als denen des Testmanagements, bei dessen Aktivitäten sie sowieso nicht so richtig durchblickte und manches nach den Rezepten mittelalterlicher Alchemisten klang, die ihren Auftraggebern weismachen wollten, sie könnten aus allerlei bunten Zutaten Gold herstellen.

ALT MISSING

Trotzdem stärkte sie Theo den Rücken: „Die Abnahmetestphase bleibt bestehen. Schau mal, ich habe mir Deine Testberichte durchgelesen und unser Status, was die Qualität betrifft, ist nicht schlecht. Wir haben ausreichende Testaktivitäten auf den Teststufen Komponententest, Integrationstest und Systemtest implementiert. Viele statische Artefakte sind durch Reviews validiert. Dabei haben wir uns die Fachspezifikationen und Anforderungslisten besonders gründlich angesehen, wir haben stichprobenartig Quellcode-Reviews durchgeführt, Du und Dein Team haben die Testfall Spezifikationen zusammen mit den Kollegen aus den Fachbereichen validiert und durch diese viel Aktivitäten und die gute Zusammenarbeit mitgeholfen unser Projektrisiko signifikant zu senken." Theo freut sich über die Anerkennung und gibt ihr Recht, früher waren sie oft mit unzureichend getesteter Software in den Wirkbetrieb gegangen. Das führte regelmäßig zu last minute fixes von Fehlern, die erst in der Abnahmetestphase entdeckt wurden. Oder zu etlichen „Notfallauslieferungen" im Produktionsbetrieb, die enorm kostenintensiv und risikobehaftet waren.

ALT MISSING

Theo hat sich angeboten, einen Workshop für die Product Owner zu organisieren, in dem er auf methodische und inhaltliche Probleme der Abnahmetests hinweist. Im Vorfeld hat er die vorhandenen Tests genau durchgesehen und einige Verbesserungsvorschläge erarbeitet. Zwar ist er kein Fachexperte, aber seine intime Kenntnis der vorangegangenen Teststufen hilft ihm dabei, die eine oder andere Lücke in den Abnahmetests aufzudecken und entsprechend darauf hinzuweisen. Er bittet die Teilnehmer beispielsweise sich vor dem Expertentest eine Test-Charta anzufertigen. Diese dient dann gleichzeitig der Dokumentation der Testaktivitäten im Abnahmetest.

ALT MISSING

Auch hat er beobachtet, dass die Kollegen im Abnahmetest dahin tendieren, lediglich die ihnen bekannten "gut verlaufenden' Prozesse durchzuspielen. Nicht plausible oder atypische Eingaben können aber auch im Abnahmetest noch maskierte Fehler aufdecken. Zusätzlich erklärt er in seinem Workshop ganz genau, welche Testaktivitäten bereits von seinem Kollegen durchgeführt worden sind, und schafft so Vertrauen in die geleistete Arbeit des Projektteams.

Beschreibung

Der Abnahmetest (auch: Akzeptanztest) ist die letzte (in der Testpyramide, die oberste) Teststufe, deren Fokus die Entscheidung des Kunden (Stakeholder, Product Owner) ist, ob das System abgenommen wird.

Es gibt unterschiedliche Formen des Abnahmetests.

MISSING ALT
Abb. 1: Testpyramide Abnahmetest

Nach erfolgter Abnahme ist das Projekt in der Regel beendet und geht in die Wartungsphase über. Zahlungsflüsse, Schulungen und die Produktivsetzung hängen oft am Ergebnis des Abnahmetests.

Es ist außerordentlich wichtig, dass der Kunde die Akzeptanztestfälle selbst entwirft oder einem sorgfältigen Review unterzieht. Denn der Softwarehersteller kann die vertraglich vereinbarten Akzeptanzkriterien missverstanden haben.

Im Gegensatz zum Systemtest, der in der Systemtestumgebung des Herstellers stattfindet, werden die Abnahmetests in der Abnahmeumgebung des Kunden durchgeführt.

Die Abnahmeumgebung ist produktionsnah einzurichten und ähnelt in Bezug auf Installation, Konfiguration, Schnittstellen usw. der späteren Produktivumgebung.

Video: Abnahmetest (Länge: 22:29)

Ablauf eines Abnahmetests

  1. Kundenanforderungen analysieren

  2. Testszenarien erstellen, in denen die Endanwender mit möglichst vielen Funktionsfällen konfrontiert werden

  3. Testplan festlegen

  4. Testfälle erstellen

  5. Testfälle durchführen

  6. Testergebnisse festhalten

  7. Angeben, ob die Kundenanforderungen erfüllt sind

Fachliche Anforderungen liegen häufig in Textform vor. Wie kann man aus diesen Anforderungen nun Testfälle erstellen? Ähnlich wie beim Systemtest kombiniert man am besten strukturierte Testfallmethoden mit erfahrungsbasierter Testfallerstellung.

Ein Problem dabei ist, dass der Kunde oder Anwender die strukturierten Testmethoden wie Äquivalenzklassenbildung, Grenzwertanalyse oder Entscheidungstabellen nicht kennt. Auch fehlt hier häufig Wissen, wie Testfälle dokumentiert, strukturiert und abgearbeitet werden. Es hat sich bewährt, zu Beginn der Testaktivitäten ein kleines Training aufzusetzen, um dieses grundlegende Wissen zu vermitteln. Ein paar Tipps und Ideen genügen schon, die Qualität der Abnahmetests massiv zu erhöhen.

Typische Probleme

In klassischen Projekten mit einem Abnahmetest zum Schluss treten immer wieder Herausforderungen auf:

  • Nicht funktionale Anforderungen wurden bis zum Abnahmetest nicht betrachtet und bringen jetzt Probleme, z.B. Usability-Tests, Performance- oder Zuverlässigkeits-Tests.

  • Der Abnahmetest basiert komplett auf den Anforderungen und Vorstellungen des Kunden oder Anwenders. Wenn in der Anforderungsanalyse oder im Systemtest unvollständige oder ungenaue Anforderungen nicht hinreichend geklärt wurden, fällt das in dieser Teststufe auf.

  • Der Zeitdruck ist in der Abnahmephase häufig sehr groß, da das Projekt bald beendet sein soll. Das erhöht den Stress bei allen Beteiligten und oft liegen die Nerven blank.

  • Negative Konsequenz dieser Drucksituation oder unzureichender Freigabeverfahren sind der verfrühte Einsatz der Software ohne fachliche Abnahme bzw. die Durchführung der Abnahmetests erst nach der Inbetriebnahme.

  • Fachlichen Abnahmetestern, Endnutzern oder Anwendern fehlen manchmal die methodischen Grundlagen des Software-Tests. Wie werden Testfälle erstellt? Wie dokumentiert? Und wie durchgeführt? Das führt in der Praxis vor den Testmaßnahmen oft zu Problemen und Verzögerungen.

In agilen Projekten ist man Änderungen gegenüber offen und der laufende Austausch sowie die kontinuierliche Produktsichtbarkeit entschärfen einige der o.g. Punkte. Agile Teams veröffentlichen die Zwischenergebnisse ihrer Arbeit regelmäßig und überarbeiten diese auf Basis der Rückmeldungen.

Reifegradbestimmung & Entscheidungshilfen

Quellen