Glaux Soft Know-how: Softwaretest in agilen Teams – Teil 2
Welches Testvorgehen erzielt in der agilen Softwareentwicklung hohe Kundenzufriedenheit und Produktqualität und unterstützt speziell auch die schnelle Reaktion auf Änderungen? Im ersten Teil des Artikels führte Sie der Autor ein in die Problematik von Qualitätssicherung und Testmanagement in der Software-Entwicklung für sich schnell verändernde Geschäftsmodelle. Im zweiten Teil des Artikels lernen Sie die sechs Grundprinzipien en détail kennen und welche Konsequenzen sich daraus für die Unternehmen ergeben.
Schnelles Feedback
Soll ein funktionsfähiges Inkrement innerhalb kurzer Entwicklungszyklen bereitgestellt werden, so können die Tests unmöglich erst gegen Ende des Zyklus stattfinden, da ansonsten die Zeit zur Fehlerkorrektur fehlt. Entsprechend sorgt das Entwicklungsteam für frühzeitiges und zeitnahes Testfeedback. Dazu sind die Tester einerseits in die Funktionsdefinition vor Zyklusbeginn eingebunden. Andererseits setzt das Entwicklungsteam auf eine ausgewogene Kombination von automatisierten (Regressions-)Tests und manuellen, explorativen Tests.
Hoher Automatisierungsgrad
Die iterative Vorgehensweise erfordert in zweierlei Hinsicht einen hohen Grad an Testautomatisierung. Einerseits lassen die kurzen Durchlaufzeiten keine Zeit für umfassende, manuelle Tests zu. Andererseits müssen bereits fertiggestellte Komponenten durch die etappenweise Umsetzung stets aufs Neue auf ihre Fehlerfreiheit geprüft werden, was eine hohe Anzahl Regressionstests bedingt.
Geringer administrativer Overhead
Die Verhinderung oder zumindest Minimierung von nicht unmittelbar wertschöpfenden Aktivitäten ist eines der Grundprinzipien agiler Vorgehensweisen. Auf Softwaretests portiert bedeutet dies, dass insbesondere der Aufwand für Test- und Fehlermanagement, ebenso wie für Testdokumentationen so gering wie möglich gehalten werden muss. Im Fokus steht die Fehlerfreiheit der Software und nicht deren Dokumentation.
Auflösung von Testabteilungen
Agile Teams tragen die Verantwortung für ihr Handeln gemeinsam. Dies bedeutet, dass die klassische Aufgabenteilung zwischen Softwareentwicklern und Testmanagern zugunsten einer gemeinsamen Vorgehensweise aufgegeben werden soll. Im Umkehrschluss bedingen die einzelnen Disziplinen aber nach wie vor spezifische Fertigkeiten und Ausbildungen, weswegen die Herausforderung darin besteht, ein ideales Teamgefüge zu finden und zu pflegen.
Auflösung von Teststufen
Die klassische Lehre zum Softwaretest propagiert einzelne sequentielle Teststufen (Unit-, Integrations- und Systemtests) mit unterschiedlichen Zielen und Betrachtungsebenen. Agile Vorgehensweisen und das Bedürfnis nach schnellem Feedback bieten wiederum nicht ausreichend Zeit, alle diese Stufen nacheinander in ihrer Gesamtheit zu durchlaufen. Dennoch sind die Ziele der einzelnen Ebenen zu erfüllen, damit die Qualität des Inkrements gesichert werden kann. Gefragt ist also ein Vorgehen, welches die einzelnen Stufen innert kurzer Zeit (typischerweise 24 Stunden) in einem „Mikro-Zyklus“ zusammenfasst.
Enge Zusammenarbeit im Team
Um ein schnelles Testfeedback zu ermöglichen und der propagierten gemeinsamen Verantwortung im Team nachzukommen, ist eine enge Zusammenarbeit unabdingbar. Einerseits zwischen Testern und Entwicklern, aber auch zwischen Testern und dem Product Owner, also dem Kundenansprechpartner. Damit dies gelingt, ist eine direkte Kommunikation von zentraler Bedeutung. Dies heisst im Umkehrschluss: weitgehender Verzicht auf klassische Kommunikationsmittel, namentlich Dokumentationen, die dem Kunden keinen Mehrwert generieren.
Fazit
Die Umsetzung dieser Prinzipien in der Praxis bedeutet für Tester, aber auch für Softwareentwickler üblicherweise eine grundlegende Wandlung der Herangehensweise an ein Softwareprojekt. Der Fokus rückt stark auf die direkte Zusammenarbeit im Team. Ebenso sind die Tester aufgefordert, die für sie notwendigen Informationen zur Erarbeitung der Testgrundlagen aktiv zu beschaffen. Dies gelingt durch die Integration der Tester in die vorgelagerten Design- und Entwicklungsprozesse, bedingt aber ein umfassendes Umdenken seitens der Tester. Dies, da die bisherige Arbeitsweise basierend auf freigegebenen Spezifikationen und Dokumentationen durch ein Modell der aktiven Kommunikation innerhalb des Teams ersetzt wird. Der Wandel hin zu agilen Entwicklungs- und Testmethoden bedingt also in allererster Linie einen grundlegenden Wandel in der Team- respektive der Unternehmenskultur.
Lesen Sie hier Teil 1
Glaux Soft Ag auf Cloud-Finder Schweiz
Experte Pascal Bürgy auf Cloud-Finder Schweiz