Der Faktor Mensch: Crowdtesting in der Agilen Entwicklung
Testautomatisierung bewältigt eine Vielzahl von Herausforderungen – ein Mythos jedoch ist der Glaube, dass die Qualität der Software alleine durch Testautomatisierung sichergestellt werden kann. Heutzutage sollte man auch das Feedback von echten Nutzern einbeziehen und den Faktor Mensch bei der Entwicklung digitaler Produkte berücksichtigen – erfahren Sie hier, welche Möglichkeiten es gibt, seine Kunden und Fans zu einem Teil der digitalen Produktentwicklung zu machen.
Testautomatisierung in agilen Projekten
Die Digitalisierung bringt tiefgreifende Veränderungen und Unternehmen müssen sich heutzutage immer noch schneller anpassen. Viele Unternehmen organisieren sich aber nach wie vor hierarchisch und traditionell prozess- und projektorientiert. Doch die agile Entwicklung von Software (Scrum, Kanban, Design Thinking, User Experience, etc.) hat innerhalb der letzten Jahre nicht umsonst an großer Popularität gewonnen – Entwicklungsgeschwindigkeit und Qualität der Software können bei einem erfolgreichen Einsatz schnell gesteigert werden. Die wesentlichen Merkmale einer agilen Entwicklung sind ihre Schnelligkeit und ein hohes Maß an Flexibilität. Zeit und Ressourcen sind begrenzt und daher ist es oft schwierig, Tests in Sprints zu integrieren, auch wenn dies unerlässlich ist, um die Qualitätsanforderungen der Benutzer zu erfüllen.
Agile Entwicklungsprozesse sollen dabei die Transparenz und Flexibilität erhöhen und zu einem schnelleren Einsatz der entwickelten Systeme führen. Damit agile Strukturen erfolgreich sind, müssen alle Beteiligten eng zusammenarbeiten und ständig kommunizieren. Nur dann erhöht sich die Anpassungsfähigkeit von Unternehmen und die Agilität bereitet den Weg für eine gelungene Digitalstrategie. Agile Softwareentwicklung stellt aber nicht nur an die Entwicklungs– und Testteams spezielle Herausforderungen, sondern auch an die Testautomatisierung – u. a. verlangt agile Softwareentwicklung zwingend nach agilen und möglichst vollautomatisierten Tests, die ein schnelleres Ausliefern ermöglichen. Außerdem wird ein ausgereiftes Automatisierungsframework ausschlaggebend, damit die Teams neue Testfälle schnell skripten und hinzufügen können.
In jedem Fall sind automatisierte Tests aber mit einem erheblichen Aufwand verbunden. Die Zeitersparnisse, die in der Praxis erreicht werden, können diesen aber natürlich ausgleichen. Agile Methoden eignen sich aber nicht für jedes Entwicklungsprojekt. Sie funktionieren nur im Zusammenspiel mit einer agilen Unternehmenskultur. Die stärkere Einbindung des Kunden und die Selbstorganisation der Entwicklerteams sind Gefahren, die einer erfolgreichen Umsetzung oftmals im Wege stehen.
Crowdtesting – Das Testen von Software mithilfe der Internetgemeinde
Damit die Qualität unter diesen Voraussetzungen dennoch erstklassig ist, benötigen Unternehmen ein ebenso agiles und professionelles Test-Management, bei welchem auch der menschliche Faktor berücksichtigt wird. Egal, ob agile Entwicklung oder Wasserfallmodell – Testing ist ein fester Bestandteil des Software Development Lifecycles und Crowdtesting kann bei beiden Methoden eine sinnvolle Ergänzung sein. Bei der Auslagerung von Testprojekten an die Internetgemeinde ist es wichtig, die Zuständigkeiten und Verantwortlichkeiten klar zu definieren und Crowdtesting sinnvoll in die Gesamtstrategie einzubetten. Auch wenn die Crowd schnell, flexibel und sehr kurzfristig einsatzbereit ist, so muss die Testing-Phase dennoch von Grund auf realistisch geplant und die passende Testart für das jeweilige Projekt bzw. die jeweilige Entwicklungsstufe gefunden werden. Dabei gilt es insbesondere, ausreichend Zeit für Korrekturen einzuplanen. Denn mit dem Auffinden von Problemen und Fehlern alleine ist es natürlich nicht getan.
Die richtige Vorbereitung und Planung spielt beim Testing methodenübergreifend eine zentrale Rolle. Beim Crowdtesting ist sie jedoch umso wichtiger, da die Tester remote arbeiten. Damit die Tester ihre Aufgaben schnell und effizient erledigen können und ein reibungsloser Prozessablauf gewährleistet ist, muss eine benutzerfreundliche onlinebasierte Plattform bzw. Infrastruktur für die Testabwicklung zur Verfügung stehen. Die Anforderungen an die Tester sind dabei von Projekt zu Projekt unterschiedlich. Um die passenden Tester auszuwählen, sollten möglichst viele relevante Informationen über diese zur Verfügung stehen. Während bei Usability-Tests Personen ausgewählt werden, die den Merkmalen der potentiellen Zielgruppe entsprechen, sind die demographischen Faktoren bei funktionalen Tests kaum von Bedeutung. Hier sind vielmehr die Erfahrung und die zur Verfügung stehenden Geräte entscheidend.
Einer der kritischsten Faktoren für die erfolgreiche Durchführung von Remote-Tests ist aber die Dokumentation der Ergebnisse. Die Tester müssen ihr Vorgehen so ausführlich und präzise wie möglich beschreiben. Die eingereichten Berichte und Bugs müssen im Anschluss vom Testleiter auf Vollständigkeit, Nachvollziehbarkeit sowie Qualität überprüft werden. Haben die Tester wirklich auf den angegebenen Systemen getestet? Wurden alle Arbeitsschritte abgearbeitet? Welchen Schweregrad hat ein Bug? Der Erfolg von crowdbasierten Softwaretests hängt maßgeblich von der richtigen Vorbereitung und einer strukturierten Durchführung ab. Gerade bei unerfahrenen Testern ist es zudem essentiell, diese entsprechend zu schulen und zu motivieren. Nur wer die nötigen Rahmenbedingungen schafft und die Besonderheiten der Remote-Situation beachtet, kann letztlich die zahlreichen Vorteile dieser Methode nutzen. Wie eine erfolgreiche Durchführung von Remote-Tests in der Praxis aussehen kann, erfahren Sie im folgenden Praxisbeispiel.
Individueller Testaufbau mithilfe der Crowd
Neue digitale Services verändern die Automobilbranche und die Nachfrage nach vernetzten Fahrzeugtechnologien wächst stetig. Connected-Car-Apps bieten heute eine Vielzahl nützlicher Funktionen – Nutzer erhalten zahlreiche Möglichkeiten zur Navigation, dem Tracking der Fahrt sowie dem Abrufen von Fahrzeugdaten, z. B. während und im Anschluss an eine Motorrad-Tour. Die App wird dabei via Bluetooth mit dem Motorrad verbunden und spiegelt die Features auf dem TFT-Display des Motorrads wider. Der entscheidende Punkt ist hierbei das Zusammenspiel von App und Motorrad-Hardware. Crowdtesting stellt dabei eine mögliche Ergänzung zu traditionellen Testmethoden dar, da es sich auf unvoreingenommene reale Benutzer stützt.
Die Aufgabenstellung an die Tester in unserem Praxisbeispiel war kurz und einfach: Sie wurden gebeten, die Beta-Version einer neuen Connected-App in typischen Anwendungsfällen mit ihrem Motorrad zu testen. Dadurch sollten Fehler und Funktionalitätsprobleme bei Bedienung und Nutzererlebnis gefunden, sowie sämtliche auftretende Bugs aufgedeckt werden. Die Use Cases enthielten regelmäßig genutzte Anwendungsfälle wie allgemeine Einstellungen, die Verbindung von Smartphone und Motorrad über Bluetooth, die Navigation, das Abrufen von Fahrzeug- und Tour-Daten sowie das eigenständige Entdecken der App. Die Tests liefen regelmäßig und unter realen Bedingungen ab. Im Rahmen parallel ablaufender Bug-Tests wurde die App mit simulierten Daten gefüllt, um häufig auftretende Fehler finden zu können sowie Lokalisierungstests auf unterschiedlichen Smartphones durchzuführen. Die Bereitstellung der Ergebnisse erfolgte dabei über eine direkte Schnittstelle zum JIRA-System der App-Entwickler, wodurch Bugs im Rahmen der agilen Arbeitsumgebung der Entwickler direkt behoben werden konnten.
Aufgrund besonderer Anforderungen waren die Tester-Rekrutierung und das Community-Management in diesem Fall eine besondere Herausforderung. Gemeinsam mit dem App-Entwickler wurde die Crowd über diverse Online-Kanäle wie einschlägige Foren, Facebook-Gruppen und Motorrad-Websites angesprochen. Der Kunde trug seinen Teil zum Projekt bei, indem er Nutzerinnen und Nutzer einband, welche sich über Kanäle wie z. B. die technische Kundenberatung meldeten.
In Remote-Interviews konnten den Testern bereits vor dem Release App-Screens der neuen Version gezeigt und somit zusätzlicher Input und Verbesserungsvorschläge eingeholt werden. Bei dieser Art von Interviews können Tests live mitverfolgt werden, was ungefilterte Einblicke in die Gedanken der Tester ermöglicht. Durch die parallele Echtzeit-Kommunikation mit den Testern können gezielt Fragen gestellt und unmittelbares Feedback gesammelt werden.
Tipps für erfolgreiche Crowdtests
Sollten Sie nun mit dem Gedanken spielen, Crowdtests in Ihren Entwicklungsprozess einzubinden, gilt es einige Dinge im Vorhinein zu bedenken.
1. Die richtigen Tester
Zunächst einmal ist es wichtig, dass Sie einen geeigneten Pool von Testern aufbauen. Denn Ihre eigenen Mitarbeiter scheiden hier in der Regel schon allein aufgrund der meist herrschenden Betriebsblindheit aus. Je nach Testziel sollten Sie idealerweise auf Tester zurückgreifen, die Ihrer anvisierten Nutzergruppe entsprechen. Nur so erhalten Sie qualitativ hochwertiges und vor allem relevantes Feedback. Bedenken Sie auch, dass Produktanpassungen nicht allein auf der Meinung von ein oder zwei Testern basieren sollten. Eine gewisse "kritische Menge" an Testern ist hier auf jeden Fall ratsam. In der Regel empfehlen wir, Tests nicht mit weniger als 10 Testern durchzuführen.
2. Test(er)management
Der Aufwand bezüglich Zeit und Ressourcen, die für Crowdtests benötigt werden, ist nicht zu unterschätzen. Zunächst müssen ausführliche und klare Testskripte geschrieben werden, die die Tester von zu Hause aus erledigen können und die keinen großen Raum für Interpretationen zulassen – außer natürlich, Sie führen einen explorativen Test durch, bei dem die Tester Ihre Anwendung auf eigenen Faust erkunden sollen. Außerdem sollte es mindestens einen Verantwortlichen geben, der für Fragen und Anmerkungen der Tester bereitsteht und diese zeitnah beantwortet. Ansonsten kommt es zu unnötigen Verzögerungen im Testablauf. Außerdem sollten Sie sich auch um eine faire Entlohnung kümmern.
3. Zeit- & Ressourcenkontingent zum Beheben von Bugs und Umsetzen des Testerfeedbacks
Bedenken Sie auch, dass Sie im Anschluss an den Test – oder bereits während des noch laufenden Tests – genug Zeit einplanen müssen, um das Testerfeedback entsprechend umzusetzen. Gerade bei kurzen Sprints darf dieser Punkt nicht vernachlässigt werden. Während Bugs oftmals schnell behoben sind, so bedarf die Umsetzung von ausführlichem Usability-Feedback beispielsweise deutlich mehr Zeit und Ressourcen. Auch sollten Sie daran denken, Ihre Änderungen mithilfe von Regressionstests erneut zu überprüfen. Denn die Gefahr, dass das Fixen eines Bugs einen neuen Fehler hervorruft, sollte nicht außer Acht gelassen werden.
Alles in allem gibt es viel zu bedenken, wenn Sie Crowdtesting in Ihren Development Lifecycle einbinden wollen – doch dies sollte Sie nicht abschrecken, denn die Vorteile überwiegen den Aufwand um ein Vielfaches und ebnen Ihnen den Weg, Software zu entwickeln, die Ihre Kunden gerne nutzen.