Agiles Testen

Was zeichnet agiles Testen aus?

Testen in agilen Projekten unterscheidet sich vom klassisches Testen in erster Linie dadurch, dass dieselben Tests viel häufiger ausgeführt werden müssen. Schließlich wird das System immer wieder geändert (Refactoring) und viel häufiger ausgeliefert. Daher lohnt sich die Automatisierung der Tests in agilen Projekten viel früher als in klassischen Projekten. Aus dieser essenziellen Bedeutung des Testens in agilen Projekten hat sich eine spezielle Perspektive auf Tests entwickelt: In agilen Projekten werden Tests als ausführbare Spezifikationen verstanden. Wie in klassischen Projekten auch unterscheidet man in agilen Projekten zwischen der technischen Spezifikation in Form von Unit-Tests und der Spezifikation der Anwendungsdomäne in Form von Akzeptanztests.

Unit-Tests

In agilen Projekten werden Unit-Tests (Komponententests) als wichtiges Mittel zur Qualitätssicherung eingesetzt. Ihr primärer Zweck besteht in der Dokumentation des technischen Verständnisses des Teams. Für den Wissenstransfer des derzeitigen Verständnisses müssen sie vollständig automatisiert sein.

Mehr zu Unit-Test

Akzeptanztests

Mit Akzeptanztests wird die Systemfunktionalität aus Sicht der Anwender/Kunden überprüft. Agile Teams halten in Form von automatisierten Akzeptanztests ihr Verständnis über die Anwendungsdomäne fest. Das Team erlangt zusammen mit dem ProductOwner ein gemeinsames Verständnis über die Anwendungsdomäne und hälft diese in Form von Akzeptanzkriterien fest. Diese werden parallel zur Entwicklung der Funktionalität automatisiert. Über lange Sicht entsteht so eine ausführbare Dokumentation des Systems.

Exploratives Testen

Massive Testautomatisierung hat ihre Vorteile, wenn es um die frühzeitige Vermeidung von Regressionen geht. Allerdings gibt es trotz massiver Testautomatisierung immer noch Lücken in der Testabdeckung. Diese Lücken können gezielt und auch strukturiert mit Explorativen Tests geschlossen werden. In agilen Projekten müssen Tester durch die massive Testabdeckung allerdings nicht mehr den einfachsten Fehlern hinterher suchen, sondern können sich gezielt auf die wichtigen und fehleranfälligen Bereiche beschränken.

Testgetriebene Entwicklung

Testgetriebene Entwicklung (Test-Driven Development) bedeutet, dass Tests vor dem Produktivcode geschrieben werden, um so die Softwareentwicklung zu steuern. So entsteht Qualitätssoftware mit sehr hoher Testabdeckung, und es wird nur das entwickelt, was auch tatsächlich benötigt wird.

Mehr zu testgetriebener Entwicklung

 

Unser Angebot zum agilen Testen

Wir verfügen über umfangreiche praktische Erfahrung mit agilen Testverfahren in Java und .NET und bieten verschiedene Schulungen und Coachings an: