android app testing tutorial
Grundlegende Wissenssammlung vor dem Testen von Android Apps:
Wie der Titel selbst schon sagt, werden wir in diesem Tutorial mehr über den Android-Testprozess diskutieren.
Bevor ich jedoch auf die verschiedenen Details des Android-Testprozesses eingehe, möchte ich einige Fragen stellen.
Besitzt du ein Mobil Telefon?
Wie dumm ist diese Frage! Natürlich tun wir das alle. Jeder hat ein Handy. Mobiltelefone sind heutzutage zu einer Grundbedingung menschlicher Existenz geworden.
Können Sie mir das Betriebssystem auf Ihrem Telefon mitteilen?
Wenn Sie Ihr Telefon zwischen 2014 und 2016 gekauft haben, liegt die Wahrscheinlichkeit, dass Ihr Telefon unter Android ausgeführt wird, bei 80-85%.
Was du lernen wirst:
- Wachstum von Android
- Einführung in die Android-Anwendung
- Aufgabenliste vor Beginn des Testprozesses
- Testen von Typen für mobile Apps
- Best Practices beim Testen von Android-Apps
- Android Testing Framework
- Fazit
- Literatur-Empfehlungen
Wachstum von Android
Die folgenden Statistiken beschreiben auf leicht verständliche Weise mehr über das Wachstum von Android.
- Im Jahr 2009 war Android ein Neuling und machte nur 3,9% des Gesamtmarktes aus.
- Der Hauptverursacher war dann das Symbian-Betriebssystem mit einer satten Zahl von 47% (Goldene Tage von Nokia).
- Dieser Trend begann sich im Laufe der Jahre zu ändern und Android hat 2016 85,2% erreicht.
( Bildquelle ))
- Die oben genannten Nummern gelten nur für Mobiltelefone. Das Android-Betriebssystem hat auch in der Tablet-Branche einen großen Einfluss. Von 4,4% Marktanteil im Jahr 2011 auf 35,7% im Jahr 2015 spricht das Interesse, das die Menschen an Android-basierten Tablet-Geräten entwickelt haben.
( Bildquelle ))
- Der Google Play Store verzeichnete ebenfalls einen raschen Anstieg der Download-Zahlen. Von 2010 bis 2016 sind die Zahlen von 1 Milliarde Downloads pro Monat auf 65 Milliarden Downloads pro Monat gestiegen.
- Die App-Downloads werden auch stark von den niedrigen Preisen (Durchschnitt: 0,06 $ / App) der Android-Apps im Vergleich zu den iOS-Apps beeinflusst.
Warum habe ich dich gerade durch all diese Zahlen geführt?
Es war nur, um Sie darauf aufmerksam zu machen, wie umfangreich Android gewachsen ist, wie schwierig die App-Entwicklung geworden ist und wie viel Markt dieses Betriebssystem in den letzten zehn Jahren erobert hat.
Jede Website, Windows App und Mac App hat jetzt ein Android-Geschwister. Jeder entwickelt eine App für Android, sobald er eine Website / Windows-App entwickeln möchte. Dies ist jetzt notwendig geworden, da die Kunden in den letzten Jahren auch mobile Apps gegenüber Computer-Apps oder Websites bevorzugt haben.
Einige der Apps, die in unseren täglichen Aktivitäten sehr häufig verwendet werden, sind Flipkart, Amazon, Zomato, DeliveryHero, Citi Bank, TrueCaller, Facebook, Google Mail, WhatsApp usw.
Der Grund für den Anstieg des Android-Marktes ist folgender:
- Es ist ein offenes System, daher ist es einfach anzupassen, leicht zu erlernen und sogar die App-Entwicklung ist einfacher.
- Das Veröffentlichen einer App im Google Play Store ist im Vergleich zu den anderen Play Stores recht einfach.
- Es gibt mehrere Hersteller auf dem Markt für Android-Handys wie Sony, HTC, Samsung, Motorola usw.
- Auf Android gibt es eine Vielzahl von Funktionen wie DualSIM, microSD, austauschbarer Akku usw., was ein zusätzlicher Vorteil ist.
- Die Preise für die Android-Handys sind nicht zu hoch und es ist erschwinglich usw.
Neben den Entwicklungsanforderungen für Android-Apps ist auch die Anforderung an Tester gestiegen, die sich mit Android-Tests auskennen.
Als Tester müssen Sie viele Hausaufgaben machen, bevor Sie mit dem Testen einer von Android erstellten Anwendung beginnen. Das erste, was zu tun ist, ist das Betriebssystem und seine Geschichte zu studieren. Wenn Sie das Betriebssystem nicht kennen, können Sie die App nicht mit den verschiedenen Versionen testen. Die Grundfunktionen der Betriebssystemversion, die Benutzeroberfläche, GPS, Unterstützung für Netzwerktypen, Akkulaufzeit usw. sind einige der wichtigen Aspekte, die eine App beeinflussen.
Bei Android ist nicht nur das Betriebssystem, sondern auch die Vielzahl der Geräte erforderlich.
Auf dem Markt ist eine große Anzahl von Geräten verfügbar. Bevor Sie Ihren Prüfstand fertigstellen und einfrieren, müssen Sie die Gerätefreigabe für die Zielgruppe ermitteln. Die verschiedenen Geräte mit unterschiedlichen Funktionen wie DualSIM, Dual-Kamera, Bildschirmauflösung, Themen usw. wirken sich auf eine App aus und müssen getestet werden.
Daher ist es für eine Qualitätssicherung sehr wichtig, ein umfassendes Wissen über das gesamte Android-Ökosystem zu sammeln.
Einführung in die Android-Anwendung
Es gibt verschiedene Testmethoden, nach denen eine Android-App erfolgreich zertifiziert wird.
Eine typische Android-App-Architektur ähnelt dem folgenden Diagramm:
wie man User Stories und Akzeptanzkriterien schreibt
Basierend auf der obigen Abbildung gibt es zwei Möglichkeiten für eine App:
1) Mobile App für die Webanwendung: Möglicherweise verfügt der Kunde über eine Web-App und möchte dafür eine mobile App erstellen. Amazon, Jabong, Myntra usw. haben das Gleiche getan, und als mobile Apps einen Boom auf dem Markt auslösten, erkannten diese kommerziellen Unternehmen, dass die Menschen bald von Web-Apps zu mobilen Apps wechseln werden.
2) Mobile App als separate Geschäftseinheit: Ich habe eine ähnliche Logistik-App getestet, um das Geschäft zu steigern. Sie hat eine separate App für ihre Fahrer erstellt, um eine reibungslose Lieferung zu ermöglichen, und den Papierkram entfernt.
Die Fahrer hatten die App auf ihren Handys installiert, um die Sendung in verschiedene Zustellungsstufen und ihren entsprechenden Status zu verschieben, und die Aktualisierungen der Zustellung wurden in ihrer vorhandenen Web-App wiedergegeben.
Andere wie Beispiele Wenn die mobile App eine separate Einheit ist, sind WhatsApp, Gesundheits-Tracking-Apps wie S Health usw.
Aufgabenliste vor Beginn des Testprozesses
Im Gegensatz zu einem normalen Testzyklus gibt es für die allererste Version einer mobilen App einige Elemente, die zusätzliche Nachforschungen und Planungen für eine erfolgreiche Bereitstellung der App erfordern.
Im Folgenden sind einige der Aktivitäten aufgeführt, die für eine Qualitätssicherung vor Beginn der eigentlichen Tests wichtig sind:
# 1) Forschung zu Betriebssystemen und Geräten:
Neben dem Verständnis der App-Anforderungen müssen Sie auch die Auswirkungen der verschiedenen Betriebssystemversionen und Gerätemodelle verstehen. Sie müssen Testfälle oder Szenarien mit dem Betriebssystem und den Gerätemodellen erstellen.
#zwei) Prüfstand:
Im Gegensatz zu Desktop-, Web- und iOS-Apps ist die Erstellung des Prüfstands für Android-Apps aufgrund des offenen Android-Systems sehr schwierig. Die Entscheidung sollte nach Absprache mit der BA, den Entwicklern und den Produktbesitzern getroffen werden, um die Zielgruppe zu finden.
#3) Versuchsplan:
Da es sich um die erste Version handelt, sollte ein genehmigter Plan mit zugelassenem Prüfstand, Prüfarten usw. vorhanden sein. Wenn für die Untersuchung von Funktionen oder Geschäftsregeln eine separate Zeit erforderlich ist oder wenn das Testen schwierig sein wird usw., sollte alles im Plan behandelt werden.
# 4) Automatisierungstools:
Die für mobile Apps erforderlichen Automatisierungstools unterscheiden sich stark von denen für Desktop- oder Web-Apps. Daher müssen Sie möglicherweise zusätzliche Zeit und Mühe aufwenden, um das Tool zu erlernen. Der dafür erforderliche Zeit- und Arbeitsaufwand sollte vom Produktbesitzer oder Kunden genehmigt werden.
# 5) Testtechniken oder -methoden:
Im Gegensatz zu den herkömmlichen Tests, die wir normalerweise durchführen, gibt es nur wenige Tests, die für mobile Apps sehr spezifisch sind. Feldtest, GPS-Test, Bilderfassungstest usw. Diese müssen in den Testfällen zusammen mit der Art und Weise, wie diese Typen getestet werden, dokumentiert werden.
Testen von Typen für mobile Apps
Folgende Testarten werden durchgeführt, um eine Android-Anwendung zu zertifizieren:
1) Funktionsprüfung:
Das Testen wird normalerweise durch von der Benutzeroberfläche initiierte Testabläufe erreicht. Es wird nicht nur der Ablauf eines Anwendungsfalls getestet, sondern auch die verschiedenen Geschäftsregeln. Die Prüfung erfolgt durch Zertifizierung der Anforderungen. d.h. ob die Anwendung basierend auf den Anforderungen funktioniert.
Nehmen wir das Beispiel von Zomato App.
Wenn Sie die App basierend auf dem Standort starten, wird die Liste der Restaurants angezeigt. Als QS müssen Sie jetzt die Liste der Restaurants testen.
Dies ist ein Funktionstest. Hier testen Sie Funktionen wie:
- Überprüfen Sie, ob die Restaurantkarten am Standort angezeigt werden.
- Überprüfen Sie, ob sich die angezeigten Restaurants im angegebenen Bereich (km) des Standorts befinden.
- Überprüfen Sie, ob die Anzahl der Bewertungen für jede Karte mit den angegebenen Bewertungen übereinstimmt.
- Überprüfen Sie, ob das Hinzufügen eines neuen Restaurants für einen Standort in der Liste angezeigt wird.
- Überprüfen Sie anhand der Filterregel von Zomato usw., ob die Restaurants aufgelistet sind.
2) Testen der Android-Benutzeroberfläche:
Dies ist ein benutzerzentriertes Testen der Anwendung. In dieser Testphase werden Elemente wie die Sichtbarkeit von Text in verschiedenen Bildschirmen der App, interaktive Nachrichten, die Ausrichtung von Daten, das Erscheinungsbild der App für verschiedene Bildschirme, die Größe von Feldern usw. getestet.
Für das gleiche obige Beispiel von Zomato wären die UI-Tests:
- Überprüfen Sie, ob die Karten richtig ausgerichtet auf die Bildschirmgröße des Mobilgeräts angezeigt werden.
- Überprüfen Sie, ob das Bild des Restaurants wie erwartet angezeigt wird.
- Überprüfen Sie, ob die Kartendetails, die Bewertung des Restaurants, der Küchentyp, die Adresse usw. korrekt ausgerichtet sind.
- Überprüfen Sie, ob das Scrollen der Liste fehlerfrei ist und die Karten nicht falsch ausgerichtet angezeigt werden, wenn eine lange Liste von Karten gescrollt wird usw.
3) Kompatibilitätstests:
Diese Tests werden hauptsächlich in Form von zwei Matrizen von OS Vs App und Device Model Vs App durchgeführt. Normalerweise wird vom Produktbesitzer oder Kunden eine Liste der unterstützten Betriebssysteme (und manchmal auch Geräte) bereitgestellt.
Die Notwendigkeit für diese Tests ist:
- Wenn ein Betriebssystem wie Android berücksichtigt wird, werden 7 Basisversionen gefunden, bei denen die Anzahl der Patch-Releases / EPs vernachlässigt wird.
- Können Sie sich vorstellen, welche Arten von Android-Geräten derzeit weltweit funktionieren? 1000? 2000? Falsch! Die richtige Antwort lautet 24000. Es gibt 24000 Arten einzigartiger Android-Geräte, die auf der Welt vorhanden und aktiv sind.
- Bei Variationen wie diesen spielen Kompatibilitätstests eine wichtige Rolle bei der Zertifizierung einer Android-App.
- Wir müssen nicht nur das Betriebssystem und den Gerätetyp überprüfen, sondern auch einige andere Funktionen, die in Kompatibilitätstests fallen. Die Funktionen umfassen:
- Bildschirmgröße
- Bildschirmauflösung
- Netzwerkkonnektivität
4) Schnittstellentests:
Mit anderen Worten, es wird auch als Integrationstest bezeichnet. Dieser Test wird durchgeführt, nachdem alle Module der App vollständig entwickelt, einzeln getestet und alle Fehler behoben wurden.
Das Testen der Benutzeroberfläche umfasst Tests wie ein vollständiges End-to-End-Testen der App, die Interaktion mit anderen Apps wie Karten, sozialen Apps usw., die Verwendung des Mikrofons zur Texteingabe, die Verwendung der Kamera zum Scannen eines Barcodes oder zum Aufnehmen eines Bildes usw.
Unter erneuter Berücksichtigung von Zomato wären die Integrationstests wie folgt:
kostenlose Backup-Software für externe Festplatte
- Überprüfen Sie, ob der Benutzer einen Tisch für ein Restaurant reservieren kann.
- Überprüfen Sie, ob der Benutzer das Menü anzeigen und online Essen bestellen kann.
- Überprüfen Sie, ob der Benutzer bei der Bestellung von Lebensmitteln einen PayTM-Gutschein in Anspruch nehmen kann.
- Überprüfen Sie, ob der Nutzer den Standort des Restaurants in Google Maps anzeigen kann.
- Überprüfen Sie, ob der Benutzer den Telefonwähler öffnen und das Restaurant usw. anrufen kann.
5) Netzwerktests:
Zu den Hauptfunktionen von Network Testing gehören:
- Die App sollte mit dem Zwischendienst sprechen, um den Vorgang auszuführen.
- Während dieses Tests wird die Anforderung / Antwort an / vom Dienst auf verschiedene Bedingungen getestet.
- Dieser Test wird hauptsächlich durchgeführt, um die Antwortzeit zu überprüfen, in der die Aktivität ausgeführt wird, z. B. Aktualisieren von Daten nach der Synchronisierung oder Laden von Daten nach dem Anmelden usw.
- Dies erfolgt sowohl für eine starke WLAN-Verbindung als auch für das mobile Datennetz.
- Dies ist ein interner Test.
6) Leistungstests:
Die Leistung der Anwendung unter bestimmten Bedingungen wird überprüft.
Diese Bedingungen umfassen:
- Zu wenig Speicher im Gerät.
- Der Akku ist extrem schwach.
- Schlechter / schlechter Netzwerkempfang.
Die Leistung wird grundsätzlich an zwei Enden getestet: am Ende der Anwendung und am Ende des Anwendungsservers
7) Installationstests:
Auf einem Android-Gerät gibt es zwei Arten von Apps: vorinstallierte Anwendungen und Anwendungen, die später vom Benutzer installiert werden.
In beiden Fällen müssen Installationstests durchgeführt werden. Dies soll eine reibungslose Installation der Anwendung gewährleisten, ohne dass Fehler, Teilinstallationen usw. auftreten.
Upgrade- und Deinstallationstests werden im Rahmen von Installationstests durchgeführt.
8) Sicherheitstests:
Datenschutz und Sicherheit sind die beiden Hauptanforderungen einer App. Im Bankwesen und im Gesundheitswesen wird dies jedoch zur Hauptanforderung.
In dieser Phase soll das Testen des Datenflusses auf Verschlüsselungs- und Entschlüsselungsmechanismen getestet werden. In dieser Phase wird auch der Zugriff auf gespeicherte Daten getestet.
9) Feldtests:
Feldtests werden speziell für das mobile Datennetz durchgeführt und nicht intern, sondern durch Ausgehen und Verwenden der App als normaler Benutzer. Dieser Test wird 'erst' durchgeführt, nachdem die gesamte App entwickelt, getestet und zurückgebildet wurde (für Fehler und Testfälle).
Grundsätzlich wird das Verhalten der App überprüft, wenn das Telefon über eine 2G- oder 3G-Verbindung verfügt. Durch Feldtests wird überprüft, ob die App bei langsamer Netzwerkverbindung abstürzt oder ob das Laden der Informationen zu lange dauert.
Weitere Informationen zu Feldtests finden Sie in unserem Artikel 'Bedeutung und Notwendigkeit von Feldtests für mobile Anwendungen'
10) Interrupt-Test:
Diese Art des Testens wird auch als Offline-Szenarioüberprüfung bezeichnet. Bedingungen, bei denen die Kommunikation in der Mitte unterbrochen wird, werden als Offline-Bedingungen bezeichnet.
Einige der Bedingungen, unter denen Unterbrechungen eines Netzwerks getestet werden können, sind folgende:
- Entfernen des Datenkabels während des Datenübertragungsprozesses.
- Netzwerkausfall während der Transaktionsbuchungsphase.
- Netzwerkwiederherstellung nach einem Ausfall.
- Batterie entfernen oder ein- / ausschalten, wenn es sich in der Transaktionsphase befindet.
Best Practices beim Testen von Android-Apps
Bei der Festlegung einer Strategie für das Testen mobiler Apps sind bestimmte Faktoren zu berücksichtigen.
Sie sind:
1) Geräteauswahl:
- Dies ist einer der wichtigsten Schritte, bevor Sie mit dem Testen der Android-Anwendung beginnen.
- Entscheiden Sie, welche Geräte für den Testprozess berücksichtigt werden sollen.
- Die Auswahl ist so zu treffen, dass die Anzahl der Zielkunden maximiert wird.
- Faktoren wie Betriebssystemversion, Bildschirmauflösung und Formfaktoren (Tablet oder Smartphone) spielen in der Auswahlphase eine wichtige Rolle.
- Bei Bedarf kann auch die Hilfe von Emulatoren berücksichtigt werden.
- Emulatoren sollten jedoch den Testprozess für physische Geräte nicht ersetzen.
- Geräteemulatoren sind kostengünstig und in der ersten Entwicklungsphase nützlich.
- Um die realen Szenarien zu testen, sind jedoch physische Geräte das Muss. Für ein optimiertes Ergebnis sollen sowohl Emulatoren als auch physikalische Geräte ausgewogen eingesetzt werden.
2) Betatest der Anwendung:
- Beta-Tests sind sehr effektiv beim Testen mit realen Benutzern, realen Geräten, tatsächlichen Netzwerken und Anwendungen, die in einer weiten geografischen Region installiert sind.
- Dies gibt ein klares Bild der Netzwerkdichte, der Netzwerkvariationen (Wi-Fi, 4G, 3G und 2G) und der Auswirkungen auf die Anwendung.
- Beta-Tests in der realen Welt sind einzigartig und können nicht in einer kontrollierten Umgebung repliziert werden.
3) Konnektivität:
- Normalerweise sind Android-Anwendungen für verschiedene Anforderungen mit dem Internet verbunden.
- Die Konnektivität auf verschiedenen Geräten spielt eine Schlüsselrolle bei der Erstellung der Strategie.
- Meistens wird die Konnektivität von einer Simulationssoftware gesteuert, mit deren Hilfe die Netzwerkgeschwindigkeit, die Latenz und die eingeschränkte Konnektivität beim Testen reguliert werden können.
- Es wird gesagt, dass das Testen unter realen Netzwerkverbindungen immer für Echtzeitergebnisse / -daten ratsam ist.
4) Manuelle oder automatisierte Tests:
- Obwohl Automatisierungstests für den ersten Durchlauf viel Zeit in Anspruch nehmen, ist es praktisch, wenn die Tests wiederholt werden müssen. Dies reduziert auch die Gesamtzeitspanne des Testens während der verschiedenen Entwicklungsphasen.
- Android-Automatisierung sollte mit manuellen Tests kombiniert werden, wenn die Wiederholung der Regressionstests in der Anwendungsentwicklungsphase hoch ist. Kompatibilitätstests müssen für dieselbe Anwendung auf verschiedenen Betriebssystemversionen, Abwärtskompatibilitätsprüfpunkten usw. durchgeführt werden.
Android Testing Framework
Es gibt eine Handvoll Android-Test-Frameworks, die verfügbar sind.
In diesem Tutorial werden drei verschiedene Arten der am häufigsten verwendeten Frameworks erläutert:
- Robotium-Test-Framework
- Roboelektrisches Testgerüst
- Appium Test Framework
1) Robotium Test Framework:
- Dieses Framework wird verwendet, um anspruchsvolle und robuste Black-Box-Testfälle für Android-Anwendungen zu schreiben.
- Es unterstützt sowohl native als auch hybride Clients.
- Mit diesem Framework können Funktionen, Systemtestfälle und Benutzerakzeptanztests geschrieben werden.
- Robotium unterstützt Android 1.6 und höher sowie Dialoge, Menüs, Aktivitäten usw.
- Dieses Framework verarbeitet mehrere Android-Aktivitäten automatisch.
- Im Rahmen von Robotium werden eine Handvoll Methoden für die Interaktion mit verschiedenen grafischen Komponenten der Android-Anwendung angegeben. Einige von ihnen sind wie folgt:
- geh zurück();
- getButton ();
- isRadioButtonChecked ();
- searchText ('Benutzer');
- Klicken Sie auf die Schaltfläche ('Abmelden').
2) Roboelektrisches Test-Framework:
- Dieses Framework hilft beim Testen von Android-Anwendungen auf der JVM basierend auf dem JUnit4-Framework.
- Es verwendet Android API.
- Dies hilft beim Schreiben von Testfällen und beim Ausführen auf der JVM.
- Darunter werden alle Klassen durch sogenannte Schattenobjekte ersetzt.
- Immer wenn eine Methode implementiert wird, sendet Robo-electric den Aufruf intern an das Schattenobjekt.
- Basierend auf der Implementierung wird ein Wert zurückgegeben, wenn eine Methode durch ein Schattenobjekt implementiert wird. Andernfalls wird NULL zurückgegeben.
- Aufgrund der Schattenobjekte und der JVM wird die Ausführung schneller.
3) Test Framework-Epochen;
- Dieses Framework funktioniert für native, hybride und mobile Web-Apps für Android-Geräte.
- Appium kann kostenlos verwendet werden.
- Eine einzelne API funktioniert sowohl für Android als auch für die iOS-Plattform. Dies ist eines der Frameworks, das plattformübergreifende Tests unterstützt.
- Es verwendet den Selenium-Webtreiber, um mit der Android-Anwendung zu interagieren.
- Appium unterstützt das Schreiben von Skripten mit vielen Programmiersprachen wie Java, C #, Python, PHP, Ruby usw.
Fazit
Die Automatisierung von Android-Anwendungen kann je nach Bedarf mit einem Handbuch kombiniert werden. Wenn der Strategie jedoch Androind Automation-Tests hinzugefügt werden, ist die Auswahl des richtigen Tools eine große Aufgabe. Bei der Auswahl der Automatisierungstools sollten Faktoren wie Multi-Plattform-Support, Test-Workflow, Preis des Tools, Service / Support usw. berücksichtigt werden.
Das Testen von Android-Anwendungen ist mit mehreren Herausforderungen verbunden. Es gibt verschiedene Faktoren, die berücksichtigt werden müssen, bevor der Android-Testprozess wirklich implementiert werden kann. Sobald dies erledigt ist, wird dies zu einer sehr interessanten Aufgabe.
In unserem kommenden Tutorial erfahren Sie mehr darüber Herausforderungen und Lösungen für mobile Tests.
Literatur-Empfehlungen
- 11 besten Automatisierungstools zum Testen von Android-Anwendungen (Android App Testing Tools)
- Beta-Testdienste für mobile Apps (iOS- und Android-Beta-Testtools)
- Erstellen Sie Appium-Tests für eine Android-App
- Funktionstests gegen nichtfunktionale Tests
- Tutorials zum Testen mobiler Apps (Eine vollständige Anleitung mit mehr als 30 Tutorials)
- Beste Software-Test-Tools 2021 (QA Test Automation Tools)
- Alpha-Tests und Beta-Tests (eine vollständige Anleitung)
- Ausführliche Eclipse-Tutorials für Anfänger