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.

ITGAIN Appium

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.

Appium Banking

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?

 

Neuen Kommentar schreiben

Ihre E-Mail Adresse wird nicht veröffentlicht.

NEUESTE BEITRÄGE

Die drei größten Softwaretest-Mythen
05.06.2023

Die drei größten Softwaretest-Mythen

Sören Schmock

Softwaretests sind ein sehr wichtiger Bestandteil des Softwareentwicklungsprozesses, um die Qualität, Funktionalität und Sicherheit von Softwareprodukten zu gewährleisten. Doch wie bei vielen anderen Bereichen der Technik gibt es auch hier einige Mythen, die sich hartnäckig halten und die Arbeit der Tester erschweren oder sogar gefährden können. In diesem Blogbeitrag möchte ich drei der größten Softwaretest-Mythen aufdecken und erklären, warum sie nicht stimmen.

Expertise
Einführung von Protegrity - Ein Kundenprojektbericht
31.05.2023

Einführung von Protegrity - Ein Kundenprojektbericht

Leon Geitmann

Im Juli 2022 begann offiziell das Kundenprojekt „Einführung Protegrity“. Über die nächsten 6 Monate wurde dabei die neue Softwarekomponente Protegrity in die bestehende Infrastruktur eines IT-Dienstleisters im Bankenbereich implementiert. Worum es sich bei Protegrity handelt, warum es eingeführt wurde und wie dieses Projekt in etwa ablief, möchte ich in einem kurzen Projektbericht teilen.

Expertise
Welche Hürden gibt es bei Testdatengeneratoren im Softwaretest?
30.05.2023

Welche Hürden gibt es bei Testdatengeneratoren im Softwaretest?

Sören Schmock

Testdatengeneratoren sind Werkzeuge, die automatisch Daten erzeugen, die für den Softwaretest verwendet werden können. Sie können nützlich sein, um große Mengen von Daten zu erzeugen, die bestimmte Anforderungen erfüllen, wie z. B. Format, Typ oder Bereich. Allerdings eignen sich Testdatengeneratoren noch immer nur sehr bedingt für den Softwaretest.

Expertise