Heim > Artikel > Betrieb und Instandhaltung > Was sind der Testprozess für Android-Apps und welche häufigen Probleme treten auf?
1. Automatisierte Tests
Automatisierte Tests umfassen hauptsächlich mehrere Teile, automatisierte Tests von UI-Funktionen, automatisierte Tests von Schnittstellen und andere spezialisierte automatisierte Tests.
1.1Automatisiertes Testen von UI-Funktionen
Automatisiertes Testen von UI-Funktionen, was jeder oft als automatisiertes Testen bezeichnet, ist hauptsächlich automatisiertes Testen basierend auf der UI-Schnittstelle, und die Benutzeroberfläche ist es implementiert durch Skripte Der Klick auf eine Funktion ersetzt manuelle automatisierte Tests.
Der Vorteil dieses Tests besteht darin, die Testarbeitskräfte effektiv für sich wiederholende Schnittstellenfunktionstests freizugeben und die Ausführung von Skripten zu nutzen, um eine schnelle und effiziente Rückgabe von Funktionen zu erreichen.
Allerdings liegen auch die Mängel dieser Art von Tests auf der Hand, darunter hohe Wartungskosten, leichte Fehleinschätzungen und unzureichende Kompatibilität. Da es auf Schnittstellenoperationen basiert, ist die Stabilität der Schnittstelle zur größten Einschränkung bei der Wartung von Skripten geworden. Aufgrund der sich häufig ändernden Schnittstelleninteraktionen müssen Testfallskripte ständig aktualisiert werden, was eine große Menge an Testressourcen in Anspruch nimmt.
=
Fehleinschätzungen können vor allem deshalb auftreten, weil die Identifizierung auf der Grundlage von UI-Steuerelementen aufgrund von Netzwerkbedingungen, Gerätekonfiguration, Testumgebung und anderen Gründen leicht zu langsamem oder abnormalem Laden führen kann , also Dies führt zu ungenauen Urteilen während der Ausführung von Testfällen, wodurch die Genauigkeit des Tests beeinträchtigt wird. Unzureichende Kompatibilität bedeutet hauptsächlich, dass die Ausführung von Testskripten auf verschiedenen Geräten, unterschiedlichen Betriebssystemen, unterschiedlichen Hardwareumgebungen usw. zu unvorhersehbaren Situationen führt, die zu ungenauen Ergebnissen bei der Ausführung von Testfällen führen.
Basierend auf dem obigen Vergleich der Vor- und Nachteile implementieren wir beim automatisierten Testen von UI-Funktionen hauptsächlich das Testen des APP-Kernpfads für Funktionsmodule, die eine große Anzahl wiederholter Ausführungen erfordern Überprüfungen und geringe Häufigkeit von UI-Schnittstellenänderungen. Implementieren Sie automatisierte Tests von UI-Funktionen.
Die Notwendigkeit einer großen Anzahl wiederholter Ausführungen und wiederholter Überprüfungen führt dazu, dass die Auslastungsrate nach der Automatisierung hoch ist und die Häufigkeit von Änderungen an der Benutzeroberfläche gering ist, was bedeutet, dass die nachfolgenden Wartungskosten nicht hoch sind. Diese drei Arten von Anwendungsfällen sind für uns sehr wichtig. Was die Teile mit relativ hohem Input und Output betrifft, werden wir der Praxis des automatisierten Testens von UI-Funktionen höchste Priorität einräumen.
Während des Prozesses des automatisierten UI-Funktionstests können relevante Kontrollen, Testfälle und Testsätze effektiv sortiert und verwaltet werden, und wiederholbare Arbeiten können zeitnah zusammengeführt werden, um die Verschwendung von Ressourcen zu reduzieren . Wenn sich die UI-Funktion ändert, kann sie auch zu geringeren Kosten gewartet werden, wodurch die Wartungskosten gesenkt werden.
1.2 Schnittstellenautomatisierungstests
Im Abschnitt zum Testen der UI-Funktionsautomatisierung haben wir die Einschränkungen der Automatisierung erwähnt: Stabilität. Gerade weil die UI-Schnittstelle instabil ist, sind die Kosten für die Automatisierung von UI-Funktionen relativ hoch. Daher denken wir natürlich an den Teil, der stabiler und der Automatisierung förderlicher ist als die UI-Funktionen, und das ist die Schnittstelle.
Die Schnittstelle einer APP kann sich aufgrund der unterschiedlichen Anforderungen des Produktmanagers in verschiedenen Phasen ändern, aber die Schnittstelle dahinter ist normalerweise relativ stabil, sodass wir automatisierte Tests durchführen können. Vorteilhafte Garantie .
Wir müssen die von der APP aufgerufenen Schnittstellen vorbereiten, sie nach Funktionsmodulen sortieren und zusammenfassen, die Implementierung der Automatisierung priorisieren, die Bedeutung jeder Schnittstelle, den Wertebereich verschiedener Parameter usw. verstehen Inventarisieren Sie die verschiedenen durch die Eingabe generierten Ausgaben und fassen Sie die Fehler- oder Ausnahmerückgaben zusammen, um die Wirksamkeit und Vollständigkeit des Schnittstellentests sicherzustellen.
Nachdem der Schnittstellenautomatisierungstest gestartet wurde, muss ein Schnittstellendokument mit dem Entwicklungsingenieur gepflegt werden. Unabhängig davon, ob es in Zukunft zu einer Zunahme oder Abnahme der Schnittstellen oder damit verbundenen Änderungen an bestehenden Schnittstellen kommt Der Testingenieur kann sofort Bescheid wissen und entsprechende Anpassungen an den Anwendungsfällen für Schnittstellenautomatisierungstests vornehmen.
1.3 Andere spezielle automatisierte Tests
Zusätzlich zu den beiden oben genannten Automatisierungskategorien können wir die Automatisierung auch nutzen, um einige spezielle Tests durchzuführen, um unsere Testqualität und Testeffizienz zu verbessern . Hier müssen wir in unserer täglichen Testarbeit sorgfältig darüber nachdenken, welche Aufgaben durch Automatisierung erreicht werden können, welche Tests automatisiert werden können, um die Testeffizienz zu verbessern, welche Funktionspunkte automatisiert werden können, um eine langfristige Testüberwachung zu erreichen usw.
Zum Beispiel gibt es in dem Projekt, für das ich verantwortlich bin, eine Funktion. Während des manuellen Tests können wir sie nur mit einer begrenzten Anzahl von Klicks überprüfen, und die Klickhäufigkeit ist gering, aber wir können Implementieren Sie den Test über Skripte, um schnellere und längere Klickvorgänge im Prozess zu erzielen. Er kann nicht nur auf Ihrem eigenen Testgerät, sondern auch auf anderen Geräten durchgeführt werden. Dieser automatisierte Test ist effektiv und kann die Testeffizienz und Testqualität verbessern. Obwohl dieser Test aus verschiedenen Gründen nicht zu den Anwendungsfällen für die Automatisierung von UI-Funktionen hinzugefügt wird, hat uns die Automatisierung in der aktuellen Version tatsächlich sehr nützliche Hilfe gebracht, und dafür müssen wir uns einsetzen.
Kurz gesagt, wir können verschiedene automatisierte Testtools und Testmethoden verwenden, um uns beim Testen zu unterstützen, was Anerkennung verdient.
2. Leistungstests
Im Testsystem des Projekts, für das ich verantwortlich bin, umfassen Leistungstests hauptsächlich drei Dimensionen von Leistungstests, nämlich Leistungstests in der Zeitdimension und Ressourcendimension Leistungstest und Sprachkompetenztest.
2.1 Zeitdimension
Leistungstests in der Zeitdimension beziehen sich hauptsächlich auf die zeitliche Reaktion funktionaler Funktionen nach einem Klickvorgang. Wir sind besser mit der Ladezeit des ersten Bildschirms, der Öffnungszeit des Antwortsprungs nach dem Klicken usw. vertraut.
Es gibt viele Möglichkeiten, Leistungstests in der Zeitdimension durchzuführen. Sie können Bildschirmaufzeichnungen zur Zeitberechnung verwenden, Sie können auch Zeitstempel im Programm zur Zeitberechnung verwenden und Sie können auch Drittanbieter verwenden Es können auch Skripte zur Zeitberechnung verwendet werden Technologie zur Zeitberechnung usw.
Während des Testprozesses müssen wir im Zusammenhang mit dem Projekt selbst Voruntersuchungen durchführen. Handelt es sich um einen einmaligen Test oder sind in der Zukunft kontinuierliche Tests erforderlich? in ein Tool für die spätere Langzeitnutzung umgewandelt werden? Ob es auf mehreren Geräten verwendet werden kann, Sie müssen dennoch die Kompatibilität für die Verwendung auf verschiedenen Geräteumgebungen berücksichtigen, ob das Tool Open Source ist oder eine Datenschnittstelle für die spätere Integration bereitstellt die Testplattform des Teams usw.
2.2 Ressourcendimension
Leistungstests der Ressourcendimension beziehen sich hauptsächlich auf den Verbrauch verschiedener Systemressourcen während der Nutzung der APP, einschließlich CPU, Speicher, Strom, Datenverkehr, usw.
Die Auswahl der Prüfwerkzeuge hängt von den verschiedenen Prüfterminals ab. Die Abmessungen, die während des Tests überwacht werden müssen, werden hier nicht besprochen.
Hier muss gesagt werden, dass Leistungstests in der Ressourcendimension zwei Teile der Arbeit erledigen können: Zum einen Leistungstests während des Testprozesses und zum anderen die Erfassung von Online-Leistungsdaten.
Leistungstests während des Testprozesses können basierend auf den Testanforderungen des Unternehmens ausgewertet werden. Welche Szenarien müssen für die aktuelle Version getestet werden oder ist ein Test erforderlich, der für jede weitere Version verglichen werden muss? Version? Um die Leistungsdaten dieser Maschine zu testen, müssen Sie immer noch Leistungsdaten auf mehreren Geräten sammeln. Sie müssen nur die APP testen oder Vergleichstests mit Konkurrenzprodukten usw. durchführen.
Bewerten Sie auf dieser Grundlage, ob es notwendig ist, Testfälle durch automatisierte Skripte für die spätere Wiederverwendung zu implementieren. Sind spätere Vergleichstests im Längsschnitt mit historischen Versionen erforderlich, muss sichergestellt werden, dass die Testumgebung und die Testausrüstung möglichst konsistent sind, um die Testergebnisse authentischer und zuverlässiger zu machen.
Ein weiterer kleiner Punkt ist, dass die Verarbeitung und Berechnung von Testdaten durch automatisierte Skripte realisiert werden kann, wodurch Kosten für menschliche Rechenressourcen gespart werden. Bei Bedarf können Sie auch eine einfache Plattform erstellen und alle Testdaten zur späteren Analyse und Referenz auf der Plattform speichern.
Um Online-Leistungsdaten zu sammeln, müssen Entwicklungsingenieure während des Funktionsimplementierungsprozesses relevante Daten melden. Nach der Freigabe der Funktion werden die Online-Daten abgerufen, verarbeitet und berechnet, um mögliche Probleme darin zu ermitteln. Frage. Durch die Zusammenarbeit mit den Protokollen des Entwicklungsingenieurs und den Protokollen von Benutzern, bei denen Fehler aufgetreten sind, können wir damit verbundene Leistungsprobleme lokalisieren, analysieren und lösen.
2.3 Sprachkompetenztest
Als intuitivstes Gefühl der Benutzererfahrung ist der Sprachkompetenztest auch ein Muss für viele Leistungstests. Es ist nicht nötig, hier näher auf die Methode zur Durchführung von Sprachkompetenztests einzugehen, aber es gibt ein paar Punkte, die beachtet werden müssen:
Der erste ist, wie wir die Anwendungsfälle für den Sprachkompetenztest planen , und zweitens, wie wir den Test nach dem Sprachkompetenztest verwenden. Die resultierenden Daten werden analysiert und verbessert. Drittens müssen wir die Sprachkompetenz anhand von Online-Daten überwachen, nachdem die APP veröffentlicht wurde.
Was das Design von Fluency-Testfällen betrifft, muss es auf der Grundlage der Kernfunktionen der APP und der allgemeinen Benutzerpfade entworfen werden. Es ist am besten, über Online-Daten zu verfügen, um diesen Teil zu unterstützen, und nicht nur darüber nachdenken. Auf die Sprungpfade der meisten Benutzer in der APP, die mithilfe von Daten ermittelt werden, müssen wir uns konzentrieren. Darüber hinaus müssen wir auch auf die Pfade achten, die zu Verzögerungen neigen und während des Testprozesses in den Online-Daten überwacht werden.
Die Analyse und Nutzung der Daten nach dem Sprachkompetenztest sowie die Überwachung der Online-Sprachkompetenzdaten erfordern eine gemeinsame Planung und gemeinsame Untersuchung durch Testingenieure und Entwicklungsingenieure. In diesem Artikel wird nicht näher darauf eingegangen.
3. Stabilitätstest
In Bezug auf diesen Teil können Sie mit den beiden Phasen der Testphase vor der Veröffentlichung der APP und der Online-Betriebsphase nach der Veröffentlichung beginnen. und führen Sie die Arbeiten separat aus.
Während der Testphase können wir Stabilitätstests rund um Monkey-Tests und Code-Reviews durchführen. Qualifizierte Teams können in dieser Phase auch statische Code-Scanning-Tools verwenden. Während des Monkey-Testprozesses sollte auf die Ausrüstung, die Umgebung und die Häufigkeit der Testausführung geachtet werden. Während des Prozesses entdeckte Probleme sollten bis zu einem gewissen Grad analysiert werden, und besondere Aufmerksamkeit sollte den Teilen gewidmet werden, die anfällig für Probleme sind. Code-Walkthroughs können mit Modulen kombiniert werden, die bei Funktionstests abstürzen können, um wichtige Walkthroughs durchzuführen, die Entwicklung und Paarprogrammierung zu fördern und auf mögliche Probleme in diesen Modulen zu prüfen. Beim statischen Code-Scannen müssen Entwicklungsstudenten die gescannten Probleme lösen und gute Codierungsgewohnheiten entwickeln, um das Durchsickern verwandter Probleme zu vermeiden.
Während der Betriebsphase können wir Stabilitätstests rund um die Meldung und Analyse externer Netzwerkabsturzdaten durchführen. Die Lösung dieses Teils ist eher auf die Entwicklungsingenieure angewiesen. Während dieses Prozesses können Testingenieure jedoch die gemeldeten Daten analysieren und einige grundlegende Daten zu Abstürzen finden, z. B. gängige Systeme, Modelle usw., um die tägliche Stabilität zu verbessern und zu optimieren .
Das obige ist der detaillierte Inhalt vonWas sind der Testprozess für Android-Apps und welche häufigen Probleme treten auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!