Testautomatisierung mit Appium

Testautomatisierung mit Appium

Wie kann ein Unternehmen das digitale Übermorgen gestalten? Eine meiner Antworten, aus der Rolle als Bereichslieter, lautet:kenne den Mark und zeige auf, dass du entsprechende Kompetenzen hast.
So wurde die ITGAIN Banking 5.0 App vorangetrieben, um die bankfachliche Expertise ebenso wie unser Know-How in der Softwareentwicklung und der Qualitätssicherung zu unterstreichen.

...weiter lesen

Der Prototyp der Banking 5.0 App wurde anforderungsbasiert getestet. Aus den Anforderungen, die im Testmanagementwerkzeug TestLink erfasst wurden, wurden die Testziele und Testbedingungen abgeleitet. Dazu gehörten 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.
Banking 5.0 App - Prototyp

Das Ziel der ITGAIN Banking 5.0 App war es, den Service sowie die Dienstleistungen einer digitalen Bankfiliale zu bieten. Um den Nutzer optimal informieren zu können, wurde die Situation des Nutzers seinen Bedürfnissen angepasst, ohne dass ein persönlicher Kontakt zu einem Kundenberater bestehen musste. Eine Möglichkeit von App-Testing ist das Emulieren von Smartphones auf Computern – 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ährend 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.

Das Testen auf echten Endgeräten bietet eine bessere Annährung an den realen Echtzeitbetrieb der Apps. Bei ITGAIN verwendeten 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.

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.

Funktionsweise von 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.

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.

Video

Qualitätsmanagement

Fazit

Neben manuellen Tests durch ein 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 war, dass Tests und Server auf unterschiedlichen Geräten laufen konnten.,wobei der Server selbst auf nur einem Endgerät laufen musste. Von dort aus konnten mehrere Endgeräte angesprochen werden. Mithilfe des Testing as a Service (TaaS) konnten Tests auf einer Vielzahl echter, aber auch emulierter Geräte durchführt werden. So liesen sich die Kosten der Testumgebung senken 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?
Sprechen Sie mich gerne an und profitieren Sie von meiner Erfahrung im Softwaretest.


Testautomatisierung mit Appium

Blog

Lade...