Die Automatisierung des Testens mobiler Anwendungen entstand zeitgleich mit der massenhaften Verbreitung von Smartphones. Anfangs war die Automatisierung kompliziert, da die Werkzeuge für unterschiedliche Plattformen stark variierten, was Probleme bei der Unterstützung universeller Tests verursachte.
Zu Beginn wurde die Automatisierung mobiler Anwendungen mit separaten Werkzeugen für jede Plattform durchgeführt, zum Beispiel UI Automator für Android und UIAutomation/XCUITest für iOS. Dies führte zu doppelten Testskripten und zusätzlichen Kosten.
Später entstanden plattformübergreifende Frameworks – wie Appium, das die gemeinsame Nutzung von Code für beide Plattformen ermöglicht, und die Vielfalt an Bibliotheken und Integrationsmöglichkeiten erweiterte sich.
Hauptschwierigkeiten:
Für die Automatisierung mobiler Anwendungen wird empfohlen, plattformübergreifende Werkzeuge (Appium, Detox usw.) zu verwenden und die Tests nach dem Prinzip der Wiederverwendbarkeit von Code unter Berücksichtigung der plattformspezifischen Besonderheiten zu erstellen. Es ist wichtig, die Tests mit qualitativ hochwertigen Mocks und einer schnellen Installation von Testdaten zu begleiten.
Kernmerkmale:
Kann man Tests für eine iOS-Anwendung auf einem Windows-Rechner mit Appium ausführen?
Nein, der vollständige automatisierte Test von iOS-Anwendungen ist nur auf macOS möglich, da Werkzeuge wie XCUITest/Xcode nur das Apple-System anerkennen.
Warum wird nicht empfohlen, Selenium/Webdriver-Tests direkt für mobile Anwendungen auszuführen?
Selenium/Webdriver sind für das Testen von Webanwendungen konzipiert. Für mobile Anwendungen werden spezifische Treiber (zum Beispiel Appium) verwendet, die die Arbeit innerhalb der App emulieren.
Kann man nur Emulatoren vertrauen und auf echte Geräte verzichten?
Nein, nur Emulatoren decken nicht alle Besonderheiten der Plattform ab: Leistungsprobleme, Unterschiede bei Sensoren und das Verhalten des Betriebssystems zeigen sich nur auf echten Geräten.
Das Team der automatisierten Tests schrieb separate Tests für Android über UI Automator und über XCUITest für iOS, ohne plattformübergreifende Wrapper zu verwenden.
Vorteile:
Nachteile:
Das Team implementierte Appium mit dem Page Object-Muster und konnte 90% der Tests mit gemeinsamer Logik abdecken, während das spezifische Verhalten nur in einzelnen Methoden hinterlegt wurde.
Vorteile:
Nachteile: