Erfolgsfaktoren für das automatisierte Testen mobiler Apps.
Eigentlich sollte das Software-Testen mobiler Apps einfach sein – sind sie doch kompakt, haben vergleichsweise wenige Funktionen und sind auch sonst deutlich übersichtlicher als die komplexen Systemmonster der klassischen IT. In der Realität erweist es sich aber keineswegs als trivial, einen für die App-Entwicklung funktionierenden Testansatz zu etablieren. Zum einen unterliegen mobile Apps einem enormen Qualitätsdruck seitens der Benutzer. Schneidet eine App bei den User-Bewertungen eines Stores nur etwas schlechter ab als konkurrierende Produkte, bleibt die Zahl der Downloads klein.
Apps müssen deshalb sehr intensiv getestet werden – und dies häufig auch auf mehreren Plattformen. Die dadurch notwendigen Wiederholungstests lassen schnell den Ruf nach der Automatisierung dieser Tests laut werden. Doch leider sieht die Realität bei der Automatisierung von App-Tests wenig rosig aus. Oft scheitern viele Automatisierungsprojekte an unrealistischen Anforderungen oder daran, dass die Automatisierung am Ende mehr kostet als sie einspart. Dazu kommen technische Risiken wie unzuverlässige Erkennung von GUI-Elementen, Verbindungsabbrüche zum mobilen Gerät oder unzureichende Schnittstellen. Denn die Werkzeuglandschaft für das Testen mobiler Apps ist noch jung, was sich in allgemeiner Unreife der Werkzeuge niederschlägt. Dennoch kann sich Testautomatisierung im Umfeld mobiler Apps lohnen – vorausgesetzt, die Verantwortlichen berücksichtigen verschiedene Schlüsselfaktoren.
Nicht nur die Testausführung zählt.
Vor dem Aufbau einer umfassenden Infrastruktur für die Testautomatisierung gilt es zu prüfen, ob es auch wirklich die automatisierte Testausführung ist, die den größten Effizienzgewinn bringt. Häufig sind es nämlich die Bereitstellung der Testumgebung oder auch die Initialisierung dieser Umgebung mit den passenden Testdaten, die sich insgesamt stärker auswirken.
Nur ein Automatisierungskonzept genügt nicht.
Die unterschiedlichen Testarten bei der Qualitätssicherung mobiler Apps erfordern jeweils eigene Automatisierungsansätze. Komponententest, funktionaler Test oder Security-Test zum Beispiel sind unterschiedliche Disziplinen, für die jeweils eigene Konzepte und Werkzeuge existieren. Jede dieser Aufgabe erfordert zunächst eine individuelle Bewertung und ein für sie angemessenes Lösungskonzept, welches definiert, ob und wo automatisiert wird.
Werkzeuge gründlich prüfen.
Die Werkzeuglandschaft für mobiles Testen könnte bunter nicht sein. Von lizenzkostenfreien Open-Source-Werkzeugen bis hin zu vollintegrierten Lösungen wie zum Beispiel Perfecto Mobile ist alles vorhanden. Umso wichtiger ist es, die aufzubauende Werkzeugkette systematisch zu evaluieren. Eine mangelhafte oder gar fehlende Tool-Evaluierung wird nicht erst mittelfristig teuer.
Wartbarkeit nicht unterschätzen.
In derart unübersichtlichen Situationen am Werkzeugmarkt setzen viele auf das Selbermachen, zumal für die eigentliche Testausführung Open-Source-Werkzeuge wie Robotium oder Calabash zur Verfügung stehen. In diesen Fällen implementieren Entwicklungsprojekte fehlende Spezifikations- und Managementfunktionen „obendrauf“, etwa in der Skriptsprache VBA und Excel oder der Programmiersprache Ruby. Dieses Vorgehen führt jedoch in der Regel zu einem extremen Wartungsaufwand, da die Innovationszyklen der Mobile-Welt sehr kurz sind.
Aber auch eine von einem Hersteller unterstützte Lösung kann auf direktem Weg in die Wartungshölle führen, wenn keine stringenten Automationsarchitekturen gewählt werden. Schließlich ändern sich das Look & Feel von Apps oder des unterliegenden Betriebssystems meistens schnell. Eine gute Architektur schafft hier Transparenz: Sie hilft, Änderungen an der Technik aber auch an den Anforderungen soweit zu isolieren, dass die Testsuite im Idealfall nur an einer einzigen Stelle anzupassen ist.
Konzentration aufs Wesentliche.
Die Vielfalt der relevanten Plattformen, Betriebssystemversionen und Geräte in der mobilen Welt führt schnell zu einer Explosion möglicher Kombinationen, die zu riesigen Zahlen von Tests führt. Ein systematisches, risikobasiertes Testmanagement reduziert einen solchen Testberg auf das Wesentliche: Es priorisiert für die Kunden wesentliche App-Funktionen und -Eigenschaften, während weniger relevante Bereiche bewusst gar nicht oder nicht systematisch getestet werden. Erst diese Priorisierung erzielt eine wirtschaftliche Kosten-Nutzen-Bilanz der Testausführung.
Ist Testen wirklich Kerngeschäft?
Gerade das Testen mobiler Apps ist eine Spezialdisziplin. Jedes Unternehmen sollte sich deshalb fragen: Ist diese Spezialdisziplin Teil meines Kerngeschäfts? Lautet die Antwort „Ja“, greifen die zuvor erwähnten Erfolgsfaktoren. Lautet die Antwort jedoch „Nein“, testen die zahlreich am Markt verfügbaren Fachkräfte in der Regel besser und kostengünstiger, insofern sie nachweisbares Spezial-Know-how, SLAs und eine am Output orientierte Bezahlung bieten.