Navigation überspringen

Mobile-Testautomatisierung mit Appium

Wie lässt sich App-Testing effektiv gestalten? – Evaluation anhand der ITGAIN Banking 5.0 App
 

Eine unserer Antworten auf die Gestaltung des digitalen Übermorgens ist die ITGAIN Banking 5.0 App, die wir als Pilotprojekt zusammen mit der Hochschule Weserbergland (HSW) entwickelt haben und nun intern weiter vorantreiben, um unsere bankfachliche Expertise ebenso wie unser Know-how in der Softwareentwicklung und der Qualitätssicherung zu unterstreichen. Das Ziel der ITGAIN Banking 5.0 App ist es, den Service sowie die Dienstleistungen einer digitalen Bankfiliale zu bieten. Um den Nutzer optimal informieren zu können, wird die Situation des Nutzers seinen Bedürfnissen angepasst, ohne dass ein persönlicher Kontakt zu einem Kundenberater bestehen muss.

Der Prototyp der HSW wurde durch das Team Qualitätsmanagement anforderungsbasiert getestet. Aus den Anforderungen, die im Testmanagementwerkzeug TestLink erfasst wurden, wurden die Testziele und Testbedingungen abgeleitet. Dazu gehören Tests, die einzelne Funktionen tätigen oder solche, die nicht-funktionalen Eigenschaften wie Zuverlässigkeit oder Benutzbarkeit untersuchen. Die Ergebnisdokumentation der durchgeführten Tests erfolgte ebenfalls im Testmanagementwerkzeug TestLink. Der Banking 5.0 App Prototyp sollte effektiv auf den unterschiedlichsten mobilen Endgeräten verprobt werden. Eine Möglichkeit von App-Testing ist das Emulieren von Smartphones auf Computern – virtuelles Testen.

Virtuelles Testen

Beim virtuellen Testen lassen sich verschiedene Geräte und Betriebssysteme emulieren. Der Emulator modelliert die Hardware und dieselbe Laufzeitumgebung wie sie die physische Hardware verwendet.  Die niemals endende Flut verschiedener Formfaktoren und Bildschirmgrößen sowie die große Fragmentierung der Android-Betriebssysteme erschweren dabei die Möglichkeiten, Apps und ihr User Interface (UI) auf Bedienbarkeit zu testen. Konnektivität von Endgeräten und deren Performance lassen sich nur annähernd nachbilden.

Ein Emulator kann ein echtes Endgerät jedoch nicht vollständig ersetzen, da z. B. Funktionen wie (Multi-) Touchfunktionen oder Beschleunigungsmesser nicht unterstützt werden. Auch kann man das „Look and Feel“ einer App nicht gut über einen Emulator testen.

Die Erfahrung zeigt, dass in der Praxis am echten Endgerät, abhängig von Hersteller und Geräteversion, Bluetooth, WLAN, GPS und anderen Verbindungen, nicht immer die erwartete Leistungsfähigkeit gewährleistet werden kann. Außerdem weiß man auch erst wie ein Gerät die Applikation annimmt, wenn man diese installiert: Hier geht es um die Leistung des Prozessors, Nutzung von Arbeitsspeicher und den Energieverbrauch.

Virtuelle Tests waren im Rahmen der operativen Testdurchführung des Banking 5.0 App Prototypen also nur bedingt geeignet.

Testen auf echten Endgeräten

Das Testen auf echten Endgeräten bietet eine bessere Annäherung an den realen Echtzeitbetrieb der Apps.

Bei ITGAIN verwenden wir Appium, um Tests für mobile Apps auf echten Geräten unseres Hardware-Pools durchzuführen. Appium ist ein Open Source Framework zur Testautomatisierung von Apps auf mobilen Geräten. Appium basiert auf der Grundidee, dass keinerlei Modifikationen (z. B. SDKs, Re-Kompilierung) an nativen Apps vorgenommen werden müssen, um automatisierte Tests gegen die Banking 5.0 App ausführen zu können. Ebenso wie Selenium ist auch Appium ein Tool zur UI-Testautomation und bedient sich des JSON-Wire-Protocols, das in diesem Fall die Testautomatisierung von Apps und nicht von Webanwendungen vereinfacht. Das JSON-Wire-Protokoll fungiert als Vermittler zwischen Client-Bibliotheken und WebDrivers. Dabei ermöglicht Appium, alle drei Typen von mobilen Apps zu testen:

  1. native
    mit Native Apps werden Anwendungen auf mobilen Endgeräten bezeichnet, die speziell für das Betriebssystem des jeweiligen Endgerätes konzipiert und entwickelt wurden.
  2. webbasierte
    bei webbasierten Apps handelt es sich um ein Anwendungsprogramm, das nach dem Client-Server-Modell funktioniert.
  3. und hybride Apps

eine Hybride-App ist eine mobile App, die eine Webansicht enthält, um eine Webapplikation innerhalb der nativen App auszuführen.

Soll im Test ein Betriebssystem emuliert werden, muss Appium zuvor z. B. über Android Studio auf einem emulierten Gerät konfiguriert werden. Die Testskripte werden dann auf einem Endgerät ausgeführt. Appiums Kern ist dabei die API, die Code sowohl für iOS als auch Android zur Verfügung zu stellt – Crossplattform heißt hier die Philosophie.

In der neuesten Version von Appium wurde der sogenannte UI-Automator integriert, somit lassen sich sämtliche manuelle Funktionen von nativen Android-Apps automatisieren. Auch Apples XCUITest Framework wird von Appium unterstützt. Das Besondere daran ist, dass sich verschiedene manuelle Touchscreen-Interaktionen so auf dem gewünschten Endgerät abbilden lassen.

Funktionsweise von Appium

Appium funktioniert über einen lokalen Server, der auf dem Computer aufgesetzt wird. Dabei nutzt es nur standardisierte APIs und Technologien wie zum Beispiel XCUITest und UI-Automator. Die Tests können in vielen Sprachen über diverse Software-Entwicklungsumgebungen durch die dazugehörigen Language Bindings geschrieben und ausgeführt werden. So ist die Automation per Java, C# oder auch Python möglich.

Dabei arbeitet Appium als „Übersetzer“ zwischen dem Testskript und der zu testenden Banking App 5.0. In den Capabilities von Appium wird festgelegt, auf welcher Art von Endgerät die Testfälle laufen sollen. So können einmal aufgesetzte Testsuits auch für nachfolgende Android/iOS-Versionen relevant bleiben.

Operative Anwendung von Appium

Im Rahmen von Tests auf mobilen Endgeräten verwenden wir Appium hauptsächlich zum Testen der grafischen Oberflächen. Dabei automatisiert Appium die Nutzereingaben und stellt so die Funktionalität der Benutzeraktionen sicher. Dadurch kann die Qualität der Banking 5.0 App auch bei Änderungen sichergestellt und das Applikationsverhalten dokumentiert werden.

Fazit

Neben manuellen Tests durch unser Testteam konnten wir mit der Appium die Testautomatisierung der Banking 5.0 App effektiv und wiederholend testen. Die größte Stärke der verwendeten Client-Server-Architektur ist, dass Tests und Server auf unterschiedlichen Geräten laufen können, wobei der Server selbst auf nur einem Endgerät laufen muss. Von dort aus können mehrere Endgeräte angesprochen werden.

Mithilfe unseres Testing as a Service (TaaS) können wir Tests auf einer Vielzahl echter, aber auch emulierter Geräte durchführen. So können sich Kosten der Testumgebung senken lassen und gleichzeitig die Qualität der App beträchtlich erhöht werden, vor allem, wenn zuvor nur auf den aktuellen Smartphones oder nur mit Emulatoren getestet wurde.

Im digitalen Übermorgen kommen wir ohne Smartphones und Tablets sicher nicht aus. Die verwendeten Apps sollen unseren Qualitätsansprüchen Rechnung tragen und müssen zuvor ausgiebig getestet werden. Warum nicht also automatisiert mit Appium?

Nehmen Sie Kontakt auf

Unsere Website kann natürlich nur einen ersten Eindruck von uns und unserem Leistungsspektrum vermitteln. Viel besser können wir in einem persönlichen Gespräch darstellen, wer wir sind, was uns ausmacht und was wir für Sie tun können. Per E-Mail, am Telefon oder face to face. Wir freuen uns auf den Dialog mit Ihnen.

Captcha Grafik