Main Content

Mit kleinen Schritten zum Erfolg Agile Softwareentwicklung erfordert Umdenken im Testvorgehen

Bestehende Testvorgehen lassen sich nur begrenzt auf agile Softwareentwicklung und damit kürzere Entwicklungszyklen übertragen. Jeder Projektmanager muss sich fragen, mit welchen Methoden er die Projektziele erreichen kann.

Große Softwareentwicklungsprojekte erstrecken sich meist über mehrere Monate oder Jahre. Aufgrund der Abhängigkeiten zu Altsystemen und der damit verbundenen Komplexität wird häufig eine Big Bang Strategie verfolgt.

Dabei kann es sich lohnen, die Abhängigkeiten genauer zu analysieren und ein Vorgehensmodell mit kürzeren Entwicklungszyklen zu wählen.

Die Vorteile von kurzen Entwicklungszyklen mit kleinerem Scope liegen auf der Hand. Die Software (ein Feature oder ein Teilsystem) kann früher in Einsatz genommen werden; also schneller Return on Investment. Es können bis zum letzten Entwicklungszyklus noch Anforderungen kostenneutral geändert werden. Die Erfahrung aus vorangegangen Zyklen hilft, den Enwicklungsprozess zu optimieren und Risiken zu minimieren. Außerdem steigt durch diesen Lerneffekt die Planungssicherheit in Bezug auf Dauer und Kosten des Projekts.

Das sind gute Perspektiven für den Projektmanager. Aber wie kann er die Qualität der Software bei kürzeren Testphasen sicherstellen?

Die Testzyklen müssen entsprechend des Vorgehensmodells angepasst werden. In jedem Entwicklungszyklus (ca. 4 - 6 Wochen) sollte es mehrere kurze Testzyklen geben, die abhängig von der Stabilität der Software durchgeführt werden. Das heisst, dass Features oder Teilsysteme getestet werden, sobald sie für manuelle Tests zur Verfügung stehen.

Automatisierte Tests helfen vorab in kurzer Zeit gezielt die wichtigsten Prozesse einer Software zu testen. Dieses sogannte Smoke Testing ist ein Eingangskriterium für die manuellen Testzyklen.

Testmitarbeiter sind häufig durch sekundäre Tätigkeiten wie die Beantwortung von Emails, das Schreiben von Berichten und die Teilnahme an Meetings blockiert. Während der Testzyklen sollte die Priorität auf dem Testen liegen. Populär ist in diesem Zusammenhang die Erstellung einer "Stop do list", auf der alle Tätigkeiten erfasst werden, die im Testzyklus einzustellen sind.

Aufgrund der Komplexität von Software ist es nicht möglich, eine 100%-ige Testabdeckung zu erreichen. Je kürzer die Testzyklen sind, desto wichtiger ist die Priorisierung der Testanforderungen bspw. auf der Grundlage von Risiken. Aber auch eine Priorisierung der Testanfordungen auf Basis der Durchlaufhäufigkeit oder Wichtigkeit von Prozessen ist denkbar.

Agile Softwareentwicklung stellt besondere Anforderungen an die Stakeholder eines Projekts. Ein wichtiger Aspekt ist dabei das Umdenken im Testvorgehen. Die hier dargestellten Lösungsansätze sollten als Anregung für eine individuelle Analyse verstanden werden und haben folglich keinen Anspruch auf Vollständigkeit.

twitter.com/pierrewitthus

Follow Pierre Witthus.