Agiles Projektmanagement – agiles Testen

Teil 6: Agiles Testen

In den vorherigen Blogbeiträgen haben wir Ihnen diverse agile Methoden vorgestellt. Agile Softwareentwicklung führt zu häufigeren und oft tiefgreifenderen Veränderungen der Software als bei herkömmlichen Softwareentwicklungsprojekten. Bei agilen Projekten ändert sich die Software in Iterationen (oder sog. Sprints) und sie ändert sich schnell. Im Normalfall dauert ein solcher Sprint zwei bis drei Wochen und am Ende eines Sprints soll eine komplett getestete Software stehen, die an den Kunden ausgeliefert und effektiv genutzt werden kann. Herkömmliches Testen, also das Schreiben von Testplänen und deren manuelle Ausführung durch ein Testteam, kann mit dem Tempo und der geforderten Flexibilität im agilen Entwicklungsprozess nicht mithalten. Das Testen muss also ebenfalls agil werden. Was das bedeutet und wie agiles Testen funktioniert, möchten wir in diesem Blog vorstellen.

Beschreibung von agilem Testen

Die Zielsetzung des Testings in agilen Projekten unterscheidet sich vom normalen Testvorgehen in erster Linie dadurch, dass es sich hier um eine präventive Maßnahme handelt. Agiles Testen zielt auf Fehlervermeidung und nicht darauf Fehler im Nachgang zu finden.



Abbildung 1 : Traditioneller Testansatz vs. agiles Testen


Wenn – wie oben beschrieben– alle drei Wochen ein kompletter Testzyklus (Unit-Test -> Integrations-Test -> Akzeptanz-Test) durchlaufen werden soll, ist die logische Konsequenz die Automatisierung von Tests. Tests werden nicht mehr nur am Ende einer Iteration durchgeführt, sondern im Normalfall mehrfach täglich von unterschiedlichen Personen, um Änderungen zu testen, bevor diese freigegeben werden (Continious Integration). Eine Automatisierung des Tests lohnt sich daher schon zu einem viel früheren Zeitpunkt, als in klassischen Projekten. Dabei geht die Reichweite des Tests soweit, dass Tests als ausführbare Spezifikationen verstanden werden und teilweise vor der Funktion selbst programmiert werden (Test Driven Developement / eXtreme Programming). Durch den hohen Automatisierungsgrad erreicht man eine hohe Testabdeckung, die allerdings durch gezieltes exploratives Testen („ausprobieren“ der Software durch mehrere Teammitglieder) noch ergänzt werden sollte, denn nicht alles ist im Testlabor planbar.

Die Rolle des klassischen Testers existiert beim agilen Testen so nicht mehr, denn den agilen Prinzipien folgend, wird die Verantwortung für alle Testaktivitäten auf das gesamte Team verteilt. Die Anforderungen an die Rolle des Testers im agilen Umfeld nähern sich, aufgrund der hohen Automatisierung des Testes, immer mehr der Rolle des Entwicklers an. Des Weiteren steht bei der agilen Entwicklung der Teamgedanke im Mittelpunkt. Eine Trennung zwischen Entwickler-Team und Test-Team ist nicht mehr zu empfehlen. Im Idealfall programmiert jeder Entwickler automatisierte Tests, zumindest aber sollten Tester von Anfang an im agilen Team eingebunden sein und die Entwickler bei der Erstellung von automatisierten Tests unterstützen. Um das Schreiben von automatisierten Testfällen zu erleichtern, existieren am Markt eine Reihe von Tools und Frameworks für unterschiedliche Programmiersprachen.

Fazit:

Was ist folglich agiles Testen? Unserer Meinung nach ist agiles Testen das Herzstück agiler Softwareentwicklung. Der klassische Test existiert dabei nicht mehr. Test und Entwicklung laufen nicht mehr getrennt, sondern miteinander im Team. Agiles Testen verbindet Entwicklung und Test mit der Folge einer nachhaltigen Steigerung der Qualität der Software.

Ausblick:

Bislang haben wir uns in der RFC Blogreihe „Agiles Projektmanagement“ hauptsächlich mit den unterschiedlichen Werten, Prinzipien und Methoden beschäftigt. Bei der Beschreibung der Methoden haben wir uns dabei immer bewusst auf ein agiles Team beschränkt ohne uns mit der Möglichkeit der Skalierbarkeit agiler Methoden auseinanderzusetzen. Dies wird im nächsten Blog mit der Vorstellung von skalierten Methoden nachgeholt.

_________________________________________________________________________________

Übersicht aller Blogs unserer RFC Blogreihe Agiles Projektmanagement

Blog 1: VUCA und die Folgen für Unternehmen – Warum „Agiles Projektmanagement“?

Blog 2: Systematik des agilen Projektmanagements. Werte, Prinzipien, Techniken und Methoden – Was ist „Agiles Projektmanagement“?

Blog 3: Scrum ist eine der bekanntesten agilen Methoden – Was ist „Scrum“?

Blog 4: Kanban ist eine agile Methode für evolutionäres Change-Management – Wie funktioniert Kanban?

Blog 5: Beschreibung von XP, FDD und Agile Up

Blog 6: Testen im agilen Umfeld – Was bedeutet das?

Blog 7: Beschreibung von skalierten Methoden Teil 1: / SoS, LeSS und ES

Blog 8: Beschreibung von skalierten Methoden Teil 2 / SAFe und DA

Blog 9: Entscheidungsfindung – die Ermittlung der passenden Vorgehensweise

Blog 10: Hybrides Projektmanagement: Das Beste aus beiden Welten?

Blog 11: Agile Transition: Der Change-Management-Prozess in der Organisation

Blog 12: Menschen im agilen Umfeld / Herausforderungen und Lösungen für Veränderungsprozesse.

Gefällt Ihnen unsere Blogreihe, haben Sie Anmerkungen oder neue Ideen? Dann freuen wir uns, wenn Sie uns kontaktieren.

Steffen Hahn

Steffen
Hahn

Torsten Lindlahr

Torsten
Lindlahr

Hans Willhoeft

Hans
Willhöft