Seminare der PW-Akademie

Abnahmetest

Was ist ein Abnahmetest?

Bei einem Abnahmetest, auch Akzeptanztest (Acceptance Testing) oder User Acceptance Test (UAT) genannt, handelt es sich um eine Form der Qualitätsprüfung. Es bezeichnet den endgültigen Test eines Produkts oder Systems, bevor dieses vom Kunden angenommen wird. 

Ein Test zur Abnahme oder Akzeptanztest findet überall dort Anwendung, wo es einen Auftrag und einen Kunden für eine Umsetzungsaufgabe gab. Das kann sowohl im Alltag der Fall sein (Beispiel: „Kunde X beauftragt eine Reparatur seiner Hausklingelanlage“), wie auch in der Industrie, wo Großprojekte wie ein Zug oder ein großes IT Softwaresystem in Auftrag gegeben werden. 

User Acceptance Testing findet vor allem in der Softwaretechnik Anwendung, das Testobjekt ist hierbei das integrierte Gesamtsystem. Wichtig ist in Hinblick darauf auch ein System Integration Test bzw. Integrationstest. Das ISTQB (International Software Testing Qualifications Board) definiert den Abnahmetest als: „Eine Teststufe mit dem Schwerpunkt zu bestimmen, ob ein System abgenommen werden kann.” Der erfolgreiche Abschluss dieser Teststufe ist meist Voraussetzung für die rechtswirksame Übernahme der Lieferung.

Bei Softwareprojekten spielt der Abnahmetest, also Softwaretest, eine besonders essentielle Rolle, da die Konzepte und Architekturen, die der Softwarecodierung zugrunde liegen, meist für den Auftraggeber nicht „lesbar“ sind, wie das z.B. bei einer Konstruktionszeichnung für ein Mechanikteil der Fall ist. 

Im Kern ist der Unterschied zu vorherigen Teststufen, dass nun der Kunde oder Anwender als Tester fungiert und die Basis der Tests die vom Kunden definierten Anforderungen sind. Oft hat der Kunde seine Anforderungen unvollständig oder gar falsch formuliert, hat aber eine andere Erwartungshaltung an das Produkt. Das bringt eine neue Perspektive auf das Testobjekt und damit neue Fragen, Meinungen, Ideen und mögliche Verbesserungen. 

Durchführung eines Abnahmetests

Für den Test ist eine produktionsähnliche Umgebung ideal. Besonders für System- und Abnahmetests wird das Blackbox-Verfahren angewendet, d. h. der Softwaretest orientiert sich nicht am Code der Software, sondern nur am Verhalten der Software bei spezifizierten Vorgängen (Eingaben des Benutzers, Grenzwerte bei der Datenerfassung etc.).

Der Abnahmetest liegt häufig in der Verantwortung der Kunden, Fachanwender, Product Owner oder Betreiber eines Systems. Andere Stakeholder können ebenfalls in den Testprozess mit einbezogen werden.

Generell sind beim Acceptance Testing eine Vielzahl an Testarten, Methoden und Teststrategien für die Abnahme einer Software, also die UAT einer Software, geeignet. Dazu zählen: 

  • Funktionale Tests: Hier werden die Funktionen anhand der funktionalen Anforderungen bewertet, die das System erfüllen soll. Das Verhalten der Software wird geprüft.
  • Nicht-funktionale Tests: Bei diesem Abnahmetest wird die Software auf Einhaltung der nicht-funktionalen Anforderungen überprüft, dies sind Gebrauchstauglichkeit, Performanz oder IT-Sicherheit. In der ISO-Norm ISO/IEC 25010 findet sich eine Klassifizierung von Softwarequalitätsmerkmalen. Nicht-funktionale Tests sind die Acceptance Testings, die zeigen, “wie gut“ das System sich verhält.
  • White-Box-Tests: Mit diesen Abnahmetests werden Tests auf Basis der internen Struktur oder der Implementierung eines Systems abgeleitet. Die interne Struktur kann z.B. Datenflüsse innerhalb des Systems enthalten. Beim Abnahmetest leitet man entsprechende Datenstrukturen durch das Softwaresystem.
  • Änderungsbezogene Tests: Beim änderungsbezogenen Acceptance Testing steht der Test der Änderung an der Software im Vordergrund.

Ziele eines Abnahmetests

Der Akzeptanztest konzentriert sich wie der Systemtest typischerweise auf das Verhalten und die Fähigkeiten eines gesamten Systems oder Produkts. Testziele des Abnahmetests sind vielfältig. 

Es kann ein Ziel sein, zu bestätigen, dass das System so funktioniert wie erwartet und die Anforderungen aus der Testspezifikation erfüllt wurden. Ein weiteres Ziel dieses durchgeführten Tests kann darin bestehen, Stakeholdern Informationen über das Risiko einer Systemfreigabe zu einem festgelegten Zeitpunkt zu geben.

Ein früher durchgeführter Test zur Abnahme gewährleistet, dass das richtige entwickelt wird (=Validieren), dass das System vollständig ist und wie erwartet funktionieren wird. Was „richtig“ ist, definiert der Kunde. Je früher Missstände in der Interpretation der Kundenwünsche aufgedeckt werden oder falsche Annahmen als unrealistisch erkannt werden, desto eher kann man in der Entwicklung gegensteuern. Teil der Prüfung ist auch eine Verifikation, eine Prüfung, ob funktionale und nicht-funktionale Verhaltensweisen des Systems den Spezifikationen entsprechen. Zudem schafft das Acceptance Testing, Vertrauen in die Qualität des Systems im Ganzen aufzubauen. 

Die Identifikation von Fehlerzuständen während der Testanalyse ist ein wichtiger potenzieller Nutzen, insbesondere dann, wenn kein anderer Reviewprozess genutzt wird und/oder der Testprozess eng mit dem Reviewprozess verbunden ist. Derartige Testanalyseaktivitäten verifizieren nicht nur, ob die Anforderungen konsistent, korrekt ausgedrückt und vollständig sind, sondern bewerten auch, ob die Anforderungen in angemessener Weise die Bedürfnisse der Kunden, Benutzer und anderer Stakeholder erfassen. Verfahren wie die verhaltensgetriebene Entwicklung („behavior driven development“, BDD) und abnahmetestgetriebene Entwicklung („acceptance test driven development”, ATDD), die die Generierung von Testbedingungen und Testfällen aus User-Stories und Abnahmekriterien vor dem Coding beinhalten, verifizieren, validieren und erkennen beispielsweise Fehlerzustände in den User-Stories und den Abnahmekriterien (siehe ISTQB Lehrplan Foundation Level Syllabus Agile Tester).

Ausprägungen eines Abnahmetests

Häufige Ausprägungen von Abnahmetests sind: 

  • Benutzerabnahmetest 
  • Betrieblicher Abnahmetest 
  • Vertraglicher und regulatorischer Abnahmetest 
  • Alpha- und Beta-Test

Vor- und Nachteile (Probleme) eines Abnahmetests 

Der Vorteil eines Abnahmetests liegt in der Feedbackmöglichkeit des Anwenders zu dem entwickelnden Produkt oder der Software. Frühzeitige (Teil-)Abnahmen dienen einem aktiven Qualitäts- und Risikomanagement. Denn der Entwickler weiß, nur wenn das richtige Produkt entwickelt und geliefert wird, wird auch die Endabnahme und damit die Vergütung problemlos ablaufen.

Probleme kann ein Abnahmetest dann machen, wenn ein Austausch zwischen Auftragnehmer und Auftraggeber erst ganz zum Schluss stattfindet. Dann bringen nicht funktionale Anforderungen häufig Probleme, da sie bis dahin nicht beachtet wurden und alle Beteiligten stehen unter Stress und großem Druck, da das Projekt bald beendet werden soll. 

Was ist ein Abnahmetest?+

Bei einem Abnahmetest, auch Akzeptanztest (Acceptance Testing) oder User Acceptance Test (UAT) genannt, handelt es sich um eine Form der Qualitätsprüfung. Es bezeichnet den endgültigen Test eines Produkts oder Systems, bevor dieses vom Kunden angenommen wird.

Welche Abnahmetests gibt es?+

  • Benutzerabnahmetest
  • Betrieblicher Abnahmetest
  • Vertraglicher und regulatorischer Abnahmetest
  • Alpha- und Beta-Test

Welche Ziele können mit einem Abnahmetest erreicht werden?+

Es kann ein Ziel sein, zu bestätigen, dass das System so funktioniert wie erwartet und die Anforderungen aus der Spezifikation erfüllt wurden. Ein weiteres Ziel dieses Tests kann darin bestehen, Stakeholdern Informationen über das Risiko einer Systemfreigabe zu einem festgelegten Zeitpunkt zu geben.

In welchen Bereichen finden die Abnahmetests ihre Anwendung?+

Ein Test zur Abnahme findet überall dort Anwendung, wo es einen Auftrag und einen Kunden für eine Umsetzungsaufgabe gab. Das kann sowohl im Alltag der Fall sein (Beispiel: „Kunde X beauftragt eine Reparatur seiner Hausklingelanlage“), wie auch in der Industrie, wo Großprojekte wie ein Zug oder ein großes IT Softwaresystem in Auftrag gegeben werden.

Was sind die Vorteile von Abnahmetests?+

Der Vorteil eines Abnahmetests liegt in der Feedbackmöglichkeit des Anwenders zu dem entwickelnden Produkt oder der Software. Frühzeitige (Teil-)Abnahmen dienen einem aktiven Qualitäts- und Risikomanagement. Denn nur der Entwickler weiß, dass das Richtige Produkt entwickelt und geliefert wird, wird auch die Endabnahme und damit die Vergütung problemlos ablaufen.

Welche Rolle spielt der Abnahmetest innerhalb eines Testprozesses?+

Der Abnahmetest ist eine Teststufe (eine Instanz) innerhalb des Testprozesses. Die erste Stufe ist hierbei der Komponententest, darauf folgt der Integrationstest, gefolgt vom Systemtest und der anschließenden Abnahme.