Das Testen mobiler Anwendungen

So meistern Sie die App-Herausforderung

03.04.2012 von Klaus Manhart
Smartphones und Tablets sind heute fester Bestandteil unseres Alltags - viele Unternehmen möchten deshalb ihren Kunden und Mitarbeitern mobile Anwendungen anbieten. Doch bei der Entwicklung von Mobile Apps stehen Service-Anbieter vor gewaltigen Herausforderungen: Heterogene Geräte- und Betriebssystem-Landschaften, schwankende Bandbreiten und Sicherheitsrisiken erhöhen den Aufwand enorm.
Boom der Apps: Die Entwicklung von mobilen Applikationen hat sich vom Nischenbereich zu einem der wichtigsten Wachstumsmärke entwickelt.
Foto: Apple, Google

Smartphones haben sich vom Nischenbereich zu einem der wichtigsten Wachstumsmärkte entwickelt. Jedes dritte verkaufte Handy war im letzten Jahr ein Smartphone, 2012 werden laut den Marktforschern von Comscore erstmals mehr Menschen ein Smartphone besitzen als ein Handy. Und ein Ende des Booms ist nicht abzusehen.

Der hat auch Auswirkungen auf die Anwendungen: Denn je mehr Smartphones im Einsatz sind, desto wichtiger werden mobile Applikationen, die speziell an die kleinen Geräte angepasst sind. Kunden erwarten inzwischen, dass Informationen von überall zugänglich sind. Und jeder Mitarbeiter möchte heute von unterwegs E-Mails prüfen, an Meetings teilnehmen und auf Dateien zugreifen. Auch Unternehmensanwendungen wie ERP und CRM werden immer mehr mobil genutzt.

Unternehmen müssen auf diese Erwartungshaltung reagieren. Entsprechend hat sich die Entwicklung von mobilen Applikationen vom Nischenbereich zu einem der wichtigsten Wachstumsmärke entwickelt. "IT-Lösungen für Mobilität sind einer der ganz großen Trends in den nächsten Jahren", sagt Andreas Zilch von der Experton Group. Die Marktforscher von Gartner prognostizieren, dass 2014 bereits 90 Prozent aller Unternehmen Anwendungen auf persönlichen Mobilgeräten unterstützen werden.

Viele Firmen sind schon auf den Zug aufgesprungen. Laut einer Bitkom-Umfrage unter ITK-Unternehmen vom letzten Jahr gaben knapp zwei Drittel der befragten Betriebe an, dass ihr Unternehmen mobile Anwendungen selbst entwickelt oder plant, dies zu tun. Zwar sind ITK-Unternehmen - zusammen mit Banken und Medien - Vorreiter bei Mobility-Services. "Inzwischen sind aber alle Branchen nachgezogen", erklärt Jochen Flad, Business Development Manager bei HP. "Es gibt keine Branchen mehr, die auf die Entwicklung mobiler Anwendungen verzichten."

Apps oder mobile Websites?

Die Top-Motive für die Entwicklung eigener Mobility-Lösungen laut Bitkom.
Foto: Bitkom

Die Hauptmotive für die Entwicklung von Mobility-Lösungen sind laut Bitkom die Erweiterung des eigenen Produkt-Portfolios, die Verbesserung der Kundenbindung und des Kundenservice sowie die Neukundengewinnung. Doch auch die internen Betriebsabläufe sollen verbessert werden: Immerhin knapp zwei Drittel gaben an, mobile Anwendungen für die Optimierung interner Prozesse, also für Mitarbeiter, einsetzen zu wollen.

Grundsätzlich können mobile Anwendungen als Apps oder mobile Websites entwickelt werden. Apps sind kleine Programme, die auf Smartphones oder Tablet-PCs installiert werden und gezielt eine ganz bestimmte Funktionalität anbieten - zum Beispiel Zugriff auf soziale Netze, das aktuelle Wetter oder Textverarbeitung.

Mobile Websites hingegen arbeiten Browser-basiert, die Inhalte und Nutzerführung sind aber auf die kleinen Bildschirme der Mobilgeräte optimiert. Apps bieten zwar die beste Integration mit den mobilen Devices, sind aber im Vergleich zu Websites mit einem großen Entwicklungsaufwand verbunden, wenn mehrere Plattformen unterstützt werden sollen.

Deshalb präferieren viele Unternehmen - besonders im Mitarbeitersegment - mobile Websites. Doch im Endkundengeschäft dominieren eher Apps, bestätigen mehrere Studien. "Nicht alle mobilen Lösungen können über Browser-basierte Anwendungen bereitgestellt werden", heißt es etwa in der Bitkom-Studie. "Gerade im B2C-Markt wird es daher um Anwendungen gehen, die eine Extrafunktionalität bereitstellen."

Hohe Gerätediversität

Die wichtigsten Herausforderungen für App-Entwickler laut Bitkom.
Foto: Bitkom

Die Kunden von Unternehmen sind ein wichtiger Grund, in die App-Entwicklung zu investieren. Dabei davon auszugehen, dass die App-Produktion nichts weiter ist als herkömmliche Softwareentwicklung, ist allerdings ein Trugschluss. "In diesem Bereich gibt es ganz andere Rahmenbedingungen als in der klassischen Softwareentwicklung", erklärt HP-Manager Flad. "Mobile Applikationen imitieren nicht einfach die Desktop-Umgebung, sondern haben ihre eigenen Interfaces, Business-Process-Flows und Infrastruktur-Abhängigkeiten."

Im Detail stehen die App-Entwickler vor einer ganzen Reihe von Herausforderungen. Eine erste ist die Diversität der Devices. Laut der erwähnten Bitkom-Studie stellt die Gerätevielfalt für drei von vier Befragten ein Problem dar. Tatsächlich ist im Vergleich zu stationären Systemen die Heterogenität bei mobilen Clients deutlich höher.

So existiert eine breite und zunehmende Vielfalt an mobilen Devices - von Smartphones und PDAs über Tablets bis hin zu speziellen Geräten wie dem E-Book-Reader. Allein bei den Smartphones bieten die führenden Hersteller Samsung, Blackberry, Nokia, HTC, Sony - mit Ausnahme von Apple - gleich mehrere Geräte an. "Jedes dieser Geräte hat eine teilweise spezifische Hardware, Kommunikations-Layer und Treiber", sagt Jochen Flad.

Diese vielen Hardwareabhängigkeiten erfordern viel Entwicklungs- und Anpassungsarbeit - und machen das Testen aufwändiger, da jede App an jedes Gerät angepasst werden muss. Hinzu kommt: Notwendige Änderungen können wiederum Auswirkungen auf andere Devices haben, so dass auch diese in einem weiteren Zyklus getestet werden müssen.

Bunte Betriebssystem-Landschaft

Ein großes Problem ist vor allem die Vielfalt der unterschiedlichen Android-Geräte und damit die Fragmentierung von Googles mobilem Betriebssystem.

Neben den Geräten selbst sind aber auch die mobilen Betriebssysteme deutlich heterogener als im stationären Bereich. Im Vergleich zu den drei wichtigsten PC-Plattformen - Windows, Linux, Mac OS X - gibt es bei den mobilen Plattformen neben iOS, Windows Phone und Android viele weitere Systeme wie RIM OS, Symbian oder die proprietären Systeme von E-Book-Readern.

Ein großes Problem ist vor allem die Vielfalt der unterschiedlichen Android-Geräte und damit die Fragmentierung von Googles mobilem Betriebssystem. Sie ist nämlich dafür verantwortlich, dass Entwickler für Android-Apps etwa 30 Prozent mehr Zeit benötigen als für Apps anderer Betriebssysteme, heißt es beim Nachrichtendienst Bloomberg. Manchmal, wie etwa im Fall von Amazons Kindle Fire, brauchen die Entwickler sogar mehrere Wochen, um ihre Apps an die Eigenheiten des Geräts anzupassen.

Einige Unternehmen lösen das Problem, indem sie sich bei der App-Entwicklung auf einige wenige Devices und Betriebssysteme konzentrieren, etwa auf das iPhone und das iPad. "Das geht, wenn das Unternehmen die Kontrolle über die eingesetzten Geräte hat und die Apps ausschließlich Mitarbeitern zur Verfügung stellt", erklärt Jochen Flad. "Sobald die Apps aber Kunden angeboten werden, ist man wieder mit dem Problem der Gerätevielfalt konfrontiert. Schließlich kann man diesen kaum vorschreiben, welche Smartphones sie nutzen sollen."

Schwankende Bandbreiten

Doch nicht nur die vielen Clients und Betriebssysteme verkomplizieren die Entwicklung. Eine weitere Herausforderung ist die Sicherung der technischen Qualität - schließlich erwartet auch der Mobilanwender gewisse Service-Levels. Ist die Qualität einer Business-App mangelhaft, wird sie kaum erfolgreich sein: Studien belegen, dass der Kunde dann eine andere Lösung für seine geschäftlichen Tätigkeiten suchen wird.

Vor allem die Qualität der Bandbreiten macht App-Entwicklern zu schaffen. Ist der User online, ist die Netzqualität nicht immer konstant. Im ICE, aber auch im Café kann es Bandbreiten-Schwankungen und -Unregelmäßigkeiten bis hin zum Verbindungsabbruch geben. Was geschieht, wenn ein Zugriff länger dauert? Oder wenn der Netzservice auf Reisen nicht unterbrechungsfrei ist?

Bei Verbindungsstörungen ist die Gefahr groß, dass die Daten nicht mehr zuverlässig vom Smartphone zum Backend-Server und umgekehrt übertragen werden. Im schlimmsten Fall ist der Status der Daten, die zwischen Smartphone-App und dem Backend-Server ausgetauscht werden, undefiniert. Anders als herkömmliche Softwareentwickler müssen sich App-Entwickler deshalb über solche Szenarien Gedanken machen - und sich überlegen, wie sie die Funktionalitäten sicherstellen. Dazu muss klar festgelegt werden, wie die Apps bei Bandbreiten-Störungen agieren sollen.

Ebenso wichtig ist es, dass die Server-Landschaft eine entsprechende Leistungsfähigkeit und Skalierbarkeit bereitstellt. Dabei gilt es, unter anderem folgende Fragen zu klären: Welche Konsequenzen hat es, wenn sich plötzlich 2000 Smartphone-User zusätzlich auf die Server einloggen? Welche Auswirkungen hat das auf die Gesamt-Performance? Wie lange ist die Antwortzeit? Die Beantwortung solcher Fragen erfordert zum Teil durchdachte Performance-Tests.

Hohes Sicherheitsrisiko

Eine vierte Problemklasse ist die Sicherheit der mobilen Anwendungen. Dabei geht es nicht nur darum, die Apps beispielsweise für Online-Banking sicherer zu machen. Im Vergleich zum geschützten Firmenbereich entstehen in der Öffentlichkeit zusätzliche Sicherheitsrisiken, die unbedingt eingedämmt werden müssen.

So können etwa ungewollte Beobachter bei Nutzung eines mobilen CRM-Systems firmenkritische Informationen einsehen. Oder das Tablet oder Smartphone wird gestohlen. Abgesehen davon, dass es im Mobilbereich noch kaum Virenscanner gibt. Für all diese Fälle müssen Entwickler Vorsorge treffen. Es sollte eindeutige Maßnahmen geben für den Fall, dass ein Device gestohlen wird - sei es durch Verschlüsselung der Daten, Fernlöschen oder Fernsperren des Geräts.

Zu guter Letzt sollte man auch noch bedenken, dass im Vergleich zur klassischen Softwareentwicklung die Release-Zyklen bei mobilen Apps deutlich kürzer sind. Schließlich sind Benutzer von mobilen Geräten und Apps überaus funktionsorientiert, jeder möchte die jeweils aktuellste und beste App. Da Apps immer der Gefahr ausgesetzt sind, bei Nichtgefallen schnell gelöscht zu werden, müssen sie oft upgedated werden. Auch um Apps interessant zu machen, sollten die Release-Zyklen möglichst kurz sein.

Diese Forderung nach möglichst knappen Release-Zyklen zusammen mit den vielfältigen Kombinationsmöglichkeiten aus heterogenen Devices und Betriebssystemen verkompliziert die Entwicklung enorm - und erhöht das Risiko von Qualitäts- und Performance-Problemen.

So testen Sie Apps - die wichtigsten Möglichkeiten

Zum Testen mobiler Apps gibt es verschiedene Werkzeuge. Am wenigsten aufwändig ist das Testen mit so genannten Emulatoren, die verschiedene Geräte hardwareunabhängig simulieren. Solche Emulatoren gibt es praktisch für alle relevanten Smartphones und Tablets. Sie reichen aber bei weitem nicht aus, um wirklich alle Szenarien und Funktionen zu testen.

Testen von Apps - HP Application Lifecycle Management

HP unterstützt seine Kunden bei der Entwicklung von mobilen Apps von der Idee über die Planung, Realisierung und Tests bis hin zur Auslieferung. Kernstück ist das "HP Application Lifecycle Management", eine zentralisierte und integrierte digitale Plattform für den gesamten Prozess der Anwendungsentwicklung. Die Plattform beschleunigt die Bereitstellung von Anwendungen und richtet den kompletten Prozess der Applikationsentwicklung und -modernisierung an den Geschäftszielen aus - auch in heterogenen Umgebungen mit verteilten Entwickler- und Qualitätssicherungs-Teams.

Für die Test-Automatisierung bietet HP Produkte wie "Quick Test Professional" an, das über eine Erweiterung mobile Devices ansprechen und automatisierte Tests auf den mobilen Devices ausführen kann. Daneben unterstützt HP Software auch in puncto Last - und Performance-Tests bei mobilen Apps - hierzu gibt es den "Performance Center", eine Erweiterung für Performance-Tests, um das Verhalten der mobilen Nutzer zu simulieren.

Vor diesem Hintergrund ist es notwendig, die mobilen Apps direkt auf den verschiedenen Smartphone und Tablets zu testen, was aber einen sehr hohen manuellen Aufwand bedeutet und daher eine klassische Disziplin für die Testautomatisierung ist. Eine Reihe von Tests lässt sich automatisiert durchführen. Voraussetzung für die Einführung automatisierter Tests ist, dass den Teams bei der Entscheidung, welche Elemente automatisiert werden sollen, verlässliche Kriterien zur Verfügung stehen. Im Allgemeinen bietet sich die Automatisierung von Testfällen für folgende Szenarien an:

Doch in keinem Projekt lassen sich alle Tests automatisiert durchführen. Manuelle Tests sind weiterhin wichtig und notwendig. Es ist deshalb unbedingt anzuraten, jede App direkt auf jedem physischen Device zu testen, auf dem die App laufen soll - was natürlich aufwändig und kostspielig ist.

Zum Test der Apps gehört schließlich auch zu wissen, was bei der Verarbeitung von Nutzeranfragen auf den Backend-Servern passiert. Last- und Performance-Tests Lasttests sind deshalb ein unverzichtbares Diagnose-Tool zur Prävention, zur SLA-Absicherung oder für das Krisenmanagement. Mit simulierten, künstlich generierten zeigen die virtuelle Nutzer Verhalten und Verfügbarkeit der Applikationen unter Last.

Mehr zum Thema

Weitere Informationen rund um das Testen von Applikationen: