Was sind Akzeptanztests und Akzeptanzkriterien?
Akzeptanztests sind ein grundlegender Bestandteil von (agilen) Anforderungen. Durch ihre Einhaltung wird sichergestellt, dass
- die gewünschten Anwenderbedürfnisse befriedigt werden,
- die umgesetzte Funktionalität durch geprüfte Schnittstellen integriert werden kann und
- die Anforderung als “fertig” (done) betrachtet werden kann.
Die Basis der (idealerweise automatisierten) Akzeptanztests sind definierte Akzeptanz-Kriterien, welche jeweils zu einzelnen Anforderungen und User Stories gehören. Akzeptanzkriterien sind nicht wie klassische Requirements hart beschrieben, sondern formulieren umgangssprachlich die Intention des Anwendernutzens.
In der Hardware-Entwicklung kann es durchaus Fälle geben, in denen technische Schnittstellen zu Geräten und anderer Software z.B. mit harten Performance-Anforderungen spezifiziert werden müssen. Es spricht nichts dagegen, solche Abhängigkeiten auch mit Hilfe von Akzeptanzkriterien zu beschreiben.
Akzeptanzkriterien für schnelles Feedback
Akzeptanzkriterien definieren den Rahmen einer User Story und werden nach Fertigstellung einer Story dazu benötigt, den tatsächlichen Fertigstellungsgrad festzustellen hinsichtlich der ursprünglich formulierten Intention. Sie entstehen in Zusammenarbeit zwischen Product Owner und Entwicklungs-Team, sowie idealerweise mit Beteiligung der Kunden bzw. Anwender des Produktes.
Als Hilfsmittel in der agilen Produktentwicklung sind Akzeptanzkriterien das geeignete Mittel, um in kurzen Feedbackzyklen festzulegen, in welche Richtung das gewünschte und benötigte Produkt entwickelt werden soll. Damit hat das Entwicklungs-Team eine Methodik an der Hand, um für sich selbst jederzeit beurteilen zu können, ob es das richtige Produkt entwickelt.
Automatisierte Akzeptanztests
Diese Beurteilung kann sowohl manuell als auch maschinell durch Entwicklung einer entsprechenden Test-Automation durchgeführt werden. Die Investition in eine gute Test-Automation zahlt sich bereits bei der Entwicklung kleiner Software-Systeme schnell aus, da der Aufwand für manuelle Akzeptanztests kontinuierlich anwächst und damit nicht mehr vollständig während einer Iteration durchgeführt werden kann. Die Lieferfähigkeit in jedem Sprint geht damit verloren und die Ungewissheit steigt, dass tatsächlich das richtige Produkt gebaut wurde.
Referenzen
- Lisa Crispin – Agile Testing
- Markus Gärtner – ATDD in der Praxis
- Wikipedia – Acceptance Testing en.wikipedia.org/wiki/Acceptance_testing
- Johnston, Courtney – User Stories: A Beginner‘s Guide to Acceptance Criteria www.boost.co.nz/blog/agile/acceptance-criteria/
- Agile Alliance – Acceptance Testing guide.agilealliance.org/guide/acceptance.html