Der Kunde ist unterwegs und hat nur 2 Sekunden

Artikel von José Díaz und Björn Lemke

Der Verkauf der UMTS-Lizenzen brachte der Bundesregierung vor Jahren Milliarden ein. Die Telekomfirmen gaben viel Geld hierfür aus. Einige, wie zum Beispiel die Mannesmann Telekom hatten sich sogar so stark verschuldet, dass sie die erste Phase der Mobile-Future nicht überlebten. Sie wurden einfach von den Großen aufgekauft.

Die Anfänge waren wirtschaftlich gesehen sehr schmerzhaft für die Telkos und für die Endkunden wenig interessant. UMTS war am Anfang nur für betuchte Kunden und Geschäftskunden, die viel unterwegs waren, bezahlbar. Das breite Publikum wurde von den Preisen abgeschreckt. Es gab auch keine Smartphones, wie wir sie heute kennen.

Blackberry, von Research in Motion, war die erste gute Lösung für mobile E-Mail-Clients. Wer etwas von sich hielt, hatte ein Blackberry. Dies ist heute Geschichte. Blackberry hat gerade Verluste in Milliardenhöhe gemacht und wurde verkauft. Blackberry ist jedoch nicht das einzige Opfer des dynamischen mobilen Marktes. Das Nokia-Mobile-Phone-Geschäft wurde gerade an Microsoft verkauft. Die ehemaligen Marktführer für Mobiltelefone haben den Markt anscheinend verpasst.

Bewegung kam mit dem iPhone. Das iPhone revolutionierte nicht nur die Telekommunikationswelt, sondern die gesamte IT. Google mit seinem Betriebssystem Android übernahm in der Zwischenzeit jedoch die Führung auf dem Markt für mobile Endgeräte. Heute liefern sich beide Betriebssysteme einen harten Wettkampf und stehen mit Abstand weit vor allen Mitbewerbern. Aktuell werden jedoch deutlich mehr Android-Geräte ausgeliefert.

Bei allen mobilen Plattformen steht der Benutzer im Mittelpunkt. Das Ziel war und ist es, den Kunden komfortable Mobilität anzubieten, damit er alles machen kann, was er will. Heute ist der Kunde unterwegs! Heute hat nahezu jeder ein Smartphone. Wir nutzen Apps für fast alles. Beispielsweise wurden bis Mai 2013 50 Milliarden Apps bei iTunes runtergeladen. Bis 2016 wird erwartet, dass ca. 290 Milliarden Apps runtergeladen werden. Bei Google sieht es ähnlich aus: Im April 2013 wurden täglich 1,5 Millionen neue Geräte bei Google registriert und in Googles Play Store stehen ca. 1 Millionen Anwendungen zum Download bereit. Das sind neue Dimensionen.

Dieser Trend zur Mobilität geht auch an Banken nicht spurlos vorbei. Früher hat der Kunde Geld über die Bankfiliale, Bankautomaten oder vom heimischen PC oder Laptop über das Internet überwiesen. Die Parameter waren überschaubar und daher relativ einfach zu kontrollieren. Heute können Geschäfte über Apps abgewickelt werden, die auf ca. 20 unterschiedlichen Apple-Produkten mit zwei unterschiedlichen Betriebssystemversionen und auf über 10.000 (ja, zehntausend) unterschiedlichen Mobilgeräten unter Android mit zurzeit 8 unterschiedlichen Versionen laufen können.

Diese Tatsache erfordert, dass die Firmen sich Strategien überlegen müssen, die nicht nur die Entwicklung und das Testen betreffen. Man muss sich darüber hinaus Gedanken machen, wie die eigenen Apps verwaltet, vermarktet und nicht zuletzt designt werden müssen, damit sie bei so viel Konkurrenz bestehen können. Im weiteren Verlauf dieses Artikels liegt der Fokus jedoch auf dem Thema Qualitätssicherung und Test.

Folgende Faktoren beeinflussen den Test:

  • User Experience/emotionales Erleben der Anwendung
  • Netzwerke und Provider
  • Unterbrechungen der Anwendung (Anruf, SMS, Alarm usw.)
  • Vielfalt der Plattformen
  • iOS 6 und 7, iPhone und iPad
  • Android
  • Blackberry OS 9 und 10
  • Windows Phone 7 und 8
  • Mobile Web
  • Gerätehersteller, Displaygrößen
  • Ressourcenverbrauch (Speicher, Energie, Bandbreite)
  • Sensorische Eingaben und Steuerungsmöglichkeiten
  • Regressions- und Automatisierungsportfolio
  • Tools
  • Applikationstypen
  • Webapplikation – Responsive Design
  • Hybridapplikation – Cross Plattform Development Frameworks
  • Hybridapplikation mit nativen Teilen
  • Native Applikation
  • Entwicklungsmodell – agil oder traditionell
  • Häufigkeit der Lieferung der Testobjekte
  • Testzyklen und Teststufen

Die Komplexität ist da, wird da bleiben und wird aller Voraussicht nach sogar noch steigen. Aus Sicht der Tester gibt es einiges zu beachten und vor allem neu zu lernen.

Konforterwartung der Nutzer

Unabhängig davon, welches Betriebssystem und welches Gerät benutzt werden, erwartet der Benutzer, dass die App funktioniert. Wenn die App nicht innerhalb von 2 bis 3 Sekunden geladen ist, wird sie gelöscht. Keine Chance auf eine zweite Runde!

Alle Objekte müssen da sein und reagieren, wie es der Anwender erwartet. Allein wenn wir uns die unterschiedlichen Displaygrößen und Auflösungen ansehen, stellen wir fest, dass beim Testen einiges auf uns zukommt. Dies hängt damit zusammen, dass mobile Applikationen immer im Vollbildmodus laufen und somit mit allen Auflösungen und Displaygrößen gut aussehen müssen.

Funktionales Testen

Wir werden herausgefordert, beim funktionalen Testen einiges zu beachten. Es reicht nicht aus, dass wir Testfälle systematisch ermitteln und diese ausführen. Wir müssen explorativ testen sowie eine stationäre und mobile Testdurchführung anwenden. Vor allem müssen wir uns unorthodoxe Testszenarien überlegen, die das Verhalten der wirklichen Nutzer möglichst authentisch wiederspiegeln. Die Kombination von echten Geräten und Emulatoren ist ein Muss. Die manuelle Testausführung alleine ist jedoch nicht ausreichend: Ein weiteres zwingendes Element ist die Automatisierung ausgewählter Testfälle.

Die frühzeitige Einbindung von echten Benutzern ist unausweichlich, um sicher zu stellen, dass die Nutzung der App vom Anwender positiv erlebt wird. Wenn der Endbenutzer die App nicht mag, wird sie gelöscht und es wird ein Konkurrenzprodukt installiert. Der Kunde ist weg und kommt nie wieder.

Die Interoperabilität mit den unterschiedlichen Versionen der Betriebssysteme und die Unterbrechungen durch andere Anwendungen, wie zum Beispiel das Telefon oder Nachrichten, sind beim Testen von mobilen Applikationen eine weitere Herausforderung, die in der Planung und vor allem aber in der Durchführung berücksichtigt werden muss.

Usability Testing

Diese Testart setzt den Fokus auf die Interaktion zwischen dem User und der Applikation sowie auf das Design der Applikation. Der mobile User ist ein besonderer User: Er mag es schnell und unkompliziert; er erwartet, dass die App so funktioniert, wie er es sich vorstellt; er hat wenig Zeit. Die Anzahl von Apps, die das Gleiche können, ist enorm. Bei dieser Testart sollten Spezialisten hinzugezogen werden. Weiterhin sollten möglichst früh Usability-Studien mit Stellvertretern der anvisierten Endbenutzer durchgeführt werde, um so früh wie möglich festzustellen, ob die Entwicklung in die richtige Richtung geht oder ob Änderungen am Design der GUI oder der Benutzerführung notwendig sind.

Accessibility Testing

Ein Teil des Usability Testing ist das Accessibilty Testing. Die Benutzung der Apps durch Personen, die zum Beispiel seh- oder hörbehindert sind, muss gewährleistet sein. Dies muss im Design und Test der Anwendung berücksichtigt werden. Wie auch der UsabilityTest muss der Accessibility-Test früh geplant, mit ausreichenden Ressourcen bedacht und schließlich ausgeführt werden.

Sicherheitstest

Sicherheitsprüfungen sind kontextbezogen. Unterschiedliche Apps erfordern unterschiedliche Sicherheitskonzepte. Die App einer Bank unterscheidet sich von der App einer Veranstaltung. Dies gilt sowohl für die Umsetzung als auch für den Test. Daher ist es besonders wichtig festzulegen, welche Anforderungen an die Sicherheit der Applikation bestehen. Nur wenn die Anforderungen an die Sicher
Abbildung

heit bekannt sind, können diese im Design, in der Umsetzung sowie beim Test wirtschaftlich berücksichtigt werden. Ein nachträgliches Hineintesten der Sicherheit allein ist nicht sinnvoll und führt in der Regel dazu, dass weitgehende Änderungen notwendig werden, die wiederum großen Aufwand für Regressionstests nach sich ziehen, mit denen geprüft werden muss, dass die Sicherheitsänderungen nicht die Funktionalität oder eine sonstige Charakteristik der Software verändert.

Bei der Prüfung der Sicherheit kommen wir nicht um eine Analyse der Architektur herum. Die Modellierung von Bedrohungen und Ableitung von Maßnahmen zum Umgang mit diesen Bedrohungen ist ein weiteres wichtiges Element, um eine sichere App auf den Markt bringen zu können. Weitere zu berücksichtigende Bausteine sind die Datensicherheit und -integrität. Hierbei sind nicht nur die Daten zu berücksichtigen, die von der App selbst genutzt werden, sondern auch alle anderen Daten, die auf dem mobilen Endgerät vorliegen. Beispielsweise wäre es verheerend, wenn die App die Daten der Kontaktliste des Nutzers verändern oder gar zerstören würde. Zusätzlich sollte die App Penetrationstests unterzogen werden.

Performance Testing

Wie bereits erwähnt ist die Performance ein zentrales Element für den Erfolg der Applikation. Die Gesamtperformance setzt sich dabei aus verschiedenen Elementen zusammen: Zum einen aus der Performance der App selbst; zum anderen aber auch aus der Performance des Backends, mit dem die App kommuniziert. Eine App wird sehr schnell nicht mehr genutzt, wenn sie zwar schnell geladen ist, aber für jeden Arbeitsschritt, den sie für die Kommunikation mit dem Server aufwendet, eine gefühlte Ewigkeit benötigt. Die Strategie hier sollte sein, gezielte Tests im Backend auszuführen und dabei das Verhalten der App genau unter die Lupe zu nehmen. Dies kann sehr gut mit kommerziellen Tools wie zum Beispiel SOASTA CloudTest und TouchTest geplant und durchgeführt werden. Bei den Apps selber müssen die initialen Ladezeit sowie die Ladezeit zwischen Prozessschritten untersucht werden. Welche Verarbeitungsschritte werden gebraucht? Wie sieht der Ressourcenverbrauch aus? Dabei ist nicht nur die real gemessene Zeit relevant, sondern auch die gefühlte. Das Netzwerk spielt eine weitere wesentliche Rolle: Sind wir über WLAN, LTE, G3 oder GSM verbunden? Hinzu kommt bei einer mobilen App, wie der Einfluss auf die Performance ist, wenn während der Nutzung das Netzwerk gewechselt wird.

Robustheitstests

Vor allem Android-Geräte, die sich aufgrund unterschiedlicher Hardware sowie herstellerspezifischer Erweiterungen trotz gleicher Betriebssystemversion unterschiedlich verhalten, erfordern, dass wir Apps auf Robustheit testen. Wie reagiert die App bei bekannten Fehlern in den Geräten?

Portabilitätstests – Installation und Kompatibilität

Das Schlimmste, was passieren kann, ist, dass der Kunde nicht einmal die Chance hat, die App zu nutzen. Die Herausforderung besteht darin, die notwendigen Zielplattformen zu kennen und sicherzustellen, dass die App sich auf diesen Plattformen installieren, ausführen und benutzen lässt. Die Kompatibilität mit den Geräten muss gegeben sein.

Internationalization und Localization Testing

Einige Apps setzen je nach Land andere Sprachen, GUI-Elemente oder gar Nutzungsprozesse ein. Sollte dies der Fall sein, ist es notwendig, eine adäquate Strategie zu fahren. Es muss geprüft werden, ob man die regionalen Anpassungen vor Ort mit Simulatoren testen kann oder ob man ausgewählte Gerätetypen in den jeweiligen Ländern zum Test durch einheimische einsetzt. Diese Art von Test kann sehr kostspielig sein.

Regressionstests

Apps haben meistens ein kurzes Versionsleben. Sie werden öfter als andere Software aktualisiert. Bevor die App nach Fehlernachtests oder Tests neuer Funktionalitäten ausgeliefert wird, muss ein Regressionstest durchgeführt werden. Die Tiefe des Regressionstest sollte nach Möglichkeit durch eine Auswirkungsanalyse definiert werden.

Testautomatisierung

Der manuelle Test der Apps ist unumgänglich. Die Automatisierung von Tests ist jedoch ebenfalls sehr wichtig. Es gibt eine Reihe von Tools auf dem Markt, die unterschiedliche Schwerpunkte setzen. Eine Auswahl ohne ein Proof of Concept ist kaum möglich, da die Konzepte dahinter sehr variieren. Neben Werkzeugen kommerzieller Anbieter wie zum Beispiel SOASTA oder Ranorex gibt es auch Open-Source-Alternativen wie beispielsweise Selendroid und ios-driver zum automatisierten Test mit Selenium.

Fazit

Mobile App Testing ist deutlich mehr, als was bisher im Rahmen der Softwarequalitätssicherung gemacht worden ist. Die Komplexität und Vielfalt, die durch Betriebssysteme, Applikationstypen, Geräte, Netzwerke, Displaygrößen, User Experience, Interoperabilität, Sicherheit, Performance etc. gegeben ist, muss während des Testprozesses bedacht, geplant und in der Testausführung berücksichtigt werden. Der Erfolg eines Unternehmens ist immer stärker daran gekoppelt, wie es mit dem Kunden unterwegs agiert und wie zufrieden diese mit der App sind. Unsere Fähigkeiten als Tester müssen wir an die neuen Gegebenheiten anpassen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Kategorien

Recent Posts