In den letzten zehn Jahren hat sich die Zahl der Smartphone-Nutzer stark erhöht. Heute verbringen die US-Bürger mehr Zeit auf mobilen Geräten als vor dem Fernseher.
Quelle – eMarketer.com
Vorwiegend verbringen Smartphone-Nutzer Zeit mit mobilen Anwendungen. Daher ist die Entwicklung einer großartigen mobilen App-Erfahrung unerlässlich. Um sicherzustellen, dass ihre Apps nahtlos auf Android und iOS funktionieren, ist ein ordnungsgemäßes Testen vor der Freigabe in den jeweiligen App-Stores entscheidend.
In diesem Artikel werden wir die besten Praktiken für das Testen von mobilen Anwendungen besprechen. Wir werden über die beliebtesten Test-Frameworks sprechen und sehen, wie man einige von ihnen wie Appium, Selendroid verwendet.
Automatisierte Mobile Application Testing Frameworks
Es gibt viele Frameworks und Tools, die für das Testen von mobilen Anwendungen verwendet werden. Einige der beliebtesten sind:
Appium
Appium ist ein beliebtes Open-Source-Tool, das für automatisierte Mobile-App-Tests verwendet wird. Ein Entwickler kann seine nativen oder hybriden iOS- und Android-Anwendungen mit Appium testen. Appium arbeitet nicht alleine. Es führt die Testfälle über die WebDriver-Schnittstelle aus. Da es mehrere Plattformen unterstützt, können Tester ihren Quellcode auch für Tests auf iOS und Android wiederverwenden.
Lassen Sie Ihre Appium-Tests auf echten Android & iOS-Geräten laufen
Testen Sie täglich 100 Minuten kostenlos.
Calabash
Calabash ist ein Testframework für mobile Anwendungen, das mit mehreren Sprachen arbeitet. Es unterstützt Ruby, Java, Flex und .NET. Tester können APIs verwenden, um native Anwendungen zu aktivieren, die auf Touchscreen-Geräten laufen. Dieses Framework verfügt über Bibliotheken, mit denen Testskripte programmatisch mit nativen und hybriden Apps interagieren können.
Selendroid
Selendroid ist auch als Selenium für mobile Apps für Android bekannt. Tester können mit Selendroid Tests für native und hybride mobile Anwendungen durchführen. Selendroid kann parallele Testfälle auf mehreren Geräten ausführen, ähnlich wie Selenium für Cross-Browser-Tests.
Espresso
Espresso ist ein nützliches Test-Framework für das automatisierte Testen der Benutzeroberfläche (UI) einer mobilen App. Da das Testen der Benutzeroberfläche einer Anwendung vor dem Deployment essentiell ist, wird Espresso von App-Entwicklern und App-Testern häufig eingesetzt. Entwickler können ein Szenario erstellen und aufzeichnen, wie sie mit einem Gerät interagieren. Anschließend können sie Assertions hinzufügen, die das Verhalten der UI-Elemente der App durch die Aufnahme von Snapshots verifizieren. Das Tool speichert die Aufzeichnung und generiert UI-Testfälle, die sie zum Testen ihrer Anwendung verwenden können.
Robotium
Robotium ist ein beliebtes Open-Source-Tool, das nur für das Testen von Android-Anwendungen gedacht ist. Die Testfälle sind in Java geschrieben. Robotium ist beliebt für seine Fähigkeit, automatisierte Black-Box-Testfälle zu schreiben. Es automatisiert mehrere Aktivitäten, die ein Tester auf seiner Android-App ausführen kann und benötigt nur minimale Zeit, um Testfälle zu schreiben.
Außer diesen gibt es noch andere beliebte Tools wie Monkeytalk, Testdroid, Frank, UIAutomator.
Tipps und Best Practices für das automatisierte Testen von mobilen Anwendungen
Nachfolgend finden Sie einige Best Practices, die Entwicklerteams befolgen sollten, wenn sie über das automatisierte Testen von mobilen Anwendungen nachdenken:
- Machen Sie die Anwendung testbar
Im aktuellen agilen Zeitalter müssen Entwickler Anwendungen erstellen, die für das Testen bereit sind. Entwickler sollten aktiv mit den Testteams diskutieren, um Richtlinien festzulegen. So sollten Entwickler z.B. Elementen eine eindeutige ID geben, um sie testbar zu machen.
- Nicht zu viel XPath verwenden
XPath ist eine Abfragesprache, die Nodes in einer XML-Datei auswählen kann. Sie kann verwendet werden, um beim Testen über Elemente zu navigieren. Google oder Apple bieten keine nativen Abfragen vom Typ XPath an. Wenn Tester diese also häufig verwenden, ist Appium gezwungen, einige Aufrufe zu machen. Diese Aufrufe unter der Haube finden XPath-unterstützende Elemente, wirken sich aber negativ auf die Leistung aus.
- Selektoren in der richtigen Reihenfolge anordnen
XPath ist ortsabhängig. Es ist langsam im Vergleich zu den anderen Locatoren in Selenium wie ID, Link Text oder Name. Ordnen Sie die Selektoren so an, dass ID zuerst und XPath zuletzt kommt, um Elemente schneller zu identifizieren.
- Verwenden Sie Accessibility-IDs
Anstatt XPath übermäßig zu verwenden, können die Tester Accessibility-ID-Locators nutzen. Wenn Benutzer Barrierefreiheits-IDs für ihre Elemente setzen, macht dies diese besser testbar und erhöht den Testumfang der Anwendung.
- Betrachten Sie die Ansichtszustände der Anwendung
Der Ansichtszustand ist eine Technik, die zum Speichern des Seitenwerts verwendet wird, wenn die Anwendung Informationen vom Server sendet oder empfängt. Angenommen, es gibt 15 Testfälle für eine bestimmte Funktionalität der Anwendung. Darunter wiederholen 10 Testfälle die gleiche Funktionalität des Einloggens und des Aufrufs der Seite. Diese Wiederholung ist eine enorme Zeitverschwendung. Richten Sie bei der Entwicklung den Ansichtszustand der Anwendung so ein, dass der Test genau dort beginnt, wo er benötigt wird.
- Keine Kompromisse mit Emulatoren und Simulatoren
Emulatoren und Simulatoren ahmen teilweise echte Geräte nach. Die Leistung einer Anwendung variiert jedoch je nach Software- und Hardware-Konfiguration der realen Geräte der Benutzer. Daher ist das Testen von mobilen Anwendungen auf realen Geräten ein Muss. Sogar Google und Apple empfehlen, dies zu tun, bevor Apps bei Google Play und im App Store eingereicht werden.
Ein optimaler Weg, um eine maximale Abdeckung zu erhalten, ist die Verwendung eines Cloud-basierten Testprodukts wie BrowserStack, das Zugang zu mehr als 2000 realen Geräten für iOS und Android bietet.
Starten Sie Cloud-basiertes Testen kostenlos
Zusammenfassend
Mit dem Anstieg der Smartphone-Durchdringung und der Zeit, die auf mobilen Geräten verbracht wird, ist es entscheidend, ein nahtloses mobiles App-Erlebnis sicherzustellen. Um dies zu erreichen, müssen Teams das richtige Test-Framework einsetzen. Beliebte Testautomatisierungs-Frameworks sind Appium, Calabash und Selendroid. Entwicklungsteams müssen auch die Best Practices im Auge behalten und sollten aktiv mit den Testteams zusammenarbeiten, um sicherzustellen, dass sie Anwendungen erstellen, die einfacher zu testen sind. Das Testen muss auch auf realen Geräten anstelle von Emulatoren und Simulatoren durchgeführt werden. All dies wird den Teams helfen, Apps schneller auszuliefern und den Benutzern ein fehlerfreies Erlebnis zu bieten.