30.11.2015  Verfasst von Kai Schikowski in Agile Methoden  

Die Zeit ist knapp und Papier geduldig!

Effiziente Wege zur Verankerung von Testautomatisierung im Sprint.

Ein Tag hat 24 Stunden und die Arbeitswoche fünf Tage. Diese Zeit will effizient genutzt werden. Als Tester in agilen Projekten sind die Herausforderungen von Time-2-Market und hoher Produktqualität bei gleichzeitiger Zeitknappheit in Einklang zu bringen.

Die Idee, nach einem abgeschlossen Sprint ein potentially shippable Product Increment – also ein marktreifes Softwareinkrement - zu liefern, erfordert den effizienten Einsatz der vorhandenen Testressourcen. Wie kann ein solcher, effizienter Einsatz der Testressourcen aussehen, welche Arbeitspakete sind hierbei mit welcher Gewichtung zu betrachten und welche Rahmenbedingungen sind zu berücksichtigen?

In einer perfekten Welt ist Zeit für alles, Zeit für eine perfekte Planung, Zeit für eine ausgereifte Dokumentation und Zeit für eine optimale Testdurchführung. Eine Projektwelt ist jedoch in der Realität angesiedelt. Aus diesem Grund muss die vorhandene Kapazität zielorientiert eingesetzt werden. Unabhängig vom Projektvorgehen ist dieses keine Neuheit, jedoch als Tester in einem agilen Projekt von besonderer Bedeutung.

Wenn eine Software nach einem Sprintzyklus in einem auslieferbaren Zustand sein soll, dann bedeutet das aus Sicht der Qualitätssicherung, dass nicht nur neue bzw. veränderte Funktionalitäten getestet worden sind, sondern auch sichergestellt werden muss, dass die gesamte, bereits produktivgesetzte Software weiterhin den Qualitätsansprüchen der Kunden entspricht. D.h., dass ein Regressionstest am Ende eines solchen Zyklus – idealerweise am Ende eines jeden Arbeitstages – durchzuführen und zu planen ist. Durch die häufig verwendeten Sprintzyklen von zwei bzw. vier Wochen ist es aus Sicht einer effizienten Ressourcenverwendung nicht sinnvoll, den Regressionstest manuell und auf geschriebenen Testfällen basiert durchzuführen. Die Testautomatisierung bietet hier gleich mehrere Vorteile. Im Folgenden sind einige Vorteile exemplarisch aufgeführt.

Eine Testautomatisierung…

  • … ist schneller
  • … führt einen Test immer gleich aus
  • … kann zu jeder Zeit durchgeführt werden (insbesondere nachts)
  • … liefert statistisch auswertbare und vergleichbare Ergebnisse


Eine zielorientierte Testautomatisierung sollte geplant und anhand objektiver Entscheidungskriterien erstellt werden. Unten stehende Grafik erläutert eine mögliche Annährung an eine effiziente Testauswahl anhand der Komplexität einzelner Funktionen und deren Risiko für die Software und das Unternehmen bei einem etwaigen Fehler in diesem Bereich. Die Funktionen, die hier mit A1 bewertet werden, würden in diesem Fall zu Beginn automatisiert werden und von dort ausgehend ist eine Ausweitung sinnvoll. Eine solche Aufteilung der einzelnen Funktionen ist am Anfang eines Projektes durchaus zeitaufwendig, jedoch umso wichtiger, da sie eine gezielte Roadmap für die Testautomatisierung aufzeigt.

Sobald eine initiale Planung der Testautomatisierung abgeschlossen ist, kann mit der Erstellung der Testfälle begonnen werden. Um weitere Zeit einzusparen ist es sinnvoll, dass die Tests direkt im Automatisierungstool erstellt werden und der Zwischenschritt einer Testdokumentation übersprungen wird. Die fertiggestellte Automatisierung und die Erstellung im Tool sollten i.d.R. als Dokumentation ausreichen. Alle automatisierten Tests sollten innerhalb eines Sprintzyklus mindestens einmal ausgeführt werden. Wenn der Umfang der Tests diese Grenze überschreitet, kann das dazu führen, dass Testfälle nicht mehr aktualisiert werden und die Testbasis somit an Wert verliert und eine anschließende Wartung zu kostenintensiv wird.

Neben der Planung der Testautomatisierung, der Bereitstellung der Testfälle und der Wartung und Überprüfung der Tests sollte die verbleibende Zeit für explorative Tests genutzt werden. Diese sollten unter den am Test beteiligten Personen aufgeteilt werden und in Form einer Timebox zeitlich begrenzt sein.

Ein Tester sollte sich während eines Sprints so viel wie möglich mit der Ausführung des Produktes/der Software beschäftigen und so wenig Zeit wie möglich mit der Dokumentation von manuellen Tests befassen. Je mehr Zeit mit der Ausführung des Produktes verbracht wird, desto mehr Zeilen Code und desto mehr funktionale und nicht-funktionale Aspekte der Software können getestet werden. Der Fokus der Arbeit sollte immer darauf liegen, die Software so effizient wie möglich zu testen.

Der Autor

Kai Schikowski
Consultant