Eine Agile Teststrategie entwickeln
Die Adoption von Agile hängt immer vom Projektkontext ab. In einer agilen Umgebung gibt es keine Anforderungsdokumente, denn man konzentriert sich hauptsächlich auf die Kommunikation. Das stellt eine große Herausforderung für das Testen der Software dar, weil dies ohne detaillierte Informationen recht schwierig ist.
Das Testen ist das Schlüsselelement in der Softwareentwicklung, da es der Qualitätssicherung einer Software hinsichtlich Produktionsreife, Vollständigkeit, Zielsetzung und Risiken dient.
In sequenziellen Entwicklungszyklen priorisiert das Team immer die Definition, die Überprüfung und die Validierung der ursprünglichen Anforderungen. Dieser Ansatz – in Kombination mit einer Teststrategie für den Entwicklungszyklus und Entwicklertests – gewährleistet eine höhere Softwarequalität. Jedoch konnten traditionelle Entwicklungsmethoden in den meisten Fällen keine funktionierende Software im Bezug auf spezifizierte Geschäftsanforderungen, Kosten und Zeit liefern. Das geschieht normalerweise aufgrund von fehlendem Management, fehlenden Tests und fehlenden Prozessen. Oft gibt es ein Kommunikationsdefizit zwischen Entwicklern und Testern. Die Änderungen der Anforderungen, die während des Entwicklungsprozesses gemacht wurden, wurden evtl. nicht an die Tester weitergegeben. Entweder besteht die Applikation dann den entsprechenden Test nicht oder der Testprozess ist nicht korrekt auf das echte Produkt abgestimmt. Um diese Hürden zu überwinden, muss viel Zeit und Mühe in das Managen von Veränderungen im Sprint gesteckt werden.
Der agile Ansatz bei der Softwareentwicklung beruht auf einer iterativen Entwicklung mit kontinuierlicher Weiterentwicklung der Anforderungen und Lösungen. Diese Methodik bietet bessere Lösungen für die Probleme, die es bei der traditionellen Entwicklung und dem Testen von Software gibt. Iterative, wiederholende und inkrementelle Schritte im Prozess gewährleisten theoretisch eine bessere Produktauslieferung.
Warum die testgetriebene Entwicklung für agile Methoden sehr wertvoll ist
Bei Agile dreht sich alles um qualitativ hochwertige Software und den Kunden. Daher hat das Testen eine ausschlaggebende Rolle in der agilen Entwicklung.
Der Wert des Testens lässt sich mit Agile auf folgende Weisen maximieren:
Mit einem Ansatz für die testgetriebene Entwicklung (TDD) lässt sich die Qualität maximieren und Doppelarbeit minimieren, denn ein testgetriebener Entwicklungsansatz legt den Fokus auf das Schreiben, das Codieren und dann auf das Refactoring von Tests.
Die Teststrategie und das Planning sollten nach jeder Iteration flexibel auf die Veränderungen angepasst werden können. Ein Hybridansatz für das Testen kombiniert daher die Elemente agiler mit denen traditioneller Methoden.
Die Tester-Rolle muss flexibel sein. Die Mitglieder des Test-Teams müssen wirklich agile Teammitglieder werden. Die Tester in Agile sind also nicht länger einfach nur für die Fehlersuche oder Qualitätskontrolle da. Sie gehören zu einem zusammenarbeitenden Team, das die Erreichung einer hohen Qualität zum Ziel hat.
Mit der Implementierung automatisierter Tests kann man sich wiederholende manuelle Tätigkeiten stark reduzieren. Integrationsprozesse, Unit Tests, Tools für die statische Analyse, Testumgebungsmanagement sowie Funktionstests können in Agile automatisiert werden.
Fazit: Besser testen in Agile?!
Die besten Verfahren für effiziente und qualitativ hochwertige Softwareauslieferung können mit der agilen Methodik wirksam eingesetzt werden. Professionelle Tester müssen den Problemen traditioneller Entwicklungsmethoden entgegentreten, indem sie sich mit agilen Testmethoden weiterentwickeln und eng mit den Entwicklern, Analysten und Stakeholdern zusammenarbeiten.
Dieser Text stammt aus dem Blog von DZone und wurde von uns ins Deutsche übersetzt.
Scrum Master Training
=> Werde zertifizierter Scrum Master bei der Agile Academy!
Remote Retrospektiven
=> So kannst du als Scrum Master auch mit verteilten Teammitgliedern eine Retrospektive meistern!
Releasesteuerung bei Minecraft
=> Henrik Kniberg erzählte auf der agile100, wie Releases bei Minecraft gesteuert werden.