Testautomatisierungs-Framework: ArchiArchitektur und Typen
โก Intelligente Zusammenfassung
Die Architektur von Testautomatisierungs-Frameworks definiert die Codierungsstandards, die Testdatenverarbeitung und die Regeln fรผr das Objektrepository, die von Automatisierungsskripten befolgt werden. Es existieren fรผnf etablierte Typen, die jeweils den Einrichtungsaufwand gegen Wiederverwendbarkeit, Wartungskosten und langfristige Skalierbarkeit abwรคgen.

Was ist ein Framework beim Automatisierungstest?
A Testautomatisierungs-Framework ist eine Reihe von Richtlinien wie Kodierungsstandards, Testdatenhandhabung, Behandlung von Objektrepositorys usw., die, wenn sie bei der Automatisierungsskripterstellung befolgt werden, positive Ergebnisse wie erhรถhte Codewiederverwendung, hรถhere Portabilitรคt, geringere Skriptwartungskosten usw. erzielen. Dies sind nur Richtlinien und keine Regeln; sie sind nicht obligatorisch und Sie kรถnnen auch ohne Befolgung der Richtlinien Skripte erstellen. Aber Sie werden die Vorteile eines Frameworks verpassen.
Warum brauchen Sie ein Framework?
Betrachten wir ein Beispiel, um zu verstehen, warum Sie ein Framework benรถtigen.
Ich bin sicher, Sie haben an einem Seminar/einer Vorlesung/einer Konferenz teilgenommen, bei dem/der die Teilnehmer aufgefordert wurden, die folgenden Richtlinien zu beachten โ
- Die Teilnehmer sollten ihre Plรคtze 5 Minuten vor Beginn einer Vorlesung einnehmen.
- Bringen Sie zum Notieren ein Notizbuch und einen Stift mit.
- Lies die Bauchmuskelntract, damit Sie eine Vorstellung davon haben, worum es in der Prรคsentation gehen wird.
- Mobiltelefone sollten auf lautlos gestellt werden.
- Benutzen Sie die Ausgangstore am gegenรผberliegenden Ende des Vortrags, falls Sie mitten in der Vorlesung gehen mรผssen.
- Am Ende der Sitzung werden Fragen beantwortet.
Glauben Sie, dass Sie ein Seminar durchfรผhren kรถnnen? OHNE Einhaltung dieser Richtlinien?
Die Antwort ist groร JA! Natรผrlich kรถnnen Sie ein Seminar/eine Vorlesung/eine Konferenz/eine Demonstration auch ohne die oben genannten Richtlinien durchfรผhren. Tatsรคchlich werden einige von uns sie nicht befolgen, obwohl sie festgelegt sind!
Werden die Richtlinien jedoch befolgt, fรผhrt dies zu einem positiven Ergebnis, wie beispielsweise einer geringeren Publikumsverรคrgerung.traction wรคhrend der Vorlesungen, erhรถhte Teilnehmerbindung und besseres Verstรคndnis des Themas.
Basierend auf dem oben Gesagten, a Ein Rahmenwerk kann als eine Reihe von Richtlinien definiert werden, deren Befolgung zu vorteilhaften Ergebnissen fรผhrt.
Testautomatisierungs-Framework ArchiArchitektur: Schlรผsselkomponenten
Bevor man die verschiedenen Typen vergleicht, ist es hilfreich, sich anzusehen, was jedes Framework beinhaltet. ArchiDie Struktur beschreibt, wie diese Teile geschichtet sind, sodass eine Verรคnderung in einer Schicht die anderen nicht beeintrรคchtigt.
- Testskriptebene: Enthรคlt die Testfรคlle. Die Skripte bleiben kurz, da sie wiederverwendbare Funktionen aufrufen, anstatt Navigationsschritte zu wiederholen.
- Funktionsbibliothek: Speichert gemeinsam genutzte Aktionen wie Anmelden, Suchen und Abmelden, sodass eine Workflow-รnderung nur einmal vorgenommen werden muss.
- Objekt-Repository: Ordnet benutzerfreundliche Namen GUI-Elementen zu. Bei รnderungen der Benutzeroberflรคche wird nur diese Ebene bearbeitet.
- Testdatenschicht: Speichert Eingabe- und Sollwerte in Excel-, CSV- oder Datenbankquellen anstatt im Code.
- Konfigurationsschicht: Enthรคlt Umwelt URLs, Browserauswahl, Timeouts und Anmeldeinformationen.
- Berichtsebene: Erstellt Ausfรผhrungsberichte, Screenshots von Fehlern und Diagnoseprotokolle.
- Ausfรผhrungsschicht: Lรถst Build-Suites von einem Build-Server aus und verknรผpft die Automatisierung mit kontinuierliche integration.
Die unten aufgefรผhrten Framework-Typen unterscheiden sich hauptsรคchlich darin, wie strikt sie diese Ebenen trennen.
Arten von Testautomatisierungs-Frameworks
Nachfolgend sind die verschiedenen Arten von automatisierten Test-Frameworks aufgefรผhrt:
- Lineares Scripting
- Die Testbibliothek ArchiStruktur-Framework.
- Die datengesteuerte Tests Rahmen.
- Das schlรผsselwortgesteuerte oder tabellengesteuerte Testframework.
- Das hybride Testautomatisierungs-Framework.
Schauen wir sie uns im Detail an โ
1) Lineares Scripting โ Aufnahme und Wiedergabe
Es ist das einfachste aller Testautomatisierungs-Frameworks und wird auch als bezeichnet โAufnahme und Wiedergabeโ. In diesem Automatisierungstests Framework: Der Tester zeichnet jeden Schritt manuell auf (Navigation und Benutzereingaben) und fรผgt in der ersten Runde Prรผfpunkte (Validierungsschritte) ein. Anschlieรend spielt er das aufgezeichnete Drehbuch in den folgenden Runden ab.
Ejemplo: Erwรคgen Sie, sich anzumelden Flugreservierungsantrag und รberprรผfen, ob die Anwendung bei erfolgreicher Anmeldung geladen wurde. Hier zeichnet der Tester einfach die Schritte auf und fรผgt Validierungsschritte hinzu.
SystemUtil.Run "flight4a.exe","","","open" Dialog("Login").WinEdit("Agent Name:").Set "Guru99" Dialog("Login").WinEdit("Password:").Set "Mercury" Dialog("Login").WinButton("OK").Click 'Check Flight Reservation Window has loaded after successful log-on Window("Flight Reservation").Check CheckPoint("Flight Reservation")
Vorteile
- Der schnellste Weg, ein Skript zu erstellen
- Automatisierungskenntnisse sind nicht erforderlich
- Der einfachste Weg, die Funktionen des Testtools kennenzulernen
Nachteile
- Wenig Wiederverwendung von Skripten
- Testdaten sind im Skript fest codiert
- Wartungs-Albtraum
2) Die Testbibliothek ArchiStruktur-Framework
Es ist auch bekannt als โStrukturiertes Scriptingโ or "Funktionale Zersetzung".
In diesem Automation Testing Framework werden Testskripte zunรคchst aufgezeichnet durch โAufnahme & Wiedergabe" Methode. Laterwerden allgemeine Aufgaben innerhalb der Skripte identifiziert und in Funktionen gruppiert. Diese Funktionen werden vom Haupttestskript aufgerufen LED Treiber auf unterschiedliche Weise, um Testfรคlle zu erstellen.
Ejemplo: Mit dem gleichen Beispiel wie oben sieht die Funktion zum Anmelden bei Flight Reservation so aus.
Function Login() SystemUtil.Run "flight4a.exe","","","open" Dialog("Login").WinEdit("Agent Name:").Set "Guru99" Dialog("Login").WinEdit("Password:").Set "Mercury" Dialog("Login").WinButton("OK").Click End Function
Nun rufen Sie diese Funktion im Hauptskript wie folgt auf
Call Login() --------------------------- 'Other Function calls / Test Steps. ---------------------------
Vorteile
- Im Vergleich zu โAufzeichnen und Wiedergebenโ wird bei strukturiertem Scripting ein hรถheres Maร an Code-Wiederverwendung erreicht.
- Die Entwicklung der Automatisierungsskripte ist aufgrund der hรถheren Wiederverwendung des Codes kostengรผnstiger
- Einfachere Skriptwartung
Nachteile
- Zum Schreiben von Skripten mit dem Test Library Framework ist technisches Fachwissen erforderlich
- Fรผr die Planung und Vorbereitung von Testskripten wird mehr Zeit benรถtigt.
- Testdaten sind in den Skripten fest codiert
3) Das datengesteuerte Test-Framework
In diesem Rahmen, wรคhrend Testfall Die Logik befindet sich in den Testskripten, die Testdaten sind separat und werden auรerhalb der Testskripte gespeichert. Die Testdaten werden aus externen Dateien (Excel-Dateien, Textdateien, CSV-Dateien, ODBC-Quellen, DAO-Objekte, ADO-Objekte) gelesen und in Variablen innerhalb des Testskripts geladen. Variablen werden sowohl fรผr Eingabe- als auch fรผr Prรผfwerte verwendet. Die Testskripte selbst werden entweder mit linearem Scripting oder dem Testbibliothek-Framework erstellt. Die Technik wird im Folgenden nรคher erlรคutert. datengetriebenes Testen Tutorial.
Ejemplo: Entwickelnping Das Skript fรผr die Flugreservierungsanmeldung, das diese Methode verwendet, umfasst zwei Schritte.
Schritt 1) Erstellen Sie eine Testdatendatei, die Excel, CSV oder eine andere Datenbankquelle sein kann.
| Agentenname | Passwort |
|---|---|
| Jimmy | Mercury |
| Tina | MERCURY |
| Bill | Quecksilber |
Schritt 2) Entwickeln Sie ein Testskript und verweisen Sie auf Ihre Testdatenquelle.
SystemUtil.Run "flight4a.exe","","","open" Dialog("Login").WinEdit("Agent Name:").Set DataTable("AgentName", dtGlobalSheet) Dialog("Login").WinEdit("Password:").Set DataTable("Password", dtGlobalSheet) Dialog("Login").WinButton("OK").Click 'Check Flight Reservation Window has loaded Window("Flight Reservation").Check CheckPoint("Flight Reservation") 'Note "dtGlobalSheet" is the default excel sheet provided by QTP.
Vorteile
- รnderungen an den Testskripten haben keinen Einfluss auf die Testdaten
- Testfรคlle kรถnnen mit mehreren Datensรคtzen ausgefรผhrt werden
- Eine Vielzahl von Testszenarien kรถnnen ausgefรผhrt werden, indem einfach die Testdaten in der externen Datendatei variiert werden
Nachteile
- Es wird mehr Zeit benรถtigt, um sowohl Testskripte als auch Testdaten zu planen und vorzubereiten
4) Das schlรผsselwortgesteuerte oder tabellengesteuerte Test-Framework
Das Keyword-gesteuert Oder: Die Entwicklung eines tabellengesteuerten Automatisierungsframeworks erfordert Datentabellen und Schlรผsselwรถrter. unabhรคngig von der Testautomatisierungswerkzeug verwendet, um sie auszufรผhren. Tests kรถnnen mit oder ohne die Anwendung entworfen werden. Bei einem schlรผsselwortgesteuerten Test wird die Funktionalitรคt der zu testenden Anwendung in einer Tabelle sowie in Schritt-fรผr-Schritt-Anleitungen fรผr jeden Test dokumentiert.
Es gibt drei grundlegende Komponenten eines Keyword-Driven Frameworks, nรคmlich Schlรผsselwort, Anwendungszuordnung und Komponentenfunktion.
Ein Schlรผsselwort ist eine Aktion, die an einer GUI-Komponente ausgefรผhrt werden kann. Beispiele fรผr Schlรผsselwรถrter (Aktionen) fรผr Textfelder von GUI-Komponenten sind InputText, VerifyValue, VerifyProperty usw.
Was ist die Anwendungskarte?
Eine Anwendungszuordnung stellt benannte Referenzen fรผr GUI-Komponenten bereit. Anwendungskarten sind nichts anderes als โObjekt-Repository"
Was ist Komponentenfunktion?
Komponentenfunktionen sind Funktionen, die die GUI-Komponente aktiv manipulieren oder abfragen. Ein Beispiel fรผr eine Funktion wรคre: Klicken Sie auf die Web-Schaltflรคche mit vollstรคndiger Fehlerbehandlung und geben Sie Daten in eine Web-Bearbeitung mit vollstรคndiger Fehlerbehandlung ein. Komponentenfunktionen kรถnnen anwendungsabhรคngig oder unabhรคngig sein.
Beispiel: Um die Keyword-Ansicht zu verstehen, nehmen wir dasselbe Beispiel. Es umfasst 2 Schritte
Schritt 1:: Erstellen einer Datentabelle (anders als die im Data Driven Framework erstellte Testdatentabelle). Diese Datentabelle enthรคlt Aktionen, die fรผr GUI-Objekte ausgefรผhrt werden sollen, und gegebenenfalls entsprechende Argumente. Jede Zeile stellt einen Testschritt dar.
| Betreff | Action | |
|---|---|---|
| (Anwendungskarte) | (SCHLรSSELWรRTER) | Argument |
| WinEdit(Name des Agenten) | Stelle den | Guru99 |
| WinEdit(Passwort) | Stelle den | Mercury |
| WinButton(OK) | Klicken Sie auf | |
| Fenster (Flugreservierung) | Verify | Exists |
Schritt 2:: Schreiben Code in Form von Komponentenfunktionen.
Sobald Sie Ihre Datentabelle(n) erstellt haben, schreiben Sie einfach ein Programm oder eine Reihe von Skripten, die jeden Schritt einlesen, den Schritt basierend auf dem im Feld โAktionโ enthaltenen Schlรผsselwort ausfรผhren, eine Fehlerprรผfung durchfรผhren und alle relevanten Informationen protokollieren. Dieses Programm oder dieser Skriptsatz wรผrde dem folgenden Pseudocode รคhneln:
Function main() { Call ConnectTable(Name of the Table) { //Calling Function for connecting to the table. while (Call TableParser() != -1) //Calling function for Parsing and extracting values from the table. { Pass values to appropriate COMPONENT functions. Like Set(Object Name, Argument) ex. Set(Agent Name, Guru99). } } Call CloseConnection() //Function for Closing connection after all the operation has been performed. } //End of main
Das ist alles zum Keyword Driven Framework.
Der Vorteil des Keyword Driven Frameworks besteht darin, dass die Schlรผsselwรถrter wiederverwendbar sind. Um dies zu verstehen, stellen Sie sich vor, Sie mรถchten den Anmeldevorgang fรผr eine Website, beispielsweise YAHOO MAIL, รผberprรผfen. Die Tabelle sieht dann so aus:
| Betreff | Action | |
|---|---|---|
| (ANWENDUNGSKARTE) | (STICHWORT) | Argument |
| WebEdit(Benutzername) | Stelle den | abc@yahoo.com |
| WebEdit (Passwort) | Stelle den | xxxxx |
| WebButton(OK) | Klicken Sie auf | |
| Fenster (Yahoo Mail) | Verify | Loads |
Beachten Sie, dass in diesem Fall die Schlรผsselwรถrter โSetโ, โClickโ und โVerifyโ unverรคndert bleiben, da entsprechende Komponentenfunktionen bereits entwickelt wurden. Sie mรผssen lediglich die Anwendungszuordnung รคndern.ping (Objekt-Repository) von der frรผheren Flugreservierung zu Yahoo Mail , mit einer รnderung der Argumentwerte und das gleiche Skript wird funktionieren!
Vorteile
- Bietet eine hohe Wiederverwendbarkeit des Codes
- Unabhรคngig vom Testtool
- Unabhรคngig von der zu testenden Anwendung funktioniert dasselbe Skript fรผr AUT (mit einigen Einschrรคnkungen).
- Tests kรถnnen mit oder ohne AUT entworfen werden
Nachteile
- Da die Anfangsinvestition recht hoch ist, kรถnnen die Vorteile nur dann realisiert werden, wenn die Anwendung betrรคchtlich groร ist und die Testskripte รผber mehrere Jahre hinweg gepflegt werden mรผssen.
- Fรผr die Erstellung des Keyword Driven Framework ist eine hohe Automatisierungskompetenz erforderlich.
HINWEIS: Obwohl OpenText UFT One (ehemals Micro Focus) UFTObwohl es sich selbst als Keyword-Driven Framework bewirbt, kann man damit keine vollstรคndige Unabhรคngigkeit von Testwerkzeugen und Anwendungen erreichen.
5) Das Hybrid Test Automation Framework
Wie der Name schon sagt, handelt es sich bei diesem Framework um eine Kombination aus einem oder mehreren der oben besprochenen Automatisierungs-Frameworks, die ihre Stรคrken ausnutzen und versuchen, ihre Schwรคchen abzuschwรคchen. Das hybride Test-QA-Automatisierungs-Framework ist das, woraus sich die meisten Testautomatisierungs-Frameworks im Laufe der Zeit und mehrerer Projekte entwickeln. Maximum Industry verwendet das Keyword Framework in einer Kombination aus Funktionszerlegungsmethoden.
PS: Andere erwรคhnenswerte Automatisierungs-Frameworks sind
Testen Sie das Modularitรคts-Framework
In diesem Framework werden hรคufige Aufgaben im Testskript als Module gruppiert.
Beispiel: Verwendung von Aktionen in QTP Der Benutzer kann modulare Skripte erstellen.
Beispielskript fรผr die Anmeldung
SystemUtil.Run "flight4a.exe","","","open" Dialog("Login").WinEdit("Agent Name:").Set "Guru99" Dialog("Login").WinEdit("Password:").Set "Mercury" Dialog("Login").WinButton("OK").Click 'End of Script
Jetzt kรถnnen Sie diese Aktion im Hauptskript wie folgt aufrufen:
RunAction ("Login[Argument]", oneIteration)
Geschรคftsprozesstests (BPT)
Diese Automatisierungs-Frameworks unterteilen groรe Geschรคftsprozesse in Komponenten, die im selben oder in verschiedenen Testskripten mehrfach wiederverwendet werden kรถnnen. Beispielsweise ist der Geschรคftsprozess der Flugbuchung in Komponenten wie Anmeldung, Flugsuche, Buchung, Zahlung und Abmeldung unterteilt, die im selben Geschรคftsprozess oder in verschiedenen Prozessen wiederverwendet werden kรถnnen. Auรerdem erleichtert BPT eine engere Koordination zwischen KMU und Automatisierungsingenieuren.
Wie man das richtige Testautomatisierungs-Framework auswรคhlt
Es gibt keine allgemeingรผltige Lรถsung. Die richtige Wahl hรคngt von den Fรคhigkeiten des Teams, der Grรถรe der Anwendung und der erforderlichen Laufzeit der Suite ab. Die folgende Tabelle vergleicht die fรผnf Lรถsungstypen anhand der ergebnisentscheidenden Faktoren.
| Framework-Typ | Einrichtungsaufwand | Code Wiederverwendung: | Wartungskosten | am besten geeignet fรผr |
|---|---|---|---|---|
| Lineares Scripting | Sehr geringe | Sehr geringe | Sehr hohe | Vorfรผhrungen und einmalige Rauchtests |
| Test-Bibliothek Architektur | Medium | Medium | Medium | Stabile Anwendungen mit wiederkehrenden Arbeitsablรคufen |
| Datengesteuert | Medium | Medium | Niedrig | Formulare und Berechnungen, die viele Eingabemengen benรถtigen |
| Keyword-gesteuert | Hoch | Sehr hohe | Niedrig | Groรe Suiten, die von gemischten technischen Teams betreut werden. |
| Hybrid | Hoch | Sehr hohe | Niedrig | Langlaufende Unternehmensprogramme |
Beantworten Sie diese Fragen, bevor Sie sich festlegen:
- Wie lange wird die Suite bestehen? Jahrelange Wartung rechtfertigt die hohen Anfangsinvestitionen eines keywordbasierten oder hybriden Designs. Bei einem Kurzzeitprojekt ist dies nicht der Fall.
- Wer erstellt die Tests? Wenn manuelle Tester Testfรคlle beisteuern, ermรถglicht ihnen eine Schlรผsselworttabelle, zu arbeiten, ohne die Skriptsprache lernen zu mรผssen.
- Wie volatil ist die Schnittstelle? Hรคufige Bildschirmwechsel machen ein separates Objektrepository unerlรคsslich, andernfalls muss jedes Skript bearbeitet werden.
- Wie viel Datenvariation ist erforderlich? Viele Eingangskombinationen deuten direkt auf ein datengetriebenes Design hin.
- Welches Werkzeug ist bereits im Einsatz? Das Rahmenwerk muss zu den gewรคhlten Spezifikationen passen. Automatisierungswerkzeug und eine Sprache, die das Team beherrscht, wie zum Beispiel Selenium und Java or Cucumber.
Die meisten Teams beginnen mit einem bibliotheks- oder datengetriebenen Ansatz und entwickeln sich dann zu einem Hybridmodell weiter. Regression Die Suite wird erweitert.
Vorteile des Testautomatisierungs-Frameworks Architektur
Im Folgenden sind die Vorteile der Testautomatisierungs-Framework-Architektur aufgefรผhrt:
- Ein Testautomatisierungs-Framework hilft, das Risiko und den Kostenaufwand zu reduzieren
- Es verbessert die Effizienz von Tests
- Es trรคgt dazu bei, die Wartungskosten zu senken
- Ermรถglicht die Wiederverwendung von Code
- Dadurch kann eine maximale Testabdeckung erreicht werden
- Es maximiert die Anwendungsfunktionalitรคt
- Hilft, die Duplizierung von Testfรคllen zu reduzieren
- Es hilft, die Testeffizienz und -leistung durch Testautomatisierung zu verbessern
