Klassisches Projektmanagement, das in hierarchischen Modellen denkt, wird mit den hohen Anforderungen an Softwareentwicklung zu einem Hemmer im Entwicklungsprozess. Schon lange haben an vielen Stellen des Entwicklungsprozesses agile Organisationsformen übernommen. So auch beim Testing, das nach und nach mit der Entwicklung und dem Roll-Out verknüpft wurde.

Es begann mit dem Wasserfall

Der Wasserfall ist wohl das bekannteste aller Organisationsmodelle von Prozessen, auch wenn es den Menschen oft nicht bewusst ist. Beim Wasserfall wird alles in Phasen eingeteilt, die aufeinander aufbauen. Alle Schritte müssen nach und nach bewältigt werden:

Konzeption, Design, Technische Umsetzung, Roll-Out und Support.

Durch diese klare Definition wird viel Sicherheit geschaffen: Erst wenn eine Phase abgeschlossen ist, ein Team die Arbeit an einer Phase beendet hat, beginnt das nächste Team mit seiner Aufgabe. So arbeiten alle Mitarbeiter immer mit vollendeten Tatsachen. Die Aufgabe von Test-Teams in diesem Modell ist es also lediglich, die vom Konzept intendierten Funktionen zu überprüfen, nicht aber neuen Input in den Prozess zu geben.

Diese hierarchische Struktur hat vor allem den Nachteil mangelnder Flexibilität: Entdeckt ein Team in den späteren Phasen Probleme am Konzept, kann daran nicht mehr gerüttelt werden. Gerade bei anwendungsorientierten Produkten wie Software, die kontinuierlich verbessert und den Bedürfnissen Ihrer Nutzer angepasst werden müssen, damit Sie relevant bleiben, kann diese Starrheit das schnelle Ende eines Produkts bedeuten. Ein weiteres Problem ist auch die lange Zeit, bis ein Produkt auf den Markt kommt (time to market). Zu einem Return-on-Investment kommt es daher erst sehr spät.

Agile Entwicklung ohne agiles Testing

Um diesen Problemen des relativ starren Wasserfalls zu begegnen, haben sich agile Entwicklungsmethoden wie Scrum und Kanban entwickelt. Der Wasserfall wird in Wiederholungen aufgebrochen. In diesen Iterationen werden die User Stories und die damit verknüpften Funktionen einer Software in den Mittelpunkt gestellt und somit die wichtigsten Aufgaben zuerst abgearbeitet. Agil hat sich auch beim Testing zum Buzzword entwickelt, das gerne verwendet wird, um Leistungen und Produkte zu verkaufen, ohne dass es tatsächlich befolgt wird. Gerade bei den agilen Entwicklungen ist es noch Usus, das Testing ans Ende, kurz vor den Release zu stellen. Die Ursache hierfür ist mitunter in der Teamphilosophie des agilen Entwickelns zu suchen.

Teamstrukturen

In agilen Teams gibt es außerdem keine hierarchische Zuteilung von Funktionen, sondern lediglich bestimmte Rollen: Ein Scrum-Master achtet darauf, dass die Methode des Scrums als Rahmenwerk permanent implementiert und von allen Beteiligten verstanden wird. Product Owner entscheiden, welche Produkteigenschaften Priorität haben sollten und erklären diese dem Team. Außerdem sind sie die Schnittstelle zu den Kunden und anderen Stakeholdern. Zuletzt gibt es das Entwicklungsteam, das immer interdisziplinär zusammengestellt ist: Dabei müssen Teammitglieder zugleich Spezialisten und Generalisten sein, um ihre Rolle im Scrum gut ausfüllen zu können.

Damit sind im Scrum Framework auch die Teammitglieder für das Testen verantwortlich, was zu einem Problem werden kann, wenn die Verantwortung nicht wahrgenommen oder die Zeit für gründliches Testen nicht eingeräumt wird.

Agile Testing

In den Grundzügen der agilen Entwicklungsmethoden ist Testing also oft nicht ausreichend bedacht.  Diese Lücke versucht agiles Testing zu lösen, in dem ein Test-Team vom Beginn des Projektes in den Prozess integriert wird. Bei der Wasserfall-Methode steht Testing am Ende des Prozesses zwischen Development und Roll-Out. Das Agile Testing beginnt allerdings bereits nach der Fertigstellung der ersten Arbeitsprodukte. Das kann bereits mit User Stories und Akzeptanzkriterien, Designs oder dem ersten Prototypen beginnen.

Welche Vorteile und Nachteile Agile Testing bietet, wann es Sinn macht und wann nicht und wie sich Testpläne dementsprechend gestalten, schauen wir uns im nächsten Artikel genauer an.