Skip to main content

Die durchschnittliche Aufmerksamkeitsspanne eines Menschen beträgt weniger als 9 Sekunden! Hast du dich jemals gefragt, warum das so ist? Die meisten mobilen Anwendungen, die in letzter Zeit entstanden sind, verlangen von dir, durch einen Feed zu scrollen, wobei das Gehirn darauf eingestellt ist, sich nur wenige Sekunden auf etwas zu konzentrieren. Das hat dazu geführt, dass die Aufmerksamkeitsspanne des durchschnittlichen Nutzers erheblich gesunken ist.

Mit der Vielzahl an mobilen Anwendungen, die im App Store verfügbar sind, wächst auch die Verantwortung für das Testen von Apps und die Skalierung von Regressionstests. Genau hier kommen die Tools für das mobile Testen ins Spiel. 

Ich gehöre zu den frühen Anwendern von mobilen Testframeworks und nach meiner Erfahrung spielen Automatisierung, Formfaktoren und Performance-Tests eine ebenso wichtige Rolle, um Reichweite und Wirkung in der mobilen Welt zu erhöhen. In diesem Artikel teile ich die effektivsten Techniken zur Automatisierung von Tests für deine mobile Anwendung.

Komponenten, die beim Testen von mobilen Anwendungen zu berücksichtigen sind

Das Testen auf einer bestimmten Plattform bringt eigene Herausforderungen mit sich, aber auf Mobilgeräten kommen zusätzliche Parameter hinzu, die berücksichtigt werden müssen. Egal, ob du manuell oder automatisiert testest: Neben den Funktionstests sollten sich deine Testfälle auf folgende Aspekte konzentrieren:

Konnektivität

Es ist wichtig, darauf einzugehen, was passiert, wenn ein Nutzer sein Mobilgerät im Flugmodus oder offline verwendet, was bei schwankender Bandbreite geschieht usw., um sicherzustellen, dass die App funktioniert. 

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

This field is for validation purposes and should be left unchanged.
By submitting you agree to receive occasional emails and acknowledge our Privacy Policy. You can unsubscribe at anytime.

Standort 

Gerade bei mobilen Anwendungen, die von GPS oder standortbasierten Diensten abhängen, muss das Testen durch die Simulation des Standorts mit Tools wie MobileSpy, Location Spoofer usw. erfolgen, da sonst Tests schwierig wären – zum Beispiel: Möchtest du ein Testszenario für eine Ride-Sharing-App simulieren, bei der jemand eine Fahrt in NYC anfordert und es Änderungen an den Backend-Microservices gibt, die spezifisch für das Auffinden eines Fahrers in dieser Region sind. Ohne Simulation würden die Tests keine genauen Ergebnisse liefern. 

Betriebssystem

Gerade bei der Vielzahl von Android-Smartphones am Markt heute ist das Testen auf allen verfügbaren OS-Versionen nahezu unmöglich – wie also priorisieren? Bei iOS gibt es zusätzliche Herausforderungen durch die von Apple eingeführten Xcode-Versionen, die an OS-Versionen gekoppelt sind. 

Heutzutage nutzen Unternehmen häufig Drittanbieter wie BrowserStack, um Simulatoren/Emulatoren für verschiedene Betriebssysteme sowie Gerätetests und Cross-Browser-Tests bereitzustellen. 

Die UI-Icons unterscheiden sich je nach Betriebssystem-Plattform: Windows, iOS und Android. Was die Testautomatisierung betrifft, verwenden die meisten von uns Simulatoren – die Android-Simulatoren laden deutlich langsamer, während die iOS-Geräte schneller sind.

Die verschiedenen Tastenkombinationen für mobile Betriebssysteme, die beim Erstellen von Screenshots zur Fehlerbehebung verwendet werden, sind ein wichtiger Hinweis für jeden, der mobile Anwendungen testet

Formfaktor

Bei der Entwicklung mobiler Anwendungen sollten fünf Hauptformfaktoren für die unterschiedlichen OS-Versionen berücksichtigt werden, zusätzlich zur Hoch- oder Querformat-Darstellung auf jedem Gerätetyp: 

GerätBildschirmgröße
Kleine Mobilgeräte3,5 Zoll oder kleiner
Mittlere Mobilgeräte3,5 bis 5 Zoll
Tablets5 bis 7 Zoll
Kleine Tablets7 bis 8,5 Zoll
Große Tablets8,5 Zoll oder größer

Wie wählt man das richtige Framework für die mobile Automatisierung?

Die Berücksichtigung von Formfaktoren bei der Entwicklung mobiler Anwendungen bedeutet, für Responsivität zu sorgen, wenn die gleiche App auf verschiedenen Mobilgeräten und OS-Typen geöffnet wird. Wenn eine App weltweit genutzt wird und Unternehmen ihre Nutzerbasis ausbauen möchten, müssen sie diese Entscheidung möglichst früh im Entwicklungsprozess treffen und gegebenenfalls auf React Native Frameworks anstelle der nativen Entwicklung für Android oder iOS setzen.

Andernfalls investieren Unternehmen später Zeit und Ressourcen, um Apps umzustrukturieren und neu zu gestalten, um auf React Native Frameworks umzusteigen. Das hat direkte Auswirkungen auf die Teamanzahl und den Wartungsaufwand, da React Native die gleichzeitige Entwicklung für iOS und Android unterstützt. 

Werden mobile Anwendungen mit React Native Frameworks entwickelt, reduziert das außerdem den Aufwand für die Testautomatisierung, da nur ein einziges Testautomatisierungs-Framework für iOS und Android gepflegt werden muss. 

Es gibt verschiedene Möglichkeiten, mobile Anwendungen zu entwickeln. Manche Unternehmen wählen native Programmiersprachen wie Java und Objective C für Android- bzw. iOS-Anwendungen. Der Vorteil von nativen Sprachen ist die Möglichkeit, umfangreiche Funktionen anzubieten.

Andererseits sind die Element-IDs auf beiden Plattformen unterschiedlich – das bedeutet, wir benötigen jeweils eigene native Test-Frameworks wie Espresso für Android, XCUITest für iOS und so weiter, um das Gleiche zu testen. 

React Native ist eine weitere häufig verwendete Programmiersprache zur Entwicklung responsiver mobiler Anwendungen, die von Facebook als Open Source bereitgestellt wurde. Das Ziel war es, die mobile Entwicklungsarbeit auf beiden Plattformen zu vereinheitlichen, damit ein einziges Team genügt und die Element-IDs in beiden Apps gleich sind – sodass nur ein einziges Test-Framework wie Appium nötig ist, um die mobilen Anwendungen zu testen. 

Wenn es um die Automatisierung von Tests für Ihre mobile App geht, kann die Wahl der richtigen QA-Automatisierungstools einen erheblichen Unterschied in der Effizienz Ihrer Tests ausmachen.

Wie man die Automatisierung von Tests für iOS-Mobilanwendungen durchführt 

Bei manuellen Tests gibt es zahlreiche Kriterien, die beachtet werden müssen: Die meisten Unternehmen, die iOS-Apps entwickeln, geben genau an, welche Betriebssystem- und SDK-Versionen unterstützt werden. Das hilft dabei, den Testaufwand einzuschränken. 

Um Softwaretests zu skalieren, müssen wir in Automatisierung investieren. Es gibt viele bekannte Frameworks, die automatisierte iOS-Mobilanwendungstests unterstützen. Im Rahmen unserer Diskussion beschränken wir uns auf die folgenden zwei Automatisierungstools:

  • XCUITest
  • Appium
XCUITestAppium
Framework für native Apps, das sich innerhalb des iOS-Quellcode-Verzeichnisses befindet. Eigenständiges Test-Framework, das außerhalb des Quellcodes entwickelt wird. 
Geschrieben in Objective C oder SwiftGeschrieben in Java, Python, etc.
Explizite Waits, die Bedingungen prüfen. Implizite Waits, welche sleep() verwenden und dadurch zu instabilen Tests führen können. 
Mocking von Backend-API-Antworten mit Open-Source-Bibliotheken wie MockingjayUnterstützt die Verwendung eines Mock-Servers. 
Da es sich um ein natives App-Framework handelt, kann es nur für iOS-Anwendungen genutzt werden. Da die Tests außerhalb des Quellcodes liegen und in Sprachen wie Java, Python usw. geschrieben werden können, lassen sich damit auch plattformübergreifende Apps wie Windows-, iOS- und Android-Anwendungen testen – sofern die Element-IDs auf beiden Plattformen identisch sind. 

Ich habe Mock-Server verwendet, um die Backend-Aufrufe zu simulieren und ausschließlich das UI zu testen. Hierzu wurde eine Basisklasse wie folgt erstellt: 

base class test screenshot

Nachdem die Basisklasse fertiggestellt ist, füge ich den eigentlichen Test hinzu, indem ich das Page-Object-Design-Muster wie folgt verwende: 

base home care test screenshot

Wie man die Automatisierung von Tests für Android-Mobilanwendungen durchführt

Es gibt weltweit über 2 Milliarden aktive Android-Geräte. Das Testen Ihrer Android-App auf unterschiedlichen Geräten und Betriebssystem-Typen ist nahezu unmöglich! Daher geben Unternehmen explizit an, welche Versionen unterstützt werden. Dies sorgt ebenfalls für ein besseres Nutzererlebnis.

Android-Automatisierungsframeworks wie Robotium, Selendroid usw. helfen dabei, Testprozesse zu beschleunigen. Im Rahmen unserer Diskussion konzentrieren wir uns auf die Automatisierungstools: Espresso und Appium:

EspressoAppium
Eigenständiges Framework, das innerhalb des Android-Quellcodes liegt. Getrenntes Testframework, das außerhalb des Quellcodes entwickelt wird. 
Geschrieben in Java und KotlinGeschrieben in Java, Python etc.
Explizite Wartezeiten, asynchrone Operationen werden durch die Funktion für idling resources unterstütztImplizite Wartezeiten, die die Verwendung von sleep() beinhalten, was zu instabilen Tests führt. 
Mocking von Backend-Antworten mit Open-Source-Bibliotheken wie Mockito und Retrofit BuilderUnterstützt die Nutzung von Mock-Servern.
Da dies ein natives Framework ist, kann es nur für die Prüfung von Android-Anwendungen genutzt werden. Da die Tests außerhalb des Quellcodes liegen und in Sprachen wie Java, Python usw. geschrieben werden können, lassen sich damit plattformübergreifende Anwendungen auf iOS und Android testen – vorausgesetzt, die Element-IDs sind auf beiden Plattformen identisch. 

Ein Vorteil der Verwendung nativer App-Frameworks ist die Möglichkeit, Mock-Server zu nutzen, um Backend-API-Aufrufe vorzutäuschen und so ausschließlich das UI zu testen. Hier ist ein Beispiel-Codeausschnitt, wie ich das umgesetzt habe:

mock server code screenshot

Je nachdem, wie eure Microservice-Architektur aufgebaut ist, holt ihr euch die Antwort entweder direkt aus dem Netzwerkanalyse-Tab im Browser oder von den Entwicklern, um sie dann wie folgt in euren Test einzubinden:

home test screenshot

Wie im obigen Beispiel zu sehen ist, wird HomeTabPage im Test aufgerufen. Statt jedes Element direkt zu prüfen, habe ich das Page-Object-Pattern im Framework wie folgt verwendet:

home page test screenshot

Mobile App Testwerkzeuge

Es gibt verschiedene Testtools in der Branche, und die Auswahl hängt von mehreren Faktoren ab: 

  • Kompetenzen des Teams
  • Ziel der Automatisierung
  • Zielgruppe für die Automatisierung: Produktmanager/Vertrieb/Entwickler/Tester
  • Kompatibilität des Testframeworks und des nativen Quellcodes
  • Anzahl der Hybrid-Apps

Zu den in der Branche gängigsten Tools gehören:

  • Selendroid
  • Robotium
  • Appium
  • Testdroid
  • UiAutomator

und viele mehr

Sie möchten kein eigenes Inhouse-Testing durchführen? Sie können auch Dienstleister für das Testen mobiler Apps beauftragen.

Performance-Testing für Mobile Apps

Bei der Prüfung mobiler Anwendungen sollten wir neben der Automatisierung zur Skalierung von Testaufwänden auch das Performance-Testing priorisieren, da es entscheidend dafür ist, ob Nutzer unsere Anwendung weiterhin verwenden.

Wenn das Laden eines Screens mehr als 2 Sekunden dauert, werden Nutzer schnell ungeduldig – das bestätigt auch unsere Recherche zur Aufmerksamkeitsspanne. Um Nutzer zu halten, müssen wir also in Performance-Tests investieren. 

Beim Testen der App-Performance müssen wir KPIs festlegen und unsere App daran messen: 

  • Maximale Antwortzeit
  • Durchschnittliche Antwortzeit
  • Durchschnittlicher Datendurchsatz
  • Maximale Anzahl aktiver Nutzer pro Betriebssystem und Gerätetyp

Die Nutzung von Testtools für Mobile Apps kann das Performance-Testing vereinfachen. Zum Beispiel kann Apptim Leistungsmetriken aus Sicht der Endnutzer erfassen—es liefert umfassende Performance-Berichte zu allen wichtigen Kennzahlen.

Zur Überwachung der Leistung von mobilen Anwendungen können wir Firebase Performance Monitoring verwenden. Dieses Tool bietet die Kontrolle über Leistungsdaten, indem es Einblicke in die Performance Ihrer App gewährt und eine Aufschlüsselung von Trace- und Netzwerkdaten nach Dimensionen wie App-Version, Land, Gerät und Netzwerktyp ermöglicht. 

Es gibt weitere Tools wie Appium Studio, Sauce Labs, Testdroid usw., die ähnliche Funktionen zur Leistungsüberwachung bieten. 

Ich hoffe, dieser Artikel hat Ihnen einen ersten Einblick in das Testen von mobilen Anwendungen und die damit verbundenen kritischen Faktoren gegeben! 

Für weitere Best Practices und Tipps zur Verbesserung Ihres Entwicklungsprozesses abonnieren Sie den QA Lead Newsletter.

Empfohlene Lektüre:

Schauen Sie sich das an:

Verwandte Tool-Liste: