Es ist ein Lehrstück für Demokratien und App-Entwickler gleichermaßen: das Versagen der IowaReporterApp von Shadow Inc. am 3. Februar 2020 bei den Vorwahlen der Demokraten. Was wir aus dem App-Versagen schließen, sei hier aber schon einmal vorweggenommen: Mit ausreichenden Tests hätte es verhindert werden können.

Iowa: Was ist da passiert?

Die Firma Shadow Inc. hatte bereits 2012 und 2016 die Kampagnen von Barack Obama und Hillary Clinton mit verschiedenen Apps versorgt und sich so seine Reputation erarbeitet. Expertise für digitale Wahlapps gab es bis zu diesem Punkt aber noch nicht. Für die Vorwahlen der Demokraten entwickelten sie eine App zum Zählen und Auswerten von Wählerstimmen im Bundesstaat Iowa in den USA.
Dann das Desaster bei der Auszählung der Stimmen: Sie funktionierte an vielen Orten nicht. Das begann schon mit dem Download der App, ging weiter mit der fehlenden Unterstützung für verschiedene Gerätetypen und endete mit einem defekten User-Interface, das an verschiedenen Stellen Fehlermeldungen ausgab. Glücklicherweise wurden wenigstens die Daten nicht beeinträchtigt. Was genau schiefgelaufen ist, haben einige Fachmedien inzwischen detailliert aufgeschlüsselt.

Die Distribution

Die App wurde wie eine Betaversion über die Testplattformen Testflight und TestFairy zum Download angeboten. Eigentlich ein NoGo, denn diese Plattformen sind dazu da, um die App für Beta-Tester freizugeben – also technisch bewanderte User. Genutzt wurde die App von Wahlleitern der Wahlkreise, um die ausgezählten Stimmen einzuscannen, um sie dann zentral auswerten zu lassen. Die Überforderung begann für diese Delegierten schon mit dem Download über die Plattformen, nur wenige Stunden vor der zeitkritischen Wahl. Der kryptische Prozess des Log-Ins endete bei verschiedenen Wahlleitern bereits in Fehlermeldungen. Später tauchten noch Fehlermeldungen beim Versand der Daten auf.

Die Entwicklung

Der Zustand der App war bestenfalls auf dem Stand einer Beta. Experten, die sich im Nachhinein den Code ansahen, stellten fest, dass er wie einem Tutorial folgend gecodet wurde – eine peinliche Angelegenheit, wenn so etwas herauskommt. Außerdem wurde bei einem Test des Fachmediums Motherboard die Android APK auf zwei verschiedenen Android-Geräten installiert, nur bei einem der beiden funktionierte es. Nach Aussagen der Demokraten wurde die App vorab von einschlägigen Experten getestet, in welchem Umfang bleibt aber ungewiss.

Der Mangel an Tests

Dan McFall, Geschäftsführer des Testing-Unternehmens Mobile Labs, schrieb auf Anfrage von Techcrunch, dass dies ein grundlegendes Problem der Branche sei: Mobile Apps sind schwerer zu entwickeln, als viele denken. Entwickler setzten sich mitunter zu hohe Ziele. Und um Deadlines doch noch zu schaffen, vernachlässigten sie das Testing. Das Resultat: Chaos. Auch Experte Shlomo Argamon vom Institut für Technologie in Illinois bestätigt das dem Wall Street Journal: Es sei ein Problem von Tech-Startups, dass sie viele Projekte nebeneinander machen, Probleme im Prozess versuchen zu lösen und so kaum Zeit für Testing einplanen.
Unserer Erfahrung nach schreiben sich manche Entwickler dieses Vorgehen dann als Agile auf die Fahne. Wie wir in unserer Serie zum Thema Agile Testing aber bereits betont haben, ist Agile Development eine Arbeitsweise, die nur dann funktioniert, wenn es auch Agile Testing involviert. Ansonsten bedeutet Agile Development nur alles auf einmal machen zu wollen. Für die IowaReporterApp wären Tests mit den Endnutzern und mit Testern, die in die Use Cases der Endnutzer eingeführt wurden, notwendig gewesen.

Fazit: Die Bedeutung von Tests

Wer datenintensive, zeitkritische und gesellschaftsrelevante Apps entwickelt, kann sich nicht auf den Lorbeeren der Vergangenheit ausruhen. App-Entwickler stehen, egal in welchem Anwendungsgebiet, unter immer höherem Erfolgs-, Zeit- und Ressourcendruck. Umso wichtiger ist es, sich zu vergewissern, dass das Produkt auch im Sinne seiner User funktioniert. Wenn es eine Lehre aus dem Vorwahldesaster der U.S.-Demokraten gibt, dann ist es definitiv, niemals die Testphase zu vernachlässigen.
Tests gehören ab dem ersten Entwicklungsschritt zur App-Entwicklung dazu. Und zwar nicht nur Simulationen und automatisierte Nutzungstests, sondern Tests mit echten Personen, im echten Anwendungsfall und am besten mit einem ganzen Spektrum von echten Geräten und Modellen verschiedener Hersteller in verschiedenen Versionen.