Virtuelle Testings können eine Vielzahl von manuellen Anwendungen vorwegnehmen und eignen sich besonders für Regression Tests. Die Möglichkeiten dieser Tests sind aber beschränkt, da sie Endgeräte, deren Nutzung und Funktionen oft nur ungenügend abbilden. Das Test Automation Tool Appium geht über diese Beschränkungen hinaus.
Mit Selenium erschien vor 15 Jahren das erste Open Source Framework für automatisierte Sofwaretests, mit dem es möglich wurde, Webanwendungen auf unterschiedlichen Browsern, Betriebssystemen und Geräten zu testen. Später hat dann die der Smartphones durch das mobile und permanente Vorhandensein von Informationen ganz neue Herausforderungen an Tests gestellt.
Die Grenzen von automatisierten Testings
Beim virtuellen Testing lassen sich eine Vielzahl verschiedener Geräte und Betriebssysteme simulieren. Die niemals endende Flut verschiedener Formfaktoren und Bildschirmgrößen sowie die große Fragmentierung der Android-Betriebssysteme erschweren dabei aber die Möglichkeiten, Apps und ihr User Interface auf Bedienbarkeit. Konnektivität von Endgeräten und deren Performance lassen sich nur annährend nachbilden. Die Erfahrung zeigt, dass in der Praxis am echten Endgerät, abhängig von Hersteller und Geräteversion, Bluetooth, WLAN, GPS und andere Verbindungen nicht immer die erwartete Leistungsfähigkeit gewährleisten können. Außerdem weiß man auch erst wie ein Gerät die Applikation annimmt, wenn man sie aufspielt: Hier geht es um die Leistung des Prozessors, Nutzung von Arbeitsspeicher und den Energieverbrauch.
Testing mit Appium
Appium ist ein Tool, das grundsätzlich auf dem Selenium WebDriver Framework aufbaut, es aber ermöglicht, alle drei Typen von mobilen Apps zu testen: native, webbasierte und hybride Apps. Dabei führt es ein Testskript auf einem Endgerät aus und liefert gleichzeitig die gewünschte Emulation für das Betriebssystem mit. Appiums Kern ist dabei die API, welche 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: Damit lassen sich sämtliche manuellen 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.
Testing auf echten Geräten: Die Vorteile
Bei Appmatics verwenden wir Appium dafür, um Tests für mobile Apps auf echten Geräten unseres Hardware-Pools durchzuführen. Das bietet uns verschiedene Vorteile:
- Echte Displaygröße: Das Testskript simuliert die Nutzungstests unter den Vorgaben der echten Displaymaße und identifiziert so Fehler, die mit einer reinen Emulation des Gerätes unter Umständen nicht abgebildet werden könnten.
- Echte Funktionalität: In virtuellen Softwaretests lassen sich nur bestimmte Faktoren abbilden, die wirkliche Konnektivität und Leistung des Gerätes bleibt eine unbekannte Variable. Appium ermöglicht es, viele Hardwarefunktionen, wie etwa das WLAN des Gerätes, tatsächlich zu nutzen.
- Regressionstests: Es ist weiterhin möglich, tausende Durchläufe eines App-Tests zu simulieren, um so die Stabilität und Fehleranfälligkeit des Codes zu überprüfen – allerdings gerätespezifisch, sodass auch hier wieder eine bessere Abbildbarkeit von Nutzungsszenarien gewährleistet wird.
Die Simulation von Tests auf echten Endgeräten bietet also zusammenfassend eine bessere Annährung an den realen Echtzeitbetrieb der Apps. Appium ist dabei das Framework, das die Implementation von Emulatoren und Testskripts auf dem Endgerät ermöglicht. Trotz dieser Vorteile lohnt es sich auch immer wieder, manuelle App-Tests mit echten Tester:Innen durchzuführen: Nur so lassen sich auch solche Testszenarios finden, die noch nicht durch automatisierte Tests abbildbar sind und somit neue Use Cases finden, die später durch Testautomatisierung auf echten Geräten tausendfach wiederholt und getestet werden.