Eine Automatisierung der Tests lohnt sich 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 Testgetriebene Entwicklung