Ausgelagerte Testmethode in der Qualitätssicherung

Crowdtesting: Die Massenjagd nach Fehlern
Keine Kommentare

Schon wieder eine neue Methode in der Qualitätssicherung, denkt sich der ein oder andere und hat dabei nicht ganz unrecht. Doch gerade jetzt schreit der Markt nach Lösungen, um hochwertige Software auf dem Markt zu platzieren und auf unzähligen Devices zu sichern. Hierfür ist Crowdtesting ein erprobter Ansatz mit viel Potenzial für all diejenigen, die sich mit Softwaretests auseinandersetzen.

Crowdtesting bezeichnet das in der Regel kostenpflichtige Testen von Software durch eine breite Masse von freien, unabhängigen Testern über das Internet. Crowdtesting ist so etwas wie eine ausgelagerte Maßnahme zur Qualitätssicherung. Sie lässt sich flexibel ab dem ersten Klickdummy im Softwareentstehungsprozess einsetzen. Ziel ist es, vornehmlich Anwendungssoftware auf allen relevanten Endgeräten und Betriebssystemausprägungen zu testen.

Beim Crowdtesting handelt es sich um eine Anlehnung an den Begriff Crowdsourcing (Crowd und Outsourcing), den Jeff Howe erstmals 2006 in seinem Artikel „The Rise of Crowdsourcing“ vorstellte. Erste Versuche einer Begriffsbestimmung der Testmethode sowie eine Häufung von Beiträgen zu diesem Thema gab es zwischen 2009 und 2010.

Der professionelle Einsatz dieser Testmethode als Dienstleistung entstand Ende 2010 und fand zu Beginn in der Gründerszene Anklang. Durch die wachsende Anzahl von Devices auf dem Markt gewinnt Crowdtesting für Unternehmen, die Anwendungssoftware entwickeln, immer mehr an Bedeutung, und das insbesondere in der Mobile-Entwicklung. Abbildung 1 zeigt die drei wichtigsten Teilnehmer des Crowdtestings.

Abb. 1: Teilnehmer am Crowdtesting (Quelle: adesso AG)

Der Anbieter und seine Plattform

Für die Durchführung von Crowdtests stehen zahlreiche Anbieter zur Verfügung. Sie widmen sich entweder ausschließlich dieser Dienstleistung oder bieten sie als Zusatzleistung an. Populäre Vertreter sind unter anderem:

  • RapidUsertests (Berlin, Deutschland)
  • Applause (Framingham, USA)
  • Passbrains (Zürich, Schweiz)
  • BugFingers (Cheltenham, Großbritannien)
  • 99tests (Bangalore, Indien)
  • Testbirds (München, Deutschland)

Testbirds ist mit 150 000 registrierten Testern und 380 000 Geräten in allen Teilen der Welt eine der größten Crowdtesting-Plattformen. Die weltweit verstreuten Tester können somit die Anwendungssoftware in unterschiedlichen Sprachen und auf mannigfaltigen Devices prüfen.

Der Anbieter und seine Plattform fungieren hierbei als zentrale Kommunikationsstelle zwischen den Testern und dem Auftraggeber:

  • Anbieter und Tester kommunizieren über eine webbasierte Plattform, die alle notwendigen Funktionalitäten bereitstellt. Je nach Bedarf unterstützt ein Projektmanager auf Anbieterseite, z. B. in der Qualitätssicherung, die von den Testern erbrachten Ergebnisse und dient als Anlaufstelle für offene Punkte.
  • Anbieter und Auftraggeber benutzen ebenfalls die Webplattform für die Kommunikation sowie die Möglichkeit, direkte Absprachen zu treffen. Diese Funktion übernimmt in der Regel der Testmanager des Auftraggebers. Absprachen und Festlegungen beinhalten unter anderem Rahmenbedingungen wie Einschränkungen, Devices oder Betriebssysteme, unter denen die Tests durchgeführt werden. Der Testmanager begleitet somit den Crowdtesting-Prozess vom Anfang bis zum Schluss.
  • Tester und Auftraggeber, in diesem Fall die Entwickler des Auftraggebers, treten nur selten –und wenn, dann indirekt – über Beiträge auf den Plattformen zu den gefundenen Defects (Fehlern) in Kontakt.

Der Tester und seine Heterogenität

Tester repräsentieren alle Bevölkerungsschichten, Interessengruppen, Kultur- und Religionszugehörigkeiten, Altersklassifikationen, Menschen mit unterschiedlichen technischen Affinitäten, egal ob professionell oder aus Spaß an der Thematik. Daher gibt es theoretisch keine Einschränkungen, wer sich als Tester qualifizieren kann. In der Praxis gibt es natürlich Rahmenbedingungen, die erfüllt sein müssen wie z. B. die Geschäftsfähigkeit einer Person.

Diese Personen haben die Möglichkeit, sich auf einer Crowdtesting-Plattform zu registrieren, bis ein Testobjekt in Auftrag gegeben wird. Erfüllen die Tester die Kriterien und bringen die passende Testumgebung (Device) mit, können Interessenten sie für einen Testlauf anfragen. In der Praxis werden Tester z. B. nach Erfahrung oder häufiger Teilnahme klassifiziert und in Folge dessen auch ausgewählt. Fehler, die sie bei einer Beauftragung finden, müssen sie entsprechend dokumentieren und aufzeichnen.

Die Tester bekommen eine Vergütung für die Leistung, die sie erbringen. Dabei variiert der Verdienst von Anbieter zu Anbieter und orientiert sich in der Regel an der Anzahl der gefundenen Defects, gestaffelt nach Risikoklassen. Weitere Faktoren, die sich auf die Bezahlung auswirken können, sind die Erfahrung der Tester sowie die Dauer ihrer Plattformzugehörigkeit.

Der Auftraggeber und sein Softwareprodukt

Als Auftraggeber kommen alle Personen und Unternehmen in Frage, die Anwendungssoftware entwickeln oder entwickeln lassen. Dabei liegt der Hauptfokus entweder beim Auffinden von Fehlern oder in der Anwender- und Marktanalyse durch die Rückmeldung von Usability-Vorschlägen. Weiterhin erhofft sich der Auftraggeber eine Vielzahl von Vorteilen, die im Folgenden gesondert betrachtet werden.

Vorteile des Crowdtestings für den Auftraggeber

Das Internet of Things (Internet der Dinge, kurz IoT) und speziell die zu erreichende Testabdeckung auf den unzähligen mobilen Endgeräten bewirken, dass Crowdtesting immer mehr Zuspruch findet. Selbst große Softwareschmieden mit einer mächtigen QS-Mannschaft sind nicht mehr in der Lage, den Markt an Devices befriedigend mit Qualität zu beliefern. Immer mehr rückt die Verfügbarkeit von Software auf vielen verschiedenen Geräten in den Vordergrund und kennzeichnet einen wesentlichen Wettbewerbsvorteil. Man wird auf Dauer nicht mehr in der komfortablen Lage sein, Devices und somit wichtige Marktanteile auszuschließen, um sie der Konkurrenz zu überlassen. Daher stellt sich die zentrale Frage, wie möglichst viele Devices mit unterschiedlichen Ausprägungen und beliebigem Betriebssystem getestet werden können, die morgen schon wieder veraltet sind.

Zusammengefasst ergeben sich sechs Merkmale, die klar für die Nutzung von Crowdtests sprechen (Abb. 2).

Abb. 2: Die sechs Hauptmerkmale eines Crowdtests (Quelle: adesso AG)

Flexibilität: Während des gesamten Softwarelebenszyklus ist es rein theoretisch möglich, einen Crowdtest zu platzieren. Dennoch ist abzuwägen, ob das sinnvoll ist. Nicht jede Phase ist hierfür geeignet. Der klassische Einsatz von Crowdtests ist das funktionale Testen für die Suche nach Fehlern. In früheren Phasen kann ein Crowdtest auf Klickdummys angewendet werden, um Usability-Tests durchzuführen oder Marktanalysen zu betreiben. Eine hohe zeitliche Flexibilität zeigt die Crowd in der Ausführung der Tests, die sich jederzeit durchführen lassen. So kann der Auftraggeber zum Beispiel die über das Wochenende gefundenen Defekte ohne Zeitversatz zum Wochenbeginn bereits einsehen und in die Behebung gehen. Die Tests können entweder explorativ, d. h. frei von Vorgaben, oder auch unter Vorgaben bis hin zu strengen Rahmenbedingungen durchgeführt werden.

Kostenreduktion: Grundsätzlich kann man davon ausgehen, dass in einer großen Crowd alle notwendigen Devices, deren Versionen und Bauformen, die für den Markt Relevanz besitzen, vertreten sind. Der Kunde erspart sich dadurch das Bereitstellen eines aufwendigen Gerätepools und somit die Kosten für Verwaltung, Wartung und Versionierung. Weiterhin werden durch das Auslagern der Testdurchführung interne Ressourcen in Form von sonst dauerhaft gebunden Mitarbeitern frei.

Reale Marktbedingung: Ein Endanwender sollte die Anwendung testen, unverfälscht und ohne Bindung an Ort und Zeit. Das spiegelt den realen Markt am besten wieder. Um Neutralität beim Testen zu gewährleisten, sollte der Tester unabhängig beschäftigt sein. Ein Crowdtester erfüllt diese Anforderungen. Er testet, wenn es sich ergibt, sei es auf dem Sofa, beim Spazierengehen oder im Bus unter schwankenden Empfangsbedingungen. Es spiegelt sich also ein Feedback von echten Endanwendern in realen Szenarien wider.

Hohe Diversifikation der Endgeräte: Das Crowdtesting zeichnet sich dadurch aus, dass rein theoretisch alle Endgeräte und deren Kombinatorik mit anderen Einflussfaktoren, wie z. B. Betriebssysteme, Browser und Displaygröße, zur Verfügung stehen. Dadurch ist es möglich, die Kompatibilität einer Software zu möglichst vielen Endgeräten zu testen und letztendlich zu gewährleisten. Die Stärke des Crowdtestings ist die Möglichkeit, allumfassend testen zu können. Mit traditionell angewandten Testmethoden (Regressions-, Smoke-, Funktionstests usw.) ist dies in der Zeit des IoT nicht mehr leistbar bis unmöglich.

Erfahrene und unvoreingenommene Tester: Die Erfahrungen, die die Tester mitbringen, sind breit gefächert. Einige verdienen damit ihren Lebensunterhalt, andere machen es sporadisch aus Spaß oder reiner Neugier. So hält sich die Waage aus erfahrungsorientiertem Testen und dem explorativen, naiven Vorgehen. Die Unvoreingenommenheit der Tester, die das International Software Testing Qualifications Board in seinem ISTQB-Standard fordert, ist gewährleistet. Die Tester sind nicht am Entwicklungsprozess beteiligt.

Schnelles und präzises Feedback: Das Dokumentieren der Defects erfolgt über ein Template und wird durch Videoaufzeichnungen oder Bilder ergänzt. Im Fall von Videoaufnahmen können die Defects schnell und unmissverständlich reproduziert werden. Eine direkte Rückkopplung zu den Testern ist plattformabhängig und z. B. durch eine Chat- oder Kommentarfunktion möglich. In seltenen Fällen sind die persönlichen Kontaktdaten hinterlegt. Da die Aufzeichnungen während des Testens entstehen, stehen sie fast zeitgleich auf der Plattform zur Verfügung. So lässt sich die Usability noch während der Entwicklungsphase nachbessern.

International PHP Conference 2018

Getting Started with PHPUnit

by Sebastian Bergmann (thePHP.cc)

Squash bugs with static analysis

by Dave Liddament (Lamp Bristol)

API Conference 2018

API Management – was braucht man um erfolgreich zu sein?

mit Andre Karalus und Carsten Sensler (ArtOfArc)

Web APIs mit Node.js entwickeln

mit Sebastian Springer (MaibornWolff GmbH)

Methode trifft auf Realität

Die Vorteile des Crowdtestings korrelieren unweigerlich mit dem Anbieter und seiner Plattform. Daher werden im Folgenden zusammenhängend die Nachteile, deren Ursachen und Maßnahmen zur Kompensation aus der Praxis betrachtet. Das Beherzigen der nachstehenden Punkte ist die Grundlage für den erfolgreichen Einsatz eines Crowdtests.

Keine Akzeptanz ohne Usability: Die Usability der Plattform sowie das Bereitstellen der wichtigsten und nötigsten Funktionen sind entscheidend für die Verwendung und Akzeptanz der Plattform. Ein guter Anbieter besitzt eine modularisierte Plattform, die bei Kundenwünschen eine schnelle Konfiguration ermöglicht, um nur die nötigsten Funktionen zur Verfügung zu stellen. Die Oberfläche muss Spaß machen und schnell verständlich sein. Ein langwieriger Registrierungsprozess für neue Anwender ist der erste Indikator für mangelnde Usability. Verfügt die Anwendung über zu viele Funktionen, weit verzweigte Navigationspfade und nicht enden wollende Drop-down-Menüs, ist von dieser Plattform dringend abzuraten.

Interpretationsfreie Defect-Dokumentation: Gibt es keine direkte Rückkopplungsmöglichkeit, sollte eine Dokumentation der Defects interpretationsfrei möglich sein. Für eine schnelle Reproduktion von gemeldeten Defects müssen diese interpretationsfrei dokumentiert werden. Hier empfiehlt es sich, die Erzeugung des Defects aufzuzeichnen, zum Beispiel durch ein kurzes Video. Der Grund für dieses Vorgehen ist, dass es in den seltensten Fällen eine direkte Rückkopplungsmöglichkeit zu den Testern gibt, zum Beispiel in Form einer Telefonnummer. Meistens stellt die Plattform zu jedem Defect eine Rückfragefunktion bereit, z. B. als Forum. Eine Antwort ist dabei frühestens nach drei Stunden zu erwarten, egal wie dringend die Frage ist. Die Tester sind nicht verpflichtet, außerhalb ihrer Testzeit auf Abruf bereitzustehen. Eine schriftliche Dokumentation entpuppt sich gern als unvollständig. Gibt es keine direkte Kommunikationsmöglichkeit zu den Testern, sollte geprüft werden, ob die Dokumentation als Video möglich und machbar ist. Dieses Vorgehen erspart viel Frust bei der Reproduktion und der Behebung.

Einsatz mit Bedacht: Crowdtests werden als flexible Allzweckwaffe angepriesen, was sie nicht sind. Es ist deshalb sinnvoll, Sinnhaftigkeit und Einsatzgebiet zu prüfen. Ein Crowdtest bietet sich an, wenn die Unternehmensstruktur und das vorherrschende Entwicklungsmodell ihn integrieren können. Der Test kann beispielsweise hervorragend als zusätzliche QS-Methode im V-Modell integriert werden. In agilen Entwicklungsmodellen mit dem Ziel der hundertprozentigen Testautomatisierung ist ein explorativer Crowdtest zum Ende der Entwicklung sinnvoll. Wir reden hier von der Spitze der Testpyramide. Darunter sollte die vorherrschende Methodik weiter Anwendung finden. Von einem flächendeckenden Einsatz ist abzuraten, da die anfallenden Kosten in anderen Testmethoden besser investiert sind. Weiterhin ist die Testform für einen Usability-Test, einen Code-Review oder einen funktionalen Test im Endstadium sehr gut geeignet. Dies trifft weniger für Modul- oder Integrationstests zu. Es empfiehlt sich zu prüfen, inwieweit Crowdtesting die bestehende Qualitätssicherung ergänzen, nicht aber ersetzen kann. Ein seriöser Anbieter mit Blick auf langfristige Kundenbindung wird hierzu die Gegebenheiten mit dem Kunden analysieren und passende Einsatzmöglichkeiten aufzeigen.

Eigeschränkte reale Marktbedingungen: Reale Marktbedingungen sind nur bedingt gegeben. Wer wartet bei schlechter Internetverbindung auf Ereignisse, für die er bezahlt wird? Das primäre Ziel des Testers ist es, Defects zu finden. Schließlich wird er für diese bezahlt, sofern er nicht für die Arbeitszeit vergütet wird. Daher sind die Tester darauf aus, möglichst schnell durch die Anwendung zu navigieren, um Eingaben zu erzeugen, die die Anwendung ins Straucheln bringen. Das funktioniert bestens mit einer guten Internetverbindung und in einer ruhigen Umgebung. Soll eine Anwendung, die für unterwegs konzipiert ist, unter realen Bedingungen getestet werden, sollte das Bewusstsein vorhanden sein, dass der Crowdtest in den meisten Fällen zuhause durchgeführt wird, um Performanceproblemen aus dem Weg zu gehen.

Viele Tester, viele Dubletten: Viele Tester bedeuten viele Dubletten, daher ist eine gute Betreuung durch den Anbieter essenziell. Die Tester kennen sich und die Testergebnisse untereinander nicht. Die Wahrscheinlichkeit ist somit sehr hoch, dass ein gefundener Fehler mehrfach aufgenommen wird. Hier ist der Anbieter verpflichtet, den Crowdtest durch einen Testmanager zu begleiten, der für qualitativ hochwertige Dokumentation und Ergebnisse ohne Duplikate sorgt. Der Serviceumfang des Anbieters sollte dahingehend untersucht und gegebenenfalls nachverhandelt werden.

Mehraufwand durch Crowdtests: Sie leben Scrum und vermeiden nach dem agilen Manifest unnötige Mehraufwände? Crowdtests erfordern eine Planung und Koordination und erzeugen somit Zusatzkosten. Gerade bei agilen Entwicklungsmethoden mit einer hohen Testautomatisierung (Test-driven Development) kann ein Crowdtest als explorativer Test von hohem Nutzen sein. Allerdings wird ein Koordinator oder auch Testmanager benötigt, der nicht immer in die Philosophie (z. B. Scrum) gehört. Gute Anbieter minimieren mit durchdachten Plattformen und guten Schnittstellen zu anderen Tools den Planungs- und Abstimmungsaufwand für den Auftraggeber mit dem Anbieter. Um die Benennung eines Zuständigen für die Koordination kommt man in keinem Fall herum. Es ist empfehlenswert, nach einer projektnahen Demonstration zu fragen, um einen Einblick in die Abläufe zu bekommen und Mehraufwände besser einschätzen zu können.

Passt die Crowd zu den Anforderungen? Eine Crowd ist nur so vielfältig und flexibel wie die Masse, die sie verkörpert. Die Anwendung soll heute auf Deutsch und morgen dann auf Spanisch, Chinesisch und Russisch mit den zwanzig gängigsten Devices und den beliebtesten Betriebssystemen getestet werden? Nicht jede Crowd kann mit jeder Skalierung mithalten. Ein Anbieter mit 100 000 Testern weltweit ist in der Regel deutlich vielfältiger und flexibler, kann auf Änderungen besser reagieren und die Kundenwünsche bei hoher Skalierung weiterhin erfüllen. Es ist ratsam, sich über die Größe der Crowd zu informieren und einen passenden Anbieter auszuwählen. Das muss nicht der günstigste Anbieter sein, der morgen schon nicht mehr passt. Es ist empfehlenswert, mittelfristig zu planen, um einen Anbieterwechsel zu vermeiden.

Aufwände beim Defect-Management vermeiden: Schnittstellen zu den gängigsten Application-Lifecycle-Management-(ALM-)Systemen minimieren den Aufwand und erleichtern die Weiterverarbeitung. Die auf der Plattform dokumentierten Defects werden in den seltensten Fällen direkt behoben und durchlaufen im regulären Prozess des Unternehmens noch den einen oder anderen Bearbeitungsstatus. Die Pflege und das Tracking erfolgen dann im vom Unternehmen vorgegebenen Tool, z. B. HP ALM oder DOORS, sodass die auf der Plattform erstellten Defects in das System übernommen werden. Dieser Vorgang ist ohne eine Schnittstelle zum System mit hohem Aufwand verbunden, weil das Nachziehen der Defects manuell erfolgt. Es muss sichergestellt sein, dass der Anbieter eine Schnittstelle zum System des Kunden bereitstellt oder ein Format exportiert, das sich vom hauseigenen System importieren lässt.

Abschließende Empfehlung für den Umgang

Es ist fast unmöglich, die Qualität allein über Crowdtests zu prüfen, sie sind schlichtweg nicht dafür geeignet. Die Methode empfiehlt sich hervorragend als ergänzende und flexibel planbare Qualitätssicherungsmethode. Gerade im Hinblick auf die unzähligen Devices und deren Unbeständigkeit lässt mit Crowdtesting ein aufwendiger und teurer Testpool vermeiden. Explorative Tests, Usability-Tests und Marktanalysen sind die großen Stärken der Methode. Es fällt schwer, eine pauschale Empfehlung für die Nutzung von Crowdtests zu geben, ihr Einsatz ist von vielen individuellen Faktoren abhängig. Eine Prüfung der Sinnhaftigkeit ist in jedem Fall durch den Auftraggeber erforderlich, ein seriöser Anbieter berät hierzu unabhängig und unterstützt Interessenten bei der Auswahl.

Der Erfolg des Einsatzes steht und fällt mit dem Anbieter und dessen Plattform. Hier trennt sich die Spreu vom Weizen. Daher ist der Service- und Betreuungsumfang zu beachten und zu prüfen. Es ist sinnvoll, den Anbieter genau unter die Lupe zu nehmen, sich eine ausführliche Demonstration der Anwendung sowie der Prozesse zeigen zu lassen und die Methode zunächst in einem unkritischen Projekt einzusetzen. Anwender werden so schnell bemerken, wenn die Voraussetzungen nicht stimmen oder der Aufwand bei der Bearbeitung der gefundenen Defects unrealistisch eingeschätzt wurde.

Fazit und Ausblick

Summa summarum wird sich ein gut platzierter Crowdtest mit einem sorgfältig ausgewählten Anbieter auf die Qualität einer Softwarelösung auswirken.

Ich bin der festen Überzeugung, dass Crowdtesting weitreichende Veränderungen in der Qualitätssicherung mit sich bringt und einen deutlichen Zuwachs erhält. Bestehende Testcenter, die man aus Kostengründen in Near-, Off- oder Smartshore-Projekte ausgelagert hat, werden deutlich an Bedeutung verlieren. Sind sie doch nur das Abbild der alten, auch firmeninternen Strukturen und Prozesse, an einem anderen Ort, zu einer anderen Zeit, zum gleichbleibenden oder sogar höheren Aufwand und zu etwas niedrigeren Kosten.

All diese Argumente werden in Zukunft nicht mehr den Anforderungen einer modernen und flexiblen Qualitätssicherung genügen. Denn Crowdtesting ist weder an einen Ort noch an eine Zeit gebunden, verursacht deutlich weniger Prozesse und spart so Zeit und Kosten.

In absehbarer Zeit werden ausgelagerte Testcenter entweder selbst zu Crowdtesting-Plattformen oder sie werden gänzlich verschwinden, da Crowdtesting-Plattformen bereits jetzt schon Testcenterdienstleistungen erfolgreich anbieten.

PHP Magazin

Entwickler MagazinDieser Artikel ist im PHP Magazin erschienen. Das PHP Magazin deckt ein breites Spektrum an Themen ab, die für die erfolgreiche Webentwicklung unerlässlich sind.

Natürlich können Sie das PHP Magazin über den entwickler.kiosk auch digital im Browser oder auf Ihren Android- und iOS-Devices lesen. In unserem Shop ist das Entwickler Magazin ferner im Abonnement oder als Einzelheft erhältlich.

Unsere Redaktion empfiehlt:

Relevante Beiträge

X
- Gib Deinen Standort ein -
- or -