# Akzeptanztest (Softwaretechnik)

Ein Akzeptanztest oder Abnahmetest, engl. User Acceptance Tests (UAT) ist in der Softwaretechnik die Überprüfung, ob eine Software aus Sicht des Benutzers wie beabsichtigt funktioniert und dieser die Software akzeptiert. Software-Anbieter testen dies oft mit Beta-Tests. Er ist nicht zu verwechseln mit einem Systemtest, der gewährleistet, dass die Software nicht abstürzt und die dokumentierten Anforderungen erfüllt sind.

## Allgemein

Akzeptanztests sollten von einem Fachexperten, vorzugsweise dem Eigentümer oder Kunden der Software durchgeführt werden und nach der Zusammenfassung der Ergebnisse in der Entwicklung fortschreiten oder die Software überarbeiten. In der Software-Entwicklung ist der Akzeptanztest eine der letzten Phasen eines Projektes, bevor der Kunde oder Nutzer die Software benutzt. Deshalb werden die Tests unter realitätsgetreuen Bedingungen durchgeführt.
Der Akzeptanztest fungiert als abschließende Überprüfung der erforderlichen Geschäftsfunktionen und das ordnungsgemäße Funktionieren des Systems unter realen Einsatzbedingungen im Namen des zahlenden Kunden oder eines bestimmten Großkunden. Wenn die Software, wie angefordert und ohne Probleme bei normalem Gebrauch funktioniert, kann man das gleiche Maß an Stabilität in der Produktion erwarten.
Akzeptanztests werden in der Regel von Kunden oder Endbenutzern durchgeführt. Sie fokussieren sich nicht auf die Identifizierung einfacher Probleme wie Rechtschreibfehler, kosmetische Probleme und Softwareabstürze. Tester und Entwickler erkennen und beheben diese Probleme in der Regel in früheren Unit-Tests, Integrationstests und Systemtestphasen.
Die Ergebnisse dieser Tests geben Vertrauen bei den Klienten, wie die Software nach der Produktion funktionieren wird. Ein bestandener Akzeptanztest kann auch eine gesetzliche oder vertragliche Voraussetzung für die Annahme der Software sein.

## Akzeptanztests im Extreme Programming

Akzeptanztest ist ein Begriff in der agilen Softwareentwicklungsmethoden, welcher vor allem beim Extreme Programming verwendet wird und sich auf die Funktionsprüfung einer Anwendererzählung (engl. “User-Story”) des Software-Entwicklungsteam in der Umsetzungsphase bezieht.
Der Kunde spezifiziert Szenarien, welche zu testen sind, wenn eine User Story ordnungsgemäß durchgeführt wurde. Eine User Story kann eine oder mehrere Akzeptanztests benötigen, um die Funktionalität der Software zu gewährleisten. Abnahmeprüfungen sind Black-Box-Systemtests.
Die Kunden sind für die Überprüfung der Richtigkeit der Akzeptanztests und die Überprüfung der Testergebnisse zuständig. Außerdem legen sie fest, falls Tests fehlgeschlagen sind, welche davon von höchster Priorität sind. Akzeptanztests werden auch als Regressionstests vor einer Produktionsfreigabe verwendet. Eine User Story gilt nicht als abgeschlossen, wenn sie den Akzeptanztest nicht besteht. Das bedeutet, dass Akzeptanztests für jeden Durchlauf erstellt werden müssen, da ansonsten das Entwicklungsteam keinen Fortschritt zu verzeichnen hat.

## Ablauf eines Akzeptanztests

* Kundenanforderungen analysieren
* Testszenarien erstellen
* Testplan festlegen
* Testfälle erstellen
* Akzeptanztest durchführen
* Testergebnisse festhalten
* Angeben, ob die Kundenanforderungen erfüllt sind