Neue Wege bei der Fehlersuche
19.07.2022, 08:44 Uhr
Bessere Software per Crowdtesting
Wie sich mithilfe externer Test-Plattformen die Qualität und die Sicherheit von Anwendungen steigern lassen.
Wiederholte Angriffe auf Lieferketten in der Software-Distribution belegen eindrücklich, welche Bedeutung der Qualität und der Sicherheit von Anwendungen heute zukommt. Moderne Software besteht nicht mehr nur aus Einzelapplikationen, die von einer Handvoll Programmierern bei einem einzigen Unternehmen entwickelt werden. Vielmehr ist sie zu einem komplexen Ökosystem geworden, dessen Elemente eng verknüpft sind und das zahllose andere Bibliotheken, Frameworks und Bestandteile einbindet, die wiederum auf weitere Komponenten angewiesen sind. Wenn es an einer Stelle dieser Supply Chain zu einem Fehler kommt, kann das komplette Strukturen in den Abgrund reissen. Vielen Unternehmen ist wegen der nicht mehr überschaubaren Komplexität nicht bewusst, in welcher Gefahr sie sich befinden.
Komplexität erzeugt Probleme
Zu den bekanntesten Beispielen für solche Gefahren gehört die Attacke auf SolarWinds. Im Dezember 2020 kamen erste Berichte auf, dass mehrere amerikanische Behörden durch einen Fehler in der Orion-Plattform des Anbieters gehackt wurden. Später stellte sich heraus, dass mindestens 18'000 der damals über 33'000 Orion-Kunden betroffen waren. Bei den Angriffen wurde eine Sicherheitslücke ausgenutzt, die über ein Update an die Nutzer verteilt wurde und zur Installation einer Backdoor missbraucht werden konnte.
“Hacker nutzen häufig Schwachstellen in der Lieferkette aus„
Lothar Geuenich
Regional Director Central Europe/DACH bei Check Point
Regional Director Central Europe/DACH bei Check Point
Ein weiterer verheerender Bug wurde Ende vergangenen Jahres in der zum Logging von Ereignissen eingesetzten Bibliothek Log4j gefunden. Auch von dieser Lücke waren zahllose Unternehmen betroffen, welche die Software mehr oder weniger wissentlich in ihren Umgebungen einsetzten. Damals gingen Experten sogar davon aus, dass das Internet «in Flammen» stehe. Bis heute ist nicht klar, wie gross der durch den Fehler in Log4j angerichtete Schaden wirklich ist, da viele Attacken im Verborgenen blieben.
Die Zahl der Angriffe auf Software-Lieferketten ist 2021 im Vergleich zum Vorjahr um 650 Prozent gestiegen, erklärt Lothar Geuenich, Regional Director Central Europe/DACH beim israelischen-amerikanischen Sicherheitsanbieter Check Point. «Hacker nutzen häufig Schwachstellen in der Lieferkette aus, um Malware in das Zielunternehmen zu schleusen», sagt Geuenich. Er empfiehlt Unternehmen daher eine Least-Privilege-Policy, also nicht benötigte Berechtigungen gar nicht erst zuzulassen. Ausserdem müssten Sicherheitsaspekte in den Entwicklungsprozess integriert werden. «Vorbeugen ist besser als Nachsorge», so Geuenich.
Mehr testen, besser testen
Um die Qualität der Software in Unternehmen zu verbessern, werden mehr und vor allem bessere Tests benötigt. Bislang ist nach Aussage von Thomas Wittbecker, geschäftsführender Gesellschafter und Mitgründer des Cloud-Spezialisten Adacor Hosting, das Durchführen von manuellen Tests am bekanntesten. In einem Blog-Beitrag beschreibt er, wie die Tester beim sogenannten Black-Box-Testing eine Anwendung Schritt für Schritt durchgehen und dabei überprüfen, ob alle Features wie vorgesehen funktionieren. «Damit der Tester aufgrund seiner eigenen Entwicklung nicht unbewusst Annahmen über die Nutzung der Software trifft, sollte ein Entwickler nicht gleichzeitig auch Tester sein», betont Wittbecker. Ein Nachteil dieser Methode sei allerdings, dass dabei nur Fehlerbilder geliefert würden, aber keine Ursachen.
White-Box-Tests werden dagegen laut Wittbecker eingesetzt, um Fehler in grösseren Projekten einer bestimmten Komponente zuzuweisen. Dabei werde auch der Quellcode selbst getestet. Bei solchen Projekten würden mittlerweile vor allem automatisierte Tests genutzt, da manuelle Verfahren dafür zu aufwendig seien. Bei Modultests etwa werde dabei für jedes zu testende Modul ein eigenes Testprogramm bereitgestellt. Ein Problem sei aber, dass so nur Fehler gefunden würden, die bei der Konzeption der Tests berücksichtigt wurden. «Um diesen Nachteil auszugleichen, werden in der Praxis manuelle Black-Box-Tests von einem unabhängigen Team mit automatisierten White-Box-Tests zur Fehlersuche kombiniert», so Wittbecker.
“Ein Entwickler sollte nicht gleichzeitig Tester sein„
Thomas Wittbecker
Geschäftsführender Gesellschafter und Mitgründer von Adacor Hosting
Geschäftsführender Gesellschafter und Mitgründer von Adacor Hosting
Viele Unternehmen würden daher zusätzlich noch Betatests durchführen, bei denen die Teilnehmer aufgerufen werden, von ihnen gefundene Fehler an die Entwickler zu melden. «Damit kann der Anbieter auch Fehler finden, die nur in speziellen Situationen auftreten oder die beim internen Testen übersehen wurden.» Dieses Verfahren ist allerdings nur bei Software möglich, die eine breite Nutzerbasis hat. Ein kleiner Spezialist für bestimmte Bereiche kann deswegen nur unter Einschränkungen so vorgehen.
Anwendung und Testszenarien
Zuhilfenahme der Crowd
Eine Alternative ist das sogenannte Crowdtesting, das eng mit aktuellen Trends wie Cloud Computing und Crowdsourcing zusammenhängt. Letzteres ist an das traditionelle Outsourcing angelehnt, also an das Auslagern bestimmter Aufgaben an Dritte. Das ist auch beim Crowdtesting der Fall. Auch hier wird die essenzielle Aufgabe des Testens einer Anwendung oder eines Produkts an externe Tester ausgelagert, die sich dafür bezahlen lassen. Solche Analysen werden auch als «Tests in the Wild» bezeichnet.
Julian Mascaro, Test Engineer beim Testing-Spezialisten Applause, beschreibt auf der Webseite des Unternehmens, warum intern durchgeführte Tests heute in vielen Fällen an ihre Grenzen stossen. So könne es etwa vorkommen, dass selbst gewonnene Testergebnisse «nicht immer der Wirklichkeit entsprechen oder gar lückenhaft sind». Das liege unter anderem daran, dass dabei nicht «alle Kombinationen aus Geräten und Betriebssystemen der Benutzer sowie mögliche Szenarien» abgedeckt werden. Als Beispiel nennt Mascaro Schwierigkeiten bei der Konnektivität. Diese könnten die Funktionsfähigkeit eines Produkts erheblich beeinträchtigen, würden bei internen Tests aber möglicherweise nicht ausreichend berücksichtigt.
“Unsere Plattform bietet Möglichkeiten von der Ideenentwicklung und Produktvalidierung bis hin zur Steigerung der Kundenakzeptanz„
Recardo Jackson
Leiter Test, Quality & Lifecycle Management bei MSG
Leiter Test, Quality & Lifecycle Management bei MSG
Crowdtesting ermögliche es dagegen, «weitaus mehr Szenarien zu reproduzieren, denen die Benutzer im täglichen Leben gegenüberstehen». Das Testen mit Crowdtestern ersetze aber nicht die interne Quality-Assurance-Abteilung, sondern ergänze sie sinnvoll mit zusätzlichen Geräten und Testern, die sich an mehr Orten und in verschiedensten Szenarien befinden.
Aber wie sieht das «Testen in der Wildnis» konkret aus? Nach Aussage von Mascaro setzt Applause dafür ein dezentrales Team aus Testern ein, das eine Anwendung, eine Webseite oder ein angeschlossenes Gerät «unter realen Bedingungen» testet. Wichtig sei dabei, dass die Tester das zu prüfende Objekt so nutzen, «wie es ihrer Meinung nach richtig ist». Alternativ seien aber auch Testfälle möglich, die vorgegeben werden.
Beim Crowdtesting sollen Tests vornehmlich im Alltag der Teilnehmer erfolgen, also beispielsweise in öffentlichen Verkehrsmitteln, bei einer Interaktion in einem Geschäft oder während sportlicher Aktivitäten. Ergänzend lassen sich laut Mascaro auch «Szenario-Tests» durchführen, bei denen gezielt einzelne oder mehrere kritische Punkte unter die Lupe genommen werden.
Die Beispiele zeigen, dass es beim Crowdtesting nicht nur um Software, sondern um vielfältige Produkte geht, die vor oder nach ihrer Markteinführung zusätzlichen Tests unterzogen werden sollen.
Testszenarien aus der Praxis
Mascaro beschreibt eine Reihe realer Testszenarien. So lasse sich mit Crowdtesting etwa herausfinden, wie gut oder schlecht die Planung von Fahrtwegen und der Verkauf von Fahrkarten bei einem Verkehrsunternehmen funktionieren. Zunächst werde geprüft, ob alle benötigten Funktionen ordnungsgemäss ablaufen. Danach gehe es darum, ob die Tester ihren Fahrtweg mit der Anwendung planen, Tickets kaufen und erfolgreich von einem Punkt zum anderen fahren können. Mit einem Test in the Wild lässt sich «somit das gesamte digitale Erlebnis eines Produkts auf die Probe stellen», erläutert Mascaro. Eines wird an diesem Beispiel auch klar: Meist geht es beim Crowdtesting weniger um die Sicherheit eines Produkts, sondern um Probleme beim Einsatz, also etwa um Tests der Bedienoberflächen.
Die Grundlagen für das moderne Crowdtesting wurden bereits vor mehr als einem Jahrzehnt gelegt. So hat sich schon 2010 Ewald Roodenrijs, heute Associate Director beim amerikanischen IT-Konzern Cognizant, mit den Grundlagen des Crowdtestings beschäftigt. Dabei hat er mehrere Prinzipien formuliert, die immer noch gelten. Roodenrijs ist zum Beispiel davon überzeugt, dass Crowdtesting abhängig ist von der Qualität der Crowd. Eine Gruppe sollte nicht nur aus Experten und Profis, sondern auch aus Einsteigern und anderen Menschen bestehen. «Eine kleine Gruppe von zehn Personen mit ein und demselben Hintergrund bringt dem Crowdtesting keinen zusätzlichen Nutzen», unterstreicht Roodenrijs. Je mehr Unterschiede es bei den Testern gebe, desto besser. Das Ziel der Tests müsse zudem sein, ein besseres Produkt oder zumindest neue Erkenntnisse über seine Risiken zu erhalten. Crowdtesting solle «normale» Tests zudem nicht ersetzen, sondern nur ergänzen.
Crowdtesting, Fazit und Ausblick
Crowdtesting-Anbieter
Eine entscheidende Rolle beim Crowdtesting spielt neben der Qualität und der Zusammensetzung der eingesetzten Crowd auch die weitgehende Automatisierung der Tests. Brian Rock, Senior Director of Engineering bei Applause, ist sich sicher, dass «an Automatisierung kein Weg vorbeiführt, wenn man die gewünschte und notwendige Testabdeckung erzielen will». Oft würden jedoch die falschen Tools gewählt. Kleinere Teams, die sich erstmals mit dem Thema beschäftigen, sollten zu einer fertigen Enterprise-Lösung für Testautomatisierung greifen. Das gebe die Gewissheit, ein bereits erprobtes Werkzeug einzusetzen und sich bei auftretenden Problemen an den Hersteller wenden zu können. Teams mit einer «höheren Funktionsreife» könnten dagegen auch eine Open-Source-Lösung verwenden. Diese sind in der Regel frei nutzbar, erfordern aber mehr Fachkenntnisse, um sie an den eigenen Bedarf anzupassen.
Applause hat mit seiner Test-Community uTest ein internationales Team aus Testern aufgebaut, das nach Angaben des Unternehmens eine «vollständige Abdeckung von Endgeräten und Betriebssystemen» bietet, 24/7 zur Verfügung stehe und auch kurzfristig für Tests gebucht werden könne. Das Angebot gilt laut Applause in mehr als 200 Ländern und in zahlreichen Sprachen. Die Tester werden über ein eigens entwickeltes Academy-Programm und in Kompetenzzentren geschult, die auch Tests in Bereichen wie Barrierefreiheit, Automatisierung oder Payment ermöglichen. Alle uTest-Mitglieder müssen zudem Geheimhaltungsverträge unterschreiben. Es gibt sogar VIP-Tester für «ultrasensible Projekte». Diese Teams bestehen aus Testern, die bereits seit Jahren mit Applause zusammenarbeiten und dabei einen «einwandfreien Track Record» vorweisen können.
Einen ebenfalls grossen Stamm an Testern kann der Münchner Anbieter Testbirds vorweisen. Das 2011 gegründete Unternehmen hat mittlerweile mehr als 100 Mitarbeiter und betreibt zusätzlich Büros in Amsterdam und London. Sie betreuen eine Test-Community mit über 600'000 Mitgliedern aus 193 Ländern. Testbirds bietet neben Quality-Assurance-Tests, mit denen Bugs und Funktionsfehler gefunden werden sollen, auch Überprüfungen der Usability eines Produkts an. Im Einzelnen kommen dabei Methoden wie exploratives oder strukturiertes Bug Testing zum Einsatz, die nach Angaben des Unternehmens «aus der Perspektive eines echten Kunden» erfolgen. Zum Portfolio gehören ausserdem Bug Bounties, bei denen sich die Teilnehmer auf die Jagd nach Sicherheitslücken oder systemweiten kritischen Fehlern begeben.
Der Ismaninger Consulting-Konzern MSG Group hat Anfang vergangenen Jahres den Zürcher Crowdtesting-Anbieter Passbrains übernommen und kann daher nun ebenfalls Tests mithilfe der Crowd anbieten. Dabei geht es dem Unternehmen vor allem darum, die «Qualität digitaler Produkte, Services und Prozesse sowie vernetzter Hardware zu sichern und zu verbessern». Das biete viele Möglichkeiten, erläutert Recardo Jackson, Leiter Test, Quality & Lifecycle Management bei MSG. Crowdtests gingen über bisherige Tests hinaus, sie reichten «von der Ideenentwicklung und Produktvalidierung über mehrere Zyklen bis hin zur Steigerung der Kundenakzeptanz», so Jackson.
Crowdtesting-Anbieter (Auswahl)
Crowdtesting-Anbieter (Auswahl) | ||
Anbieter | Sitz | Besonderheit |
Applause www.applause.com/de |
globaler Hauptsitz USA, europäischer Hauptsitz Berlin | grosse, internationale Test-Community |
MSG Passbrains www.msg.group/msg-passbrains |
Tochter der MSG Group in Ismaning bei München | bietet unter anderem UX- und CX-Tests an |
Rapidusertests https://rapidusertests.com |
Berlin | deutsche Test-Community; nur Usability-Tests für Webseiten und Apps |
Testbirds www.testbirds.com/de |
München, Büros in Amsterdam und London | internationale Test-Community (600'000 Tester aus 193 Ländern); macht auch Bug Bounties |
Test.io www.test.io/de |
Büro in Berlin, 40 Standorte weltweit | 400'000 freie Tester in 187 Ländern, Usability-Tests für Webseiten und Apps |
Crowdtesting-Anbieter (Auswahl)
Crowdtesting-Anbieter (Auswahl) | ||
Anbieter | Sitz | Besonderheit |
Applause www.applause.com/de |
globaler Hauptsitz USA, europäischer Hauptsitz Berlin | grosse, internationale Test-Community |
MSG Passbrains www.msg.group/msg-passbrains |
Tochter der MSG Group in Ismaning bei München | bietet unter anderem UX- und CX-Tests an |
Rapidusertests https://rapidusertests.com |
Berlin | deutsche Test-Community; nur Usability-Tests für Webseiten und Apps |
Testbirds www.testbirds.com/de |
München, Büros in Amsterdam und London | internationale Test-Community (600'000 Tester aus 193 Ländern); macht auch Bug Bounties |
Test.io www.test.io/de |
Büro in Berlin, 40 Standorte weltweit | 400'000 freie Tester in 187 Ländern, Usability-Tests für Webseiten und Apps |
Fazit und Ausblick
Die Möglichkeiten des Crowdtestings sind geeignet, klassische, meist nur intern durchgeführte Tests vielfältig zu ergänzen. Oft werden allerdings nur eher oberflächliche Funktionen wie das Graphical User Interface (GUI) eines Produkts getestet. Da ist ein Anbieter dann schon mal stolz darauf, wenn er ein paar Tippfehler in den Infotexten einer App gefunden hat.
Nicht jede Crowdtesting-Firma bietet tiefergehende Tests an, mit denen etwa auch Sicherheitslücken gefunden werden können. Zudem sollte man sich bei der Wahl des passenden Partners für ein etabliertes Unternehmen entscheiden. In den vergangenen Jahren sind manche Anbieter wie Testcloud oder Testtailor schon wieder vom Markt verschwunden oder wurden, wie Passbrains, von anderen Firmen übernommen.
Autor(in)
Andreas
Fischer