agiles Testen

Was ist agiles Testen?

Agiles Testen ist ein Testvorgehen innerhalb agiler Entwicklungsprozesse (z. B. Extreme Programming, Scrum). Es versteht Tests als integralen Bestandteil der Entwicklung und folgt dem Prinzip „Testen ist Teamaufgabe“. Ziel ist es, durch frühes und kontinuierliches Testen schnell Rückmeldung über die Qualität des Produkts zu erhalten. Agiles Testen bedeutet nicht „planloses Ausprobieren“, sondern ein strukturiertes, iteratives Vorgehen mit enger Zusammenarbeit zwischen Entwicklern, Testern, Product Owner und Kunden.

Merkmale

  • Test-First-Ansatz: Tests werden vor oder parallel zur Entwicklung erstellt (z. B. Test-Driven Development, Behavior-Driven Development).
  • Kontinuierliche Integration: Jede Codeänderung wird sofort getestet, um Fehler früh zu erkennen.
  • Kundennähe: Anforderungen werden als Akzeptanztests formuliert, sodass Entwickler und Fachbereich dieselbe Sprache sprechen.
  • Automatisierung: Hoher Anteil automatisierter Tests (Unit-Tests, Integrationstests, Akzeptanztests), ergänzt durch manuelle explorative Tests.
  • Teamorientierung: Tester sind Teil des Entwicklungsteams und arbeiten eng mit Entwicklern und Product Owner zusammen.

Beispiel
Ein Team entwickelt ein Online-Buchungssystem im Rahmen von Scrum:

  • Vor Beginn der Implementierung wird ein Akzeptanztest für die Funktion „Flugbuchung“ formuliert: „Wenn ein Kunde Start- und Zielort eingibt und ein Ticket auswählt, wird eine Buchungsbestätigung erzeugt.“
  • Entwickler schreiben automatisierte Tests für diese Szenarien, bevor sie den Code implementieren.
  • Während der Entwicklung werden alle Änderungen kontinuierlich in die Testumgebung integriert und getestet.
  • Am Ende des Sprints steht ein funktionsfähiges, getestetes Inkrement, das vom Product Owner überprüft werden kann.

Hinweise für die Praxis

  • Testautomatisierung sollte von Beginn an eingeplant werden, um langfristig effizient zu bleiben.
  • Anforderungen sollten so formuliert werden, dass sie direkt in Tests überführbar sind (z. B. in Form von User Stories mit Akzeptanzkriterien).
  • Eine sinnvolle Balance zwischen automatisierten und explorativen Tests erhöht Qualität und Flexibilität.
  • Enger Austausch zwischen Testern und Entwicklern verhindert Missverständnisse über Testziele.