Es wird empfohlen, ein umfassendes Verständnis des automatisierten Testens [Zusammenfassung der Praxis] zu sammeln

1. Grundkenntnisse des automatisierten Testens

Was ist automatisiertes Testen?

1. Ändern Sie das vom Menschen gesteuerte Testverhalten in die Maschinenausführung. Durch den entworfenen Testfall führt die Maschine ihn automatisch entsprechend den Ausführungsschritten des Testfalls aus, gibt die Ergebnisse aus und vergleicht sie mit den Testern.

2. Beim automatisierten Testen werden häufig einige Testtools oder Frameworks verwendet, um automatisierte Testfälle zu schreiben und manuelle Tests zu simulieren.

3. Durch automatisierte Tests können Arbeitskräfte, Zeit und Hardwareressourcen erheblich eingespart und die Testeffizienz verbessert werden.

Vorteile automatisierter Tests

1. Das automatisierte Testtool kann nach Bedarf eine große Menge an Testdaten vorbereiten.

2. Mithilfe relevanter Skripttechniken kann eine große Anzahl von Testfällen vorbereitet werden.

3. Die Testergebnisse müssen manchmal entsprechend aufbereitet werden.

4. Es kann schnell große Datenmengen oder Datenformate vergleichen.

Nachteile automatisierter Tests

1. Im Vergleich zum manuellen Testen stellen automatisierte Tests relativ hohe Anforderungen an die Fähigkeiten der Tester.

2. Automatisierte Testfälle müssen entsprechend der Versionsiteration aktualisiert werden, was mit gewissen Wartungskosten verbunden ist.

3. Es ist nicht zu erwarten, dass automatisierte Tests mehr neue Fehler finden. Automatisierte Tests können weitaus weniger Fehler finden als manuelle Tests.

4. Der Ausgabewert automatisierter Tests liegt häufig in langfristigen Regressionstests, und ihre kurzfristige Rolle ist möglicherweise nicht offensichtlich.

5. Automatisiertes Testen kann die Effektivität des Testens nicht verbessern, sondern nur zur Verbesserung der Testeffizienz eingesetzt werden.

Missverständnisse über automatisierte Tests

1. Durch automatisierte Tests sind manuelle Tests nicht mehr erforderlich.

2. Automatisierte Tests Bei einigen Tests wie Lokalisierungstests, Benutzererfahrungstests und explorativen Tests kann der Aufbau der Testumgebung manuelle Tests nicht vollständig ersetzen.

3. Automatisiertes Testen ist der Betrieb des Produkts. Es muss eine bestimmte Grundlage für das manuelle Testen der Testpunkte vorhanden sein. Automatisiertes Testen und manuelles Testen ergänzen sich.

4. Automatisiertes Testen bezieht sich nicht nur auf die automatisierte Ausführung von Testprodukten, auch die Datenverarbeitung ist ein sehr wichtiges Bindeglied.

Voraussetzungen und Prinzipien des automatisierten Testens

1. Der Projektzyklus ist lang und die Nachfrage ist stabil und hat sich in naher Zukunft nicht geändert.

2. Bei der Front-End-Entwicklung müssen Seiten nicht viele Male geändert werden und es bleiben keine fehlerhaften Module zurück.

3. Automatisierte Testskripte können wiederverwendet werden und Regressionstests werden häufiger durchgeführt (aufgrund der großen Anzahl von Modulen ist der Umfang von Regressionstests vorübergehend auf den Hauptprozess des Moduls beschränkt).

4. Manuelle Tests sind schwierig zu implementieren und es ist erforderlich, dieselben Testfälle und eine große Anzahl sich wiederholender Aufgaben auf mehreren Plattformen auszuführen.

5. Eine frühe Automatisierungsimplementierung sollte extrem komplexe Module vermeiden

So implementieren Sie automatisierte Tests

1. Erhalten Sie Informationen und analysieren Sie die Testanforderungen: Erfassen Sie die Architektur und das Design des Gesamtsystems und analysieren Sie die Testanforderungen des Systems.

2. Design: Testfälle entwerfen und die Testfälle auswählen, die automatisiert werden müssen.

3. Implementierung: Testskripte schreiben, debuggen und implementieren.

4. Ausführung: Der Prozess der Ausführung des Skripts erfordert eine kontinuierliche Analyse von Ausnahmen im Ausführungsprozess.

5. Analyse der Testergebnisse: Analysieren Sie, welche Fehler und welche Probleme des Test-Frameworks selbst darstellen.

6. Wartung: Die automatisierte Wartung von Testskripten ist ein schwieriges und notwendiges Problem, das gelöst werden muss.

7. Zusammenfassung: Fassen Sie das Input-Output-Verhältnis der Automatisierungspraxis im Prozess automatisierter Tests zusammen.  

Hierarchie automatisierter Tests

1. Je höher Sie gehen, desto näher sind Sie der Qualitätssicherung, dem Geschäft/den Endbenutzern, und je niedriger Sie gehen, desto näher sind Sie der Entwicklung.

2. Je höher, desto langsamer die Testausführung; je tiefer, desto schneller die Testausführung.

3. Je höher Sie gehen, desto höher sind die Testkosten (je zeitaufwendiger, desto vager sind die Fehlerinformationen und desto schwieriger ist sie zu verfolgen), je niedriger Sie gehen, desto niedriger sind die Testkosten.

Gleichzeitig habe ich auch ein Video-Tutorial zum Softwaretesten für alle vorbereitet, das am Ende des Artikels platziert ist. Wenn Sie es benötigen, können Sie es direkt ansehen oder direkt auf die kleine Karte am Ende des Artikels klicken Artikel, um das Informationsdokument kostenlos zu erhalten.

2. Automatisierte Testtools und Frameworks

Gängige automatisierte Testtools

Entwicklungssprache für automatisierte Testtools: Java, Python usw.

Grundlegendes Testtool

(1) Unit-Test: Junit (Java), Unittest (Python)

(2) Schnittstellentest: httpclient (Java), Restassure (Java), Request (Python)

(3) UI-Tests: Selenium Webdriver (Web), Appium (App)

Gängige automatisierte Testtools

(1) Schnittstellentest: Jmeter, Soapui, Postbote

(2) UI-Tests: Katalon, Robotframework, Android

Automatisierte Testskript-Technologie

1. Lineares Skript: Aufnahme, Wiedergabe

2. Strukturiertes Skript: Enthält Anweisungen zur Steuerung der Skriptausführung, unterstützt Reihenfolge, Auswahl und Schleife. 3. Gemeinsames Skript: Kann von mehreren Testfällen verwendet werden und Skripte können sich gegenseitig aufrufen

3. Datengesteuerte Skripte: Datengesteuerte Skripte speichern Testeingaben in separaten Dateien und nur Steuerinformationen werden in Skripten gespeichert

4. Schlüsselwortgesteuertes Skript: Das schlüsselwortgesteuerte Skript ist eigentlich eine logische Erweiterung der repetitiveren datengesteuerten Technologie, das heißt, die Ausführungsschritte (Operation, Operationsobjekt und Operationswert) des Testfalls werden in der Datei gespeichert und direkt ausgeführt werden

Grundlagen automatisierter Testvorgänge

1. Automatisierter Testbetrieb der Schnittstelle

(1) Anforderungs-URL und Nachricht simulieren, Testdaten vorbereiten, Pakete erfassen, um Schnittstelleninformationen zu erhalten, Schnittstelle analysieren, mit oder ohne Dokumentation

(2) Simulieren Sie den Client, der HTTP-Anfragen sendet (get, post)

(3) Simulieren Sie den Client, der die Antwortnachricht vom Server empfängt

(4) Überprüfen Sie, ob die zurückgegebenen Ergebnisse den Erwartungen entsprechen

2. Durchführung des UI-Automatisierungstests

(1) Suchen Sie Seitenelemente (findelement, findelements) nach ID, Name, XPath, CSSSelector usw.

(2) Führen Sie entsprechende Vorgänge an den positionierten Seitenelementen durch (Klick, Eingabe usw.)

(3) Vergleichen Sie das Ergebnis nach der Operation mit dem erwarteten Ergebnis (assertieren)

Grundprinzipien automatisierter Testtools

Selenium (Front-End-Code analysieren und Browser steuern)

 

PO-Modus für automatisierte Tests

1. Im PO-Modus ist es abstrakt in eine BasePage-Klasse gekapselt, die über eine Eigenschaft verfügt, die nur Webdriver-Instanzen implementiert

2. Jede Seite erbt BasePage, verwaltet die Elemente auf dieser Seite über den Treiber und kapselt die Vorgänge auf der Seite in einzelne Methoden. TestCase verlässt sich auf die Seitenklasse, um die entsprechenden Testschritte zu implementieren

 

Automatisiertes Test-Framework

1. Schlüsselwortgesteuert

(1) Teilen Sie den Testfall in vier verschiedene Teile. Der erste ist der Testschritt (Testschritt), der zweite ist das Objekt im Testschritt (Testobjekt), der dritte ist die vom Testobjekt ausgeführte Aktion (Aktion) und der vierte sind die vom Testobjekt benötigten Daten (Testdaten).

(2) Kombinieren Sie Daten mit Schlüsselwörtern, um zu beschreiben, wie der Test durchgeführt wird. Das heißt, die Schritte im Testfallskript werden extrahiert und in einer unabhängigen Datendatei abgelegt, was zu einer einfachen Schreibweise wird. Dieser Ansatz hat den Vorteil, dass er datengesteuert ist und es gleichzeitig Nicht-Programmierern ermöglicht, Tests zu erstellen.

(3) Das schlüsselwortgesteuerte Modell basiert auf dem datengesteuerten Ansatz, und die schlüsselwortgesteuerte Datei enthält Anweisungen (Schlüsselwörter) und nicht nur Daten.

(4) Dieses Testframework kann mit sehr wenig Code eine große Anzahl von Testfällen generieren. Derselbe Code wird wiederverwendet, während die Datentabelle zum Generieren jedes Testfalls verwendet wird.

2. Datengesteuert

(1) Lesen Sie die eingegebenen Testdaten aus einer Datendatei (z. B. Excel-Datei, XML-Datei, JSON-Datei, Datenbank usw.) und übergeben Sie sie dann über Variablen an das geschriebene Testskript.

(2) Das Lesen von Datendateien, der Teststatus und alle Testschritte werden in das Testskript geschrieben; die Testdaten sind nur in der Datendatei enthalten, nicht im Skript, und das Testskript ist nur ein „Treiber“ oder ein Übertragungsmechanismus von Daten.

(3) Die datengesteuerte Methode wird hauptsächlich in Szenarien verwendet, in denen unterschiedliche Daten erforderlich sind, um die Testabdeckung sicherzustellen, z. B. wenn die Geschäftslogik des zu testenden Systems festgelegt ist oder sich nur geringfügig ändert, dh die Testfallschritte festgelegt sind, die jedoch festgelegt sind Erforderliche Testdaten Die Situation ändert sich. Im Allgemeinen werden die Daten in einer externen Datei oder Datenbank gespeichert und zur Laufzeit automatisch abgerufen. Das heißt, das Testframework muss die Trennung von Daten und Skripten unterstützen und ein Testskript kann die Ausführung mehrerer ähnlicher Testszenarien steuern.

(4) Dieses Framework zielt darauf ab, die Gesamtzahl der Testskripte zu reduzieren, die zur Ausführung aller Testfälle erforderlich sind, und datengesteuert erfordert nur sehr wenig Code, um eine große Anzahl von Testfällen zu generieren.

3. Auswahl und Aufbau eines automatisierten Test-Frameworks

Technische Lösungen

Selenium (Webdriver) + Python (Unittest) + cx_Oracle + HTMLTestRunner

Der WebDriver von Selenium ist ein Open-Source-Tool. Die Verwendung der relativ einfachen Python-Sprache für automatisierte Tests ist im Hinblick auf die Lernkosten des Personals praktischer und die Lernzeit ist kurz, was Vorteile hat.

Das mit Python gelieferte Unittest-Framework für Unittests kann problemlos Aufgaben wie den Entwurf und die Ausführung automatisierter Anwendungsfälle und die Verwaltung automatisierter Anwendungsfall-Suiten implementieren. Python ist eine reine objektorientierte Sprache und kann für umfassendere automatisierte Tests in Zukunft auch auf Java + Selenium umgestellt werden. Darüber hinaus kann Jenkins als kontinuierlicher Integrationsserver ausgewählt werden, um automatisierte Rauchtests mit der Python + Selenium-Lösung durchzuführen .

Diese Lösung verwendet das Designmuster „Page Object“, um Seiten, Anwendungsfälle und Daten zu trennen. Auf diese Weise kann der Testfall mehr auf das Geschäft als auf die Schnittstellendetails achten, die Lesbarkeit des Testfalls verbessern, die Coderedundanz reduzieren und die Wiederverwendbarkeit der Methode erhöhen.

Umgebungsauswahl

Verwenden Sie gemäß den Diskussionsergebnissen der Testgruppe zu automatisierten Testanforderungen automatisierte Testtechnologie, um Regressionstests in uat- und Bühnenumgebungen durchzuführen. (Stellen Sie vor der Ausführung sicher, dass die Umgebung normal genutzt werden kann.)

Aufgrund der häufigen Veröffentlichung von UAT- und Bühnenumgebungen, die sich auf das Debuggen und Skripten des automatisierten Testframeworks auswirken, ist eine stabile Umgebung zum Debuggen und Schreiben erforderlich.

Automatisierter Testprozess

(1) Wählen Sie das Modul aus

(2) Wählen Sie einen Anwendungsfall (Hauptprozess-Anwendungsfall)

(3) Schreiben Sie die Operationsmethode seitenweise

(4) Schreiben Sie Anwendungsfall-Prozessskripte nach Anwendungsfall

(5) Schreiben Sie Datenabfragemethoden entsprechend den Anwendungsfällen

(6) Anwendungsfälle ausführen

(7) Ausgabebericht (spätere Erweiterung, Hinzufügen von Ausführungsprotokollen und Ausnahme-Screenshots zur Fehlerverfolgung).

Zusammenfassend lässt sich sagen: Wenn der Skriptinhalt geschrieben ist und sich die Geschäftsanforderungen und Testanforderungen nicht geändert haben, führen Sie einfach die letzten beiden Schritte aus. Überprüfen Sie den Inhalt des Berichts. Wenn ein Fehler festgestellt wird, ist es erforderlich, den Fehler entsprechend dem Inhalt des Anwendungsfalls zu reproduzieren und an das ZenTao-Managementsystem zu übermitteln.

Anschließende Wartung

(1) Änderungen der Geschäftsanforderungen

Wenn sich die Geschäftsanforderungen ändern, sollte der Anwendungsfall des geänderten Inhalts bei der Ausführung des Anwendungsfalls übersprungen werden und das Skript und der Anwendungsfall sollten nach dem Start des geänderten Inhalts entsprechend angepasst werden. Nachdem die Anpassung abgeschlossen ist, muss sie erneut ausgeführt werden, um die Stabilität des Anwendungsfalls sicherzustellen.

(2) Refactoring des zu testenden Moduls

Wenn das Refactoring des zu testenden Moduls abgeschlossen ist, muss der automatisierte Testfall des Moduls ausgeführt werden, um zu überprüfen, ob es normal ausgeführt wird. Wenn kein Problem vorliegt, ist keine Anpassung erforderlich. Wenn ein Problem vorliegt, ist dies erforderlich rechtzeitig debuggt und gelöst werden müssen.

(3) Technische Änderungen

Mit der kontinuierlichen Optimierung und Erweiterung des automatisierten Test-Frameworks werden sich auch die Basismodule und gekapselten Seiten entsprechend verändern. Darüber hinaus müssen regelmäßig automatisierte Tests durchgeführt werden, um die Stabilität des Frameworks nach der Optimierung und Erweiterung sicherzustellen und so den normalen Fortschritt der Regressionstests sicherzustellen.

Ressourcenzuweisung

(1) Umgebung:

a. Die Projektumgebung ähnelt der des Online-Projekts. Sie wird unabhängig veröffentlicht. Der Inhalt der Version ist relativ stabil. Die Datenbank ist unabhängig und wird von anderen Umgebungen nicht beeinflusst.

 b. Lokale Umgebung, Win7 und Win10 Chrome 72 32bit.

(2) Benutzer: Unabhängiger Benutzer. Die Berechtigung sollte so hoch wie möglich eingestellt werden, um den Zugriff auf bestimmte Funktionspunkte nicht durch die Berechtigung des Benutzers zu beeinträchtigen und das Auslassen von Anwendungsfällen zu verringern.

(3) Personal: Richten Sie eine automatisierte Testgruppe ein, idealerweise mit 3-4 Mitarbeitern, Testentwicklung, fortgeschrittenen und erfahrenen automatisierten Testingenieuren und Junior-Automatisierungsingenieuren.

(4) Schulung: Schulung für junge Automatisierungsingenieure, Design-Framework und Verpackungsantrieb usw.

Viertens werden automatisierte Tests schrittweise implementiert

1. Erstellen Sie das Grundgerüst und schließen Sie die automatisierte Testdemo eines Moduls ab

Übernehmen Sie das Designmuster „Page Object“, um Seitenelemente, Anwendungsfallprozesse und Daten zu kapseln und zu isolieren, und kapseln Sie den Webtreiber erneut im allgemeinen Modul oder Basismodul und generieren Sie automatisch Testberichte, um die Ergebnisse der automatisierten Testausführung zu analysieren.

2. Erweitern Sie den Testumfang entsprechend dem Rahmen der Basisversion

Wählen Sie Funktionsmodule aus, die für automatisierte Tests geeignet sind, schreiben Sie Skripte, Anwendungsfälle usw. gemäß den grundlegenden Framework-Ideen und erweitern Sie dann das Framework, um eine datengesteuerte, geplante Ausführung von Tests, das Versenden von Berichts-E-Mails und andere benutzerfreundliche Nicht-Ideen zu realisieren -Kernfunktionen.

3. Regressionstests, die die meisten Module abdecken

Je nach Koordination der Ressourcen wie Personal werden die automatisierten Testfälle soweit erweitert, dass die meisten Modul-Regressionstests abgedeckt werden. Regressionstests werden durch die Durchführung automatisierter Tests vervollständigt, um den Zweck zu erreichen, die Effizienz von Regressionstests zu verbessern und den Personalbedarf für Regressionstests zu reduzieren.

Zusammenfassung

Die automatisierte Testtechnologie hat in der modernen Testtechnologie bestimmte Vorteile, automatisierte Tests sind jedoch in keinem Fall erforderlich. Eine angemessene oder kostengünstige Investition erfordert, dass wir automatisierte Tests zum richtigen Zeitpunkt einführen, sodass manuelle Tests und Automatisierung Der Test erreicht eine perfekte Kombination .

Sehen Sie sich kostenlose Video-Tutorials an unter:

Eine sehr perverse Methode , die es Ihnen ermöglicht, automatisierte Tests (Web-/Schnittstellenautomatisierung/APP/Selenium/Leistungstests usw.) schnell zu beherrschen. Die 、 【Automatisiertes Testen】 Designideen für automatisierte Testframeworks, ein vollständiger Satz an Softwaretestmaterialien und Lernrouten usw. Für weitere spannende Videos vom UP-Master achten Sie bitte auf das UP-Konto. https://www.bilibili.com/video/BV1hj411z71j/?vd_source=74d0257ec7066cc4f9013524f0bb7013Wählen Sie im richtigen Alter die richtige Position und versuchen Sie, Ihre eigenen Vorteile voll auszunutzen.

Mein Weg zur automatisierten Testentwicklung ist in jeder Phase des Weges untrennbar mit dem Plan verbunden, da ich gerne plane und zusammenfasse. Deshalb haben meine Freunde und ich eine Zeit lang die folgende „Lernroute für Softwaretests“ organisiert und geschrieben Viele [Netzwerkfestplattenressourcen] organisiert

 PS: Wie kann ich es bekommen? Es ist ganz einfach: Klicken Sie einfach auf die kleine Karte unten, um es kostenlos zu erhalten!


 

 

Ich denke du magst

Origin blog.csdn.net/HUA1211/article/details/132249488
Empfohlen
Rangfolge