Remote-Mob-Testing: Anleitung für agile Qualitätssicherung
Agile Entwicklerteams testen heute anders: nicht mehr am Ende ihres Entwicklungsprozesses, wie das beim Wasserfallmodel üblich war, sondern parallel zur Entwicklung. Sie integrieren damit die Qualitätssicherung ganzheitlich in den Entwicklungsprozess. Automatisierte Tests – zum Beispiel Unit- und API- oder UI-Tests – ergänzen dabei das manuelle Testing. Während automatisierte Tests immer wieder die Grundfunktionalität einer Software sicherstellen, erforschen die Teams mit manuellen Tests Grenzfälle und unbekannte Risiken. Gleichzeitig liefern manuelle Tests während des Entwicklungsprozesses sehr schnell Feedback hinsichtlich der Softwarequalität.
Doch wie müssen manuelle Tests konkret aussehen, um möglichst wertvolles Feedback zu liefern? Eine effektive Methode dafür ist das sogenannte „explorative Testen“. Jeder Mensch ist von Natur aus ein Forscher (Explorer). Wenn wir zum Beispiel eine neue Stadt besuchen, erkunden wir die kleinen Gassen, testen unterschiedliche Cafés und besuchen am letzten Tag das, was uns am besten gefallen hat. Hören wir ein lautes Geräusch, drehen wir uns instinktiv um, um herauszufinden, ob uns eine unbekannte Gefahr droht. Wir erforschen unsere Welt – ob wir nun alleine zu Hause sind, mit unserer besten Freundin shoppen gehen oder mit der Clique einen Ausflug machen. Explorativ zu testen, ist damit eine intuitive Methode, bei der Lernen, Testdesign sowie Testausführung gleichzeitig stattfinden und das gewonnene Wissen direkten Einfluss auf den nächsten Test hat.
Explorative Tests lassen sich allein, zu zweit oder in der Gruppe – hier „Mob“ genannt – ausführen. Ebenso wie beim agilen Mob-Programming testen alle Teammitglieder beim Mob-Testing dasselbe Feature zur selben Zeit am selben Computer und damit auch am selben Ort. Das hat einen entscheidenden Vorteil: Denn auch wenn agile Entwicklungsmethoden immer häufiger Anwendung finden, ist vielen Entwicklern noch nicht voll bewusst, dass auch sie für die Softwarequalität verantwortlich sind. Gemeinsam zu testen und dabei Wissen über eine gemeinsame Plattform auszutauschen, stärkt das Bewusstsein für die Qualität und auch die Kompetenz zum Testen im gesamten Team. Dabei empfiehlt sich folgendes Setup:
- Eine Person des Mobs übernimmt in der Rolle des Drivers die physischen Aufgaben wie das Bedienen der Tastatur.
- Die restlichen Mitglieder des Mobs übernehmen die mentalen Aufgaben. Sie diskutieren, rezensieren und geben Anweisungen an den Driver.
- Oft gibt eine vorab erstellte sogenannte „Test-Charta“ eine grobe Orientierung für eine explorative Mob-Testsession vor.
- Nach einer Zeitspanne von fünf bis zehn Minuten wechselt ein anderes Mitglied des Mobs in die Rolle des Drivers.
Remote-Mob-Tests vorbereiten: Hard- und Software
Durch Corona ins Homeoffice gezwungen, erkennen viele Softwarefirmen, dass die Arbeit von zu Hause auch Vorteile hat. So lassen sich zum Beispiel Kosten wie Strom- und Mietzahlungen einsparen. Zudem steigt die Produktivität im Durchschnitt. Auch für die Mitarbeiter ergeben sich Vorteile. Sie können sich ihre Zeit freier einteilen, haben mehr Zeit für die Familie und können im Pyjama arbeiten, wenn sie wollen. Einen dauerhaften Umstieg aufs Homeoffice können sich daher immer mehr Firmen vorstellen. Doch wie soll ein Mob dann noch am selben Computer und Ort testen? Ganz einfach: mittels Remote-Mob-Testing. Hier ersetzt ein virtueller Arbeitsraum den realen. Mitarbeiter kommen also am selben virtuellen Ort zusammen, um zu testen. Diese Form des Testings stellt das Team jedoch vor zusätzliche Herausforderungen. Dazu gehört zum Beispiel die Wahl geeigneter Soft- und Hardwarelösungen. Außerdem ist die Kommunikation schwieriger, und ein Teamgefühl stellt sich auch nicht so leicht ein. Daher brauchen Unternehmen hier neue Strategien.
Zunächst ist die Wahl eines geeigneten Kommunikationstools unabdingbar. Namhafte Lösungen sind zum Beispiel Microsoft Teams, Zoom, Teamviewer, Skype oder Big Blue Button. Dabei sollte jedes Team zunächst seine Anforderungen an ein solches Werkzeug definieren und dann durch Evaluation auswählen. Wichtige Aspekte für die Evaluation können zum Beispiel folgende Punkte sein:
- Screensharing-Option
- Kontrollübergabe-Funktion
- Tonqualität
- Videofunktion
- Meldefunktion
Open-Source-Verfügbarkeit
Wo das Team zuvor denselben Computer nutzte, teilt es beim Remote-Testing den Bildschirm. Eine gut funktionierende Screensharing-Option ist also zwingend. Zudem sollte sich die Kontrolle reibungslos übergeben lassen, damit jedes Teammitglied schnell und einfach zum Driver werden kann. Es ist aber auch möglich, immer den Bildschirm des jeweiligen Drivers zu teilen. Dann muss jedoch jeder Teilnehmer Zugriff auf den aktuellen Softwarestand und die Testinstanz haben.
Explorative Test-Mobs nutzen darüber hinaus ein physisches Whiteboard, um beispielsweise eine Test-Charta für den genauen Ablauf zu erstellen oder Ideen und Vorschläge zum Testen festzuhalten, die sich nicht alle gleichzeitig umsetzen lassen. Einige Kommunikationstools verfügen auch über integrierte Whiteboards. Ansonsten gibt es natürlich ebenfalls eine Reihe von externen Angeboten, wie zum Beispiel Murel, Miro oder Powerpoint. Auch hier empfiehlt sich eine gute Evaluation. Wichtig ist zum Beispiel, dass alle Mob-Mitglieder das digitale Whiteboard jederzeit einsehen und bearbeiten können.
Ein weiteres Werkzeug, das für eine Remote-Session von Nutzen sein kann, ist ein Mob-Timer. Nachdem die Namen aller Teilnehmer und die entsprechenden Zeitintervalle eingetragen worden sind, übernimmt es die Koordination der Driver-Wechsel. Online sind verschiedene kostenlose Tools wie etwa mobtimer.zoeetrope.com und agility.jahed.dev verfügbar.
Einer der wichtigsten Erfolgsfaktoren für die Durchführung einer Remote-Testsession ist die Kommunikation zwischen den Kollegen. Zumindest die Tonqualität lässt sich durch geeignete Hardware wesentlich unterstützen. Hochwertige Headsets sind deshalb von Vorteil, zum Beispiel von Jabra oder auch Sennheiser. Damit sich Gesprochenes von Gestik und Mimik unterstützen lässt, sollten alle Mob-Mitglieder zudem eine gute 4K-Kamera haben, etwa von Logitech. Doch die richtige Soft- und Hardware alleine reichen nicht aus, um den Erfolg einer Remote-Mob-Testing-Session zu garantieren.
Gemeinsame Regeln
Zunächst sollte sich das Team auf Verhaltensregeln während einer Remote-Session einigen, um harmonisch und effektiv zusammenzuarbeiten. Wichtig ist zum Beispiel, dass die Teilnehmenden ihr Mikrofon stumm schalten, wenn sie gerade nichts mitteilen wollen. So lassen sich störende Hintergrundgeräusche vermeiden. Dagegen sollte die Kamera immer eingeschaltet bleiben, weil das das Zusammengehörigkeitsgefühl fördert. Um einen respektvollen Umgang miteinander zu unterstützen, sollten sich alle gegenseitig aussprechen lassen und sich ausschließlich auf die Session konzentrieren. Solche und ähnliche Verhaltensregeln kann entweder der Session-Owner vorab festlegen oder die Gruppe tut dies gemeinsam. Zu diesem Zweck können zum Beispiel alle Teilnehmenden den Satz „Wir arbeiten am besten zusammen, wenn …“ vollenden. Ein gemeinsames Ziel einer Session kann ebenfalls motivieren und eine gemeinsame Richtung vorgeben. Mögliche Ziele eines Remote-Testings sind zum Beispiel: Fehler finden, ein gemeinsames Qualitätsverständnis aufbauen, neue Teammitglieder einweisen oder Wissen teilen, um Monopole und den Busfaktor (also das Risiko des Projektscheiterns) zu minimieren.
Mob-Testing hat Vorteile, weil es …
- die gemeinschaftliche Verantwortung für Qualität stärkt.
- den Busfaktor durch agilen Wissensaustausch auflöst.
- die Entwickler für ihre Verantwortung in puncto Qualität sensibilisiert.
- T-Shaping von verschiedenen Rollen im Team ermöglicht.
- den Prozess ganzheitlich optimiert.
- den Onboarding-Prozess vereinfacht und inkludiert.
- inkludierte Teamevents erlaubt.
Ein guter Wegweiser durch ein exploratives Mob-Remote-Testing kann die bereits erwähnte Test-Charta sein. Sie beschreibt den Bereich, die Werkzeuge und die Information, die der Test-Mob gewinnen will. Der Fokus darf dabei – wie bei einer guten User-Story – nicht zu weit und nicht zu eng gefasst sein. Gegebenenfalls kann das gesamte Team eine solche Charta zu Beginn einer Testsession gemeinsam erstellen und auf dem digitalen Whiteboard festhalten. Um Bereiche zu identifizieren, die das Team testen kann, bieten sich Fragen wie „Welche Bereiche in der Anwendung kennen wir noch nicht (gut)?“ oder auch „Mit welchem Bereich haben wir die größten Bauchschmerzen?“ an. Diese Bereiche bieten meist viel Potenzial zum Testen. Eine Alternative ist eine Testing-Tour, die zum Beispiel wie eine Museumstour gestaltet sein kann. Die Test-Charta gibt dann etwa vor, alle alten Bereiche der Software zu betrachten. Schließlich sollte der Test-Mob auch noch die Timebox für die Session inklusive gemeinsamer Pausen planen.
Remote-Mob-Tests durchführen: Am besten mit Moderator
Wenn der Test-Mob aus mehr als fünf Teilnehmenden besteht, tauchen schnell viele Ideen und Instruktionen gleichzeitig auf. Da ist ein Moderator hilfreich, der etwa alle Ideen auf dem virtuellen Whiteboard sammelt und die Anweisungen an den Driver koordiniert. Außerdem sollten die Mob-Mitglieder die Hand-heben- oder Meldefunktionen nutzen, die viele Kommunikationskanäle anbieten. Ein Moderator kann aber auch dann sinnvoll sein, wenn das Team zum ersten Mal verteilt zusammenarbeitet und noch wenig Erfahrung mit der Methode des explorativen Testens hat. Er kann ruhigere Teilnehmer motivieren, ihre Gedanken und Fragen zu äußern, indem er zum Beispiel Fragen stellt wie „Teilnehmer eins, du guckst so kritisch. Siehst du das anders, oder hast du etwas nicht verstanden?“ oder auch „Teilnehmer zwei, das habe ich jetzt nicht verstanden, kannst du das noch mal genauer erklären?“. Dadurch sorgt ein Moderator für eine hochwertige Kommunikation, die nicht nur ein gemeinsames Qualitätsverständnis, sondern auch das Teambuilding fördert.
Eine kurze Retrospektive ist ein guter Abschluss für eine erfolgreiche Session. Hierbei tauschen sich die Mob-Mitglieder über die gewonnenen Erkenntnisse, Fehler und unerwartete Verhaltensweisen der Anwendung aus. Sie überlegen auch, wie sich die Qualität der Test-Sessions verbessern ließe.
Fazit
Das Mob-Testing bietet einem agilen Entwicklungsteam große Vorteile. Dennoch fällt es vielen anfangs schwer, die intuitive Methode umzusetzen – vor allem in verteilten Teams. Trotzdem lohnt sich der Aufwand angesichts der zahlreichen Vorteile. Um einem Team deshalb einen sanften Einstieg in die Mob-Kultur zu ermöglichen, können verteilte Teams zunächst einfache Aufgaben im Mob erledigen – etwa ein Kreuzworträtsel lösen oder ein Online-Puzzle zusammenfügen. Danach fällt vielen der Einstieg ins explorative Mob-Testen deutlich leichter. Ist ein Team darin erst einmal versiert, kann es den Ansatz auch auf andere Bereiche der Softwareentwicklung übertragen. So lässt sich auch das gemeinsame Automatisieren – etwa von Unit-Tests – mit dem Test-Driven-Ansatz durchführen.
Dazu kommt, dass viele Firmen bereits ein neues Arbeitsmodell mit mehr Homeoffice planen – unter anderem auch, um neue Mitarbeiter unabhängig vom Standort zu gewinnen. Ein Mischmodell mit remote und vor Ort arbeitenden Kollegen wird in Zukunft für viele Softwareentwickler also Alltag sein. Beim Mob-Testing sollten dann alle standardmäßig remote teilnehmen, um in einem verteilten Team gut zusammenzuarbeiten und eine Informationsasymmetrie zu vermeiden.
Spannendes Thema. Ich hoffe, nur, dass es das User Testing nicht ersetzt. Denn: das Entwicklerteam ist ungleich der Zielgrunnde / Endanwendergruppe. Zudem sind wir alle nur Menschen; wenn ich mein eigenes Produkt teste, bin ich befangen. Wenn ich Kollegen*Innen Feedback geben, sage ich selten offen und ehrlich, dass Ihr Baby hässlich ist.
LG