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.

  • ๐Ÿ“ Kerndefinition: Ein Rahmenwerk ist ein Satz von Richtlinien, keine Regeln, die Wiederverwendbarkeit, Portabilitรคt und geringere Wartungskosten ermรถglichen.
  • โบ๏ธ Lineares Scripting: Aufnahme- und Wiedergabesysteme lassen sich am schnellsten erstellen, sind aber am schwierigsten zu warten, da die Daten fest codiert bleiben.
  • ๐Ÿงฑ Test-Bibliothek ArchiStruktur: Hรคufige Arbeitsschritte werden zu wiederverwendbaren Funktionen, die von einem Treiberskript aufgerufen werden, wodurch die Wiederverwendung auf Kosten der Planungszeit erhรถht wird.
  • ๐Ÿ“Š Datengesteuert: Die Testlogik bleibt in den Skripten, wรคhrend die Daten in Excel, CSV oder eine Datenbank verschoben werden, wodurch viele Szenarien pro Skript mรถglich sind.
  • ๐Ÿ”‘ Keyword-gesteuert: Aktionen werden als Schlรผsselwรถrter in einer Tabelle gespeichert, wodurch Tests unabhรคngig von Tool und Anwendung mรถglich sind.
  • ๐Ÿ”€ Hybridmodell: Die meisten ausgereiften Testsuiten kombinieren Keyword-Tabellen mit funktionaler Dekomposition, um Aufwand und Abdeckung in Einklang zu bringen.

Testautomatisierungs-Framework ArchiArchitektur und Typen

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:

  1. Lineares Scripting
  2. Die Testbibliothek ArchiStruktur-Framework.
  3. Die datengesteuerte Tests Rahmen.
  4. Das schlรผsselwortgesteuerte oder tabellengesteuerte Testframework.
  5. 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:

  1. 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.
  2. 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.
  3. Wie volatil ist die Schnittstelle? Hรคufige Bildschirmwechsel machen ein separates Objektrepository unerlรคsslich, andernfalls muss jedes Skript bearbeitet werden.
  4. Wie viel Datenvariation ist erforderlich? Viele Eingangskombinationen deuten direkt auf ein datengetriebenes Design hin.
  5. 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

Hรคufig gestellte Fragen

Ein Tool fรผhrt Befehle an eine Anwendung aus. Ein Framework ist das umgebende Set an Konventionen, Ordnerstruktur und wiederverwendbaren Bibliotheken, das festlegt, wie diese Befehle geschrieben, organisiert und gewartet werden.

Nein. Das Page Object Model ist ein Entwurfsmuster fรผr die Objektverwaltungsschicht. Es wird hรคufig innerhalb von Bibliotheken, datengetriebenen und hybriden Frameworks verwendet, anstatt diese zu ersetzen.

Die KI ergรคnzt die Objektspeicherebene um selbstheilende Lokalisierungsfunktionen und einen visuellen Vergleich. Die mehrschichtige Architektur bleibt unverรคndert, aber Skripte brechen seltener ab, wenn sich die Benutzeroberflรคche geringfรผgig รคndert.

Ja. KI-Assistenten wandeln schriftliche Schritte in Objekt-, Aktions- und Argumentzeilen um. Ein Prรผfer muss jedoch weiterhin bestรคtigen, dass die Objektnamen mit dem Repository รผbereinstimmen, da die generierten Zeilen sonst zur Laufzeit fehlschlagen.

TracWartungsaufwand fรผr k-Skripte pro Release, Prozentsatz instabiler Fehler und Zeit vom Build bis zum Ergebnis. Ein gut funktionierendes Framework zeichnet sich durch sinkenden Wartungsaufwand bei gleichzeitig steigender automatisierter Testabdeckung aus.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: