Der TestMaster – der Testmanager in der agilen Softwareentwicklung
Wir haben die Erfahrung gemacht, dass wir uns als Testmanager bei einem Kunden oder für ein Projekt vorgestellt haben und relativ schnell die Frage nach Erfahrung in agilen Projekten kam oder ob man zusätzlich auch als Scrum Master arbeiten kann. Um einen Eindruck zu gewinnen, ob es sich hierbei "nur" um unseren Eindruck handelt oder ob dieser Trend aktuell allgemein auf dem Markt vorherrscht, haben wir einen Fragebogen entwickelt und über unser Netzwerk verteilt und die Umfrage bei Events mit unseren Kunden, Kollegen und Partnern durchgeführt. Hierbei zeigte sich, dass in vielen Projekten und Unternehmen die gleichen Probleme vorherrschen.
Der Verzicht auf die Rolle des Testmanagers bzw. die Übernahme der Aufgaben des Testmanagers durch das Team, mag in kleineren Projekten gut funktionieren, allerdings scheinen größere komplexere Projekte in ähnlicher Weise Probleme bei gewissen Prozessen und Abläufen zu haben. Auf Grund dieser Erkenntnisse und aus unseren Erfahrungen in der Praxis ist die Idee zum TestMaster entstanden.
Ein Exkurs in die Praxis
Ein Projekt hatte den Auftrag, für einen großen internationalen Konzern ein IT-Asset-Management-System zu erstellen, das alle Belange der IT-Infrastruktur wie Bestellung von Rechnern, Fileshares, E-Mail-Postfächern bis hin zu Bestellung und Verwaltung ganzer Servercluster, als auch nicht-IT-relevante Anträge, wie Umzüge, Sachmittelbestellungen und dergleichen bearbeiten kann. Weltweit gab es mehr als 25.000 potentielle Systemanwender. Zusätzlich war ein großer Teil der angebotenen Services systemkritisch, was bedeutet, dass bei einem Versagen die Produktionsfähigkeit des Konzerns oder zumindest eines Teils davon gefährdet wäre. Bei der Entwicklung sollten bereits im Konzern vorhandene Systeme und Verfahren mit eingebunden werden. Hier sollte eine Homogenisierung des Frontends unter Beibehaltung eines heterogenen Backends erfolgen.
Während der Entwicklungsphase haben die Projektverantwortlichen erfreulicherweise einen großen Wert auf den Test des Systems gelegt.
Von den regulären 8 Arbeitsstunden wurden 10 Stunden für Meetings aufgewandt.
Bei insgesamt rund 140 beteiligten Personen in fünf Ländern und allein in Deutschland verteilt auf vier Standorte war das erste große Problem, das uns bis zum Ende begleiten sollte, die Kommunikation. Letztendlich waren fast alle Hindernisse auf Mängel im Informationsaustausch oder unterschiedliche Wissensstände zurückzuführen. Um diese Schwierigkeiten zu eliminieren, wurden viele Meetings, klein, groß, regional, national, international, angesetzt, um alle Projektbeteiligten auf den gleichen Wissensstand zu bekommen. Es gab Tage, an denen von den regulären 8 Arbeitsstunden in Summe 10 Stunden für Meetings aufgewandt wurden. Dadurch waren nun alle informiert, doch der Zeitaufwand war enorm. Und auch die Tatsache, dass die Meetings untereinander nicht synchronisiert waren, führte dazu, dass erneut kein identischer Wissensstand bei den Projektbeteiligten vorlag.
Die nachfolgenden Absätze beleuchten die Herausforderungen bzw. Impediments, die in den verschiedenen Phasen des Testprozesses aufgetreten sind. Aber auch deren Lösung soll nicht verschwiegen werden, denn am Ende ist das Projekt trotzdem erfolgreich abgeschlossen worden. Nicht zuletzt durch den Einsatz der Tester und Testmanager.
In der Phase der Testvorbereitung traten Hindernisse vor allem in Bezug auf die Testumgebung und die Testdaten auf.
- Testdaten: Testdaten waren bis kurz vor dem Teststart das große Mysterium. Kein Tester wusste, welche Testdaten verwendet werden sollen, ob es überhaupt welche gibt, ob diese realistisch und aktuell sind oder ob diese aus Datenschutzgründen überhaupt verwendet werden dürfen. Keiner der Beteiligten hat bis zwei Wochen vor Teststart überhaupt an die Notwendigkeit von Testdaten gedacht.
Gelöst wurde die Situation hier, indem mit einem hohen monetären Aufwand eine externe, auf Testdatengenerierung spezialisierte Beratungsfirma beauftragt wurde, die in einer Hauruck-Aktion zumindest die ersten nutzbaren Testdaten für Smoketests bereitstellte. - Testumgebung: Es herrschte Unklarheit über den Aufbau der Testumgebung. Da einige Prozesse, gerade im Backend, schon vorhanden waren, wurden am Ende sogar 2,5 vollständige Testumgebungen erstellt. Allerdings war nur eine geplant. Das Ergebnis entstand, weil einige Teams manche Bereiche doppelt aufgesetzt haben.
Hier war die Lösung die Einstellung zweier Testumgebungsverantwortlicher, die sich ständig synchronisierten und mit den Testmanagern abstimmten. Es wurde am Ende der Aufbau einer – wenn auch sehr großen – Testumgebung realisiert.
In der Phase der Testdurchführung waren drei Bereiche von Schwierigkeiten begleitet: Das Reporting des Testfortschritts und des aktuellen Teststatus über alle Teams, das übergreifende Fehlermanagement und das Release- und Deploymentmanagement der Testumgebung bei Fehlerbehebungen und Weiterentwicklungen.
- Reporting des Testfortschritts – aktueller Teststatus über alle Teams: Das Reporting des Testfortschritts war aufgrund der räumlichen Trennung immer ein großes Manko. Der eigentliche Hintergedanke war, ein "Follow-the-sun"-Testing zu ermöglichen, also dass aufgrund verschiedener Zeitzonen rund um die Uhr getestet werden konnte. Die Übergaben fanden aber von Team zu Team unterschiedlich statt. Es gab Übergaben per Mail, per Telefonat, per Videomeeting oder auch gar keine. Der Status sollte dann aus der Kombination von Excel-Tabellen, dem Testmanagementwerkzeug und verschiedenen Dashboards ermittelt werden. Wirklich zuständig war hier aber niemand.
Gelöst wurde das Dilemma eher zufällig: Es wurden projektweit sogenannte "Testwände" aufgestellt, die per Videotelefonie an jeden Standort übertragen wurden. Das waren Metaplanwände mit Flipchart-Blättern darauf, die den Teststatus am jeweiligen Standort anzeigten. - Übergreifendes Fehlermanagement: Fehlermanagement war eines der größten Probleme, da alle beteiligten Teams schon jeweils eigene Tracker verwendet haben und davon nicht abkommen wollten. So gab es Jira, Remedy, Redmine, Bugzilla, Mantis, Excel, Outlook, Word, One Note und, und, und. Somit gab es manchmal für ein und denselben Fehler 3, 4 oder mehrere verschiedene Nummern, je nach Ticketsystem.
Hier hat ein tapferer Auszubildender mittels einer Exceltabelle und viel Zeit alle Fehlertickets aufeinander gemappt. Es waren über 20.000 Fehlertickets! - Release- und Deploymentmanagement-Testumgebung: Richtig schwierig wurde es, wenn die Entwickler:innen neue Versionen in die Testumgebung eingespielt haben. Das war mitunter sehr zufällig, da ihnen weder der aktuelle Teststatus noch der Status der Testumgebung bekannt war. So konnte es vorkommen, dass mitten im Test eine neue Version deployed wurde und der gesamte Testfortschritt hinfällig, da nicht mehr aussagekräftig, war. Oft wurden die Deployments angekündigt, doch leider nicht allen Teams kommuniziert. Dadurch wurde nicht nur der Testfortschritt aufgehalten, sondern auch der aktuelle Teststatus massiv verfälscht.
Dieses "Randomized Deployment" wurde erst dadurch verringert, indem Deployments nur noch jeden Freitag erlaubt wurden oder wenn die Testdurchführung durch Fehler blockiert ist. Durch diese Maßnahme war allerdings ein kompletter Tag pro Woche für die Testdurchführung verloren.
Welche Aufgaben übernimmt der TestMaster?
Wäre ein TestMaster oder ein Team von TestMastern bereits früh in das oben genannte Setting eingebunden worden, wären einige Impediments vermieden worden und die notwendigen, aufwändigen Maßnahmen zur Lösung wären nicht in dieser ausgeprägten Form notwendig gewesen. Doch was sind die Aufgaben eines TestMasters und wie kann er das Management eines solch großen Projektes unterstützen?
Eine zentrale Aufgabe des TestMasters besteht in der Planung der Tests und in der Organisation und Koordination der Testumgebungen. Hierfür verschafft sich der TestMaster einen Überblick über die Testaktivitäten aller beteiligten Teams und leitet darauf aufbauend eine zentrale Testplanung und das Management der Testumgebung(en) ab. So wissen die beteiligten Teams, welche Testumgebungen aktuell verwendet werden, wo sie aufsetzen können, wo noch Arbeit für sie ansteht aber auch, wo sie sich gegebenenfalls gegenseitig blockieren. Zudem herrscht Einigkeit darüber, wann bestimmte Testumgebungen von wem genutzt werden können und wann sie beispielsweise aufgrund eines Deployments nicht nutzbar sind. Dies ist sowohl in der Testvorbereitung als auch der Testdurchführung essentiell und trägt zu einer Verbesserung des Testprozesses bei.
Das obige Beispiel verdeutlicht gut, wie wichtig es ist, dass sich eine Person um die projektweite Kommunikation und Synchronisation der Testbeteiligten kümmert. Insbesondere in großen Projekten ist es keine Seltenheit, dass Teams an unterschiedlichen Orten und auch in unterschiedlichen Zeitzonen arbeiten. Hier werden Übergaben nötig, die gute Koordination erfordern, damit Missverständnisse, offene Fragen, mangelnde Übergaben, fehlende Informationen, Nicht-Verfügbarkeiten bei sich international unterscheidenden Feiertagen, etc. vermieden werden. Nur so kann eine Transparenz über den Testfortschritt entstehen und der Testprozess optimal und geschmeidig verlaufen.
Auch im Fehlermanagement ist der TestMaster eine wertvolle (Super-)Power: Unterschiedlichste Arten von Fehlerdokumentationen in den verschiedensten Tools führen zu einer mangelnden Transparenz für die Beteiligten und in der Folge auch zu doppelt dokumentierten Fehlern und unnötigem Mehraufwand – wie im Praxisbeispiel deutlich wird. Der TestMaster setzt genau hier an und koordiniert durch den Einsatz eines teamübergreifenden Tools sowie entsprechender Kommunikation und Nachverfolgung der Fehlerstatus das Fehlermanagement. Er/sie schafft hierdurch eine höhere Transparenz sowie einen sinnvollen Einsatz der verfügbaren Ressourcen.
Eine weitere wesentliche Aufgabe des TestMasters ist die Unterstützung des Zulieferer- und Abnahmeprozesses. Durch seine vielfältigen Aufgaben und die zentrale Rolle im Projekt liegen beim TestMaster viele Informationen über die Zulieferer und den Status der Zulieferungen vor. Der TestMaster kann, falls gewünscht, ebenfalls bei den Freigabeprozessen mitwirken. Da der TestMaster im Rahmen seiner Rolle im Projekt wichtige Informationen sammelt, aufbereitet und zur Verfügung stellt, hat der TestMaster häufig die umfänglichste projektübergreifende Sicht auf alle Testaktivitäten und darüber hinaus. Daher empfehlen wir, den TestMaster in die Freigabeprozesse einzubinden, nicht als Entscheider aber in einer unterstützenden Funktion. Der TestMaster kann die aktuellen Releasestände auf den Testumgebungen, den Status der Testaktivitäten und den Stand der gefundenen Fehler bereitstellen. Diese Informationen sollten bei der Freigabeentscheidung berücksichtigt werden.
Zusammenfassend lassen sich folgende zentrale Tätigkeiten eines TestMasters festhalten:
- Globale Testplanung und Testumgebungsmanagement,
- Agile Testprozessverbesserung,
- Projektweite Synchronisation der Testbeteiligten,
- Projektweites Fehlermanagement,
- Unterstützung im Abnahmeprozess von Zulieferern und
- Teamübergreifendes Testmanagement.
Wie profitiert das Projekt vom Einsatz eines TestMasters?
Stichwort "Melonenprojekt": Nach außen hin erscheint alles grün. Sieht man jedoch tiefer nach innen ins Projekt, so wird es oft rot. Ein großer Mehrwert des TestMasters ist es, dass er/sie über die Zeit hinweg ein Gefühl entwickelt, wenn etwas nicht stimmt und wo Probleme auftauchen können. Er/sie wird in diesem Fall mit gezielten Maßnahmen (wie z. B. im Bereich der Verbesserung der Synchronisation) gegensteuern und ungünstigen Situationen, Missverständnissen und Konflikten vorbeugen oder diese frühzeitig lösen. Ein weiterer Vorteil ist, dass der TestMaster die zentrale Person im Test ist. Er/sie ist zum Einen allen Ansprechpartnern und Entscheidern bekannt und zum Anderen kennt der TestMaster alle Ansprechpartner und Entscheider. Diese Tatsache hilft dabei, dass Entscheidungs- und Kommunikationswege möglichst kurz bleiben und keine Unklarheiten über Ansprechpartner für Testangelegenheiten entstehen. Der TestMaster sollte im besten Fall der "single-point-of-contact" für alle testrelevanten Themen sein.
Ist der TestMaster nur ein anderer Begriff für den Testmanager?
Du bist als Testmanager unterwegs und erfüllst bereits all diese Aufgaben? Das ist super! Es spricht für dich und dein Projekt, wenn es bereits eine Person einsetzt, die sich teamübergreifend im agilen oder hybriden (klassische & agile Teams parallel) Umfeld um einen optimalen Testprozess kümmert. In diesem Fall hast du mehr und andere Aufgaben als ein Testmanager im klassischen Sinne. Der Testmanager in seiner eigentlichen Bedeutung ist die Person, die in Projekten mit einem bis wenigen Test-Teams, die überwiegend mit klassischen Methoden (beispielsweise nach dem Wasserfallmodell) arbeiten, die Tests koordiniert und managt.
Der neuen Rolle des TestMasters werden hier weitere und auch andere Tätigkeiten zugeschrieben. So ist der TestMaster die zentrale Person, die projektweit und teamübergreifend die Test- und Projektaktivitäten überwacht, steuert und plant. Zudem greift er/sie ein, wenn sich Konflikte abzeichnen. Der TestMaster weiß z. B. wenn Tester wegen Krankheit oder Urlaub ausfallen und kann sich um Ersatz kümmern oder unterstützt selbst hands-on beim Test. Der TestMaster organisiert Coachings oder Workshops für die Teams, kümmert sich um die Verwaltung der Testdatenbestände, sammelt alle umgebungsbezogenen Informationen bei den Ansprechpartnern ein und stellt die Informationen projektübergreifend zur Verfügung, um allen Teilnehmer:innen einen identischen Wissensstand zu ermöglichen. Der TestMaster erkennt aufgrund seiner Erfahrung auch, wenn der Entwicklungsprozess an anderer Stelle (z. B. unklare Anforderungen) optimiert werden kann und schafft Abhilfe. Wichtig ist, dass der TestMaster Ansprechpartner:in für alle im Testprozess auftretenden Impediments ist und versucht, diese schnellst- und bestmöglich zu lösen. Die Rolle des TestMasters ist daher sehr verantwortungsvoll und extrem wichtig für ein erfolgreiches Projekt. Aus unserer Erfahrung stiften die vom TestMaster etablierten Prozesse einen hohen Mehrwert, verringern Zeitverluste und unterstützen beim optimalen Einsatz der vorhandenen Ressourcen.
Anforderungen an einen guten TestMaster
Wenn man sich die Tätigkeiten des TestMasters im Detail ansieht, können diese sehr herausfordernd sein, sowie einen langen Atem und Durchsetzungsvermögen verlangen. Es ist daher essentiell, dass der TestMaster bereits mehrjährige Praxiserfahrung im Softwaretest und Testmanagement gesammelt hat und somit eine authentische Seniorität mitbringt. Zudem zeichnet sich ein TestMaster durch ein hohes Maß an Empathie aus: Er/Sie geht mit viel Fingerspitzengefühl proaktiv auf alle Beteiligten zu, erkennt frühzeitig Konflikte und kann diese notfalls auch moderieren – hier kann er gut mit dem Scrum Master zusammenarbeiten. Das Stichwort Kommunikation ("Reden hilft!") nimmt hier einen besonders hohen Stellenwert ein. Ein guter TestMaster scheut sich nicht mit Widerständen umzugehen, schlechte Stimmungen und andere, kontroverse Meinungen aushalten (das klassische "dicke Fell" gepaart mit Fingerspitzengefühl). Denn nicht immer gefällt jedem Testteam das gleiche Testtool oder nicht jeder hat Lust auf regelmäßige Abstimmungstermine. Eine passende Haltung und eine gute Portion Erfahrung sind somit bereits ein gutes Fundament für einen erfolgreichen TestMaster.
Wie kommt der TestMaster ins Projekt?
Kurz gesagt: der TestMaster lohnt sich immer! Am besten ist es, wenn er/sie so früh wie möglich in das Projekt einbezogen wird. Und das nicht erst, wenn der Test kurz vor dem Start steht, sondern bereits in der Planung und im Requirements Engineering. Ist das Projekt bereits weiter fortgeschritten, lohnt sich der Einsatz dennoch. Auch wenn sich ein TestMaster bei einer kleinen Anzahl an Scrum-Teams rechnen kann, sein volles Potenzial entfaltet er in großen, komplexen Projekten mit Testaktivitäten in verschiedenen Teams, verschiedenen Dienstleistern und hybriden Vorgehensmodellen. Wir konnten bei besonders komplexen Projekten auch schon ein ganzes Team von TestMastern zum Einsatz bringen. Sehr gut geeignet ist der TestMaster aus unserer Sicht auch im SAFe-Umfeld (Scaled Agile Framework), da hier gerade in der mittleren Ebene kein Ansprechpartner für Test-Themen oder Qualitätssicherungsaspekte berücksichtigt wurde.
In allen Fällen ist jedoch zu bedenken, dass sich der Erfolg des TestMasters nicht über Nacht zeigt. Bis der TestMaster ein Netzwerk aufgebaut, Prozesse etabliert und Strukturen implementiert hat, können mehrere Sprints vergehen. Gleichzeitig zeigt aber unsere Erfahrung, dass sich diese Mühen und Aufwände lohnen.
Als Success-Story zum TestMaster gibt es noch folgendes zu berichten: Bei einem unserer Kunden hatten wir für ein großes internationales Projekt ein ganzes Team von TestMastern im Einsatz. Die von den TestMastern für das Projekt etablierten Prozesse, sowohl im Bereich Testumgebungsmanagement, übergreifendes Fehlermanagement, Coaching und Umsetzung agiler Testmethoden und neuer Automatisierungsansätze als auch die Mitwirkung und Unterstützung der TestMaster am Freigabeprozess, wurden vom Kunden als so großer Mehrwert angesehen, dass diese Prozesse mittlerweile unternehmensweit eingesetzt werden.
Wie werde ich TestMaster?
Neben der praktischen Erfahrung als Tester und bestenfalls als Testmanager empfehlen wir, sich zu den Themen, die speziell die Rolle des TestMasters betreffen, gezielt weiterzubilden. Dies kann zum einen im Selbststudium erfolgen, in dem man sich überlegt, welche Aufgaben der TestMaster innehat und sich entsprechendes Material zu suchen. Zum anderen lohnt sich hier ein Blick auf die Weiterbildung zum TestMaster. Wenn Du mehr über den TestMaster erfahren willst, hör mal in den Podcast zu genau diesem Thema: "Der TestMaster hebt ab - was gibt es Neues?" [1]