Testautomatisierungs-Frameworks

Testframeworks sind ein wesentlicher Bestandteil eines erfolgreichen automatisierten Testprozesses. Sie können die Kosten für Pflege und Tests reduzieren und bieten eine höhere Kapitalrendite (ROI) für QA-Teams, die ihre agilen Prozesse optimieren wollen.

In diesem Artikel möchten wir Ihnen die gängigsten Arten von Frameworks vorstellen, die heute verwendet werden, sowie die Vor- und Nachteile der einzelnen Frameworks aufzeigen. Für QA-Profis mit wenig Erfahrung im automatisierten Testen oder für diejenigen, die eine schnelle Auffrischung benötigen, bietet dieser Artikel einen hochkarätigen Überblick über die verschiedenen Arten von Frameworks und wie sie zum Erfolg eines automatisierten Testprozesses beitragen können.

Was ist ein Testframework?

Bevor wir uns mit den gängigsten Arten von Frameworks und deren Vorteilen befassen, klären wir doch zunächst, was ein Testautomatisierungs-Framework eigentlich ist. Ein Testframework besteht aus einer Reihe von Richtlinien für die Erstellung und das Design von Testfällen. Ein Framework besteht aus einer Kombination von Praktiken und Werkzeugen, die QA-Experten dabei helfen sollen, Tests effizienter durchzuführen.

Diese Richtlinien können Codierungsstandards, Verfahren zur Bearbeitung von Testdaten, Objekt-Repositories, Prozesse zur Speicherung von Testergebnissen oder Informationen über den Zugriff auf externe Ressourcen beinhalten.

Auch wenn dies keine zwingenden Regeln sind und die Tester immer noch Tests skripten oder aufzeichnen können, ohne ihnen zu folgen, bietet die Verwendung eines organisierten Frameworks in der Regel zusätzliche Vorteile, die andernfalls ausbleiben würden.

Vorteile eines Testautomatisierungs-Frameworks

Die Verwendung eines Frameworks für automatisierte Tests erhöht die Geschwindigkeit und Effizienz der Tests eines Teams, verbessert die Testgenauigkeit, senkt die Pflegekosten und verringert die Risiken. Sie sind aus verschiedenen wichtigen Gründen für einen effizienten automatisierten Testprozess unerlässlich:  

  • Erhöhte Testeffizienz
  • Niedrigere Pflegekosten
  • Minimaler manueller Eingriff
  • Maximale Testabdeckung
  • Wiederverwendbarkeit von Code

Ein häufiger Trend zur Risikobegrenzung geht dahin, Tests zu einem früheren Zeitpunkt im Testautomatisierungs-Framework durchzuführen. Mit Werkzeugen wie TestLeft können Sie in Ihrer eigene IDE testen. Laden Sie jetzt eine kostenlose 30-tägige Testversion zur Automatisierung in Ihrer IDE herunter!

Arten automatisierter Testframeworks

Es gibt sechs gängige Arten von Testautomatisierungs-Frameworks, die jeweils eine eigene Architektur und unterschiedliche Vor- und Nachteile aufweisen. Beim Entwickeln eines Testplans ist es wichtig, das Framework auszuwählen, das für Sie geeignet ist.

  1. Lineares Testautomatisierungs-Framework
  2. Modulares Testframework
  3. Testframework mit Bibliotheksarchitektur
  4. Datengesteuertes Framework
  5. Schlüsselwortgesteuertes Framework
  6. Hybrides Testframework

Lineares Testautomatisierungs-Framework

Mit einem linearen Testautomatisierungs-Framework, auch als Record-and-Playback-Framework bezeichnet, brauchen Tester keinen Code zu schreiben, um Funktionen zu erstellen, und die Schritte werden in einer sequentiellen Reihenfolge geschrieben. In diesem Prozess zeichnet der Tester jeden Schritt wie Navigation, Benutzereingaben oder Kontrollpunkte auf und spielt das Skript dann automatisch ab, um den Test durchzuführen.

Vorteile eines linearen Frameworks:

  • Es ist nicht notwendig, benutzerdefinierten Code zu schreiben und somit ist Fachwissen im Bereich der Testautomatisierung nicht erforderlich.
  • Es ist eine der schnellsten Möglichkeiten, Testskripte zu erstellen, da sie in kürzester Zeit aufgezeichnet werden können.
  • Der Test-Workflow ist für alle am Test Beteiligten leichter zu verstehen, da die Skripte sequentiell angelegt sind.
  • Es ist auch der einfachste Weg, um mit automatisierten Tests, insbesondere mit einem neuen Werkzeug, zu beginnen. Die meisten automatisierten Testwerkzeuge bieten heute Aufzeichnungs- und Wiedergabefunktionen, so dass Sie mit diesem Framework auch nicht mehr aufwändig vorplanen müssen.

Nachteile:

  • Die mit diesem Framework entwickelten Skripte sind nicht anderweitig verwendbar. Die Daten sind fest in das Testskript kodiert, d.h. die Testfälle können nicht mit verschiedenen Sets erneut ausgeführt werden und müssen geändert werden, wenn die Daten geändert werden.
  • Die Pflege wird als problematisch eingestuft, da jede Änderung an der Anwendung eine Menge Nacharbeit erfordert. Dieses Modell ist nicht besonders skalierbar, wenn sich der Umfang der Tests erweitert.

Modulares Testframework

Die Umsetzung eines modularen Frameworks erfordert, dass die Tester die zu testende Anwendung in getrennte Einheiten, Funktionen oder Abschnitte unterteilen, von denen jeder einzeln getestet wird. Wenn die Anwendung in einzelne Module zerlegt ist, wird für jedes Teil ein Testskript erstellt und anschließend werden diese hierarchisch zu größeren Tests zusammengefasst. Diese größeren Testsätze stellen dann verschiedene Testfälle dar.

Eine der Hauptstrategien bei der Verwendung eines modularen Frameworks ist die Entwicklung einer Abstraktionsebene, so dass Änderungen in einzelnen Abschnitten das übergeordnete Modul nicht betreffen.

Vorteile eines modularen Frameworks:

  • Wenn Änderungen an der Anwendung vorgenommen werden, müssen nur das Modul und das zugehörige individuelle Testskript angepasst werden. Das bedeutet, dass Sie nicht am Rest der Anwendung herumbasteln müssen und sie unverändert lassen können.
  • Die Erstellung von Testfällen ist weniger aufwendig, da Testskripte für verschiedene Module wiederverwendet werden können.

Nachteile eines modularen Frameworks:

  • Die Daten sind immer noch fest in das Testskript einprogrammiert, da die Tests separat ausgeführt werden, so dass Sie nicht mehrere Datensätze verwenden können.
  • Für die Einrichtung des Frameworks sind Programmierkenntnisse erforderlich.

Testframework mit Bibliotheksarchitektur

Das Framework mit Bibliotheksarchitektur für die Testautomatisierung baut zwar auf dem modularen Framework auf, bietet aber einige zusätzliche Vorteile. Anstatt die zu testende Anwendung in verschiedene Skripte aufzuteilen, die ausgeführt werden müssen, werden ähnliche Aufgaben innerhalb der Skripte bestimmt und später nach Funktionen gruppiert, so dass die Anwendung letztlich nach gemeinsamen Zielen aufgeteilt wird. Diese Funktionen sind in einer Bibliothek untergebracht, die von den Testskripten bei Bedarf abgerufen werden können.

Vorteile eines Testframeworks mit Bibliotheksarchitektur:

  • Ähnlich wie beim modularen Framework bietet diese Architektur einen hohen Grad an Modularisierung, was die Testpflege und Skalierbarkeit einfacher und kostengünstiger macht.
  • Außerdem kann dieses Framework besser wiederverwendet werden, da es eine Bibliothek mit gemeinsamen Funktionen enthält, die von mehreren Testskripten verwendet werden können.

Nachteile:

  • Die Testdaten sind jedoch auch hier fest im Skript kodiert. Daher erfordern eventuelle Änderungen an den Daten auch die Anpassung der Skripte.
  • Technisches Fachwissen ist erforderlich, um die gemeinsamen Funktionen innerhalb der Testskripte zu schreiben und zu analysieren.
  • Testskripte sind in der Regel zeitaufwendiger zu entwickeln.

Datengesteuertes Framework

Durch die Verwendung eines datengesteuerten Frameworks werden die Testdaten von der Skriptlogik getrennt, so dass die Tester Daten extern speichern können. Sehr häufig befinden sich die Tester in einer Situation, in der sie die gleiche Funktion einer Anwendung mehrfach mit verschiedenen Datensätzen testen müssen. In diesen Fällen ist es entscheidend, dass die Testdaten nicht im Skript selbst fest programmiert werden, wie dies bei einem linearen oder modular aufgebauten Testframework der Fall ist.

Das Einrichten eines datengesteuerten Testframeworks ermöglicht es dem Tester, die Ein- und Ausgabeparameter zu speichern und an Testskripte aus einer externen Datenquelle wie Excel-Tabellen, Textdateien, CSV-Dateien, SQL-Tabellen oder ODBC-Repositorys zu übergeben.

Die Testskripte sind mit der externen Datenquelle verbunden und sollen bei Bedarf die notwendigen Daten lesen und einpflegen.

Vorteile eines datengesteuerten Frameworks:

  • Tests können mit verschiedenen Datensätzen durchgeführt werden.
  • Mehrere Szenarien können durch eine einfache Datenveränderung schnell getestet werden, wodurch die Anzahl der benötigten Skripte verringert wird.
  • Hartkodierte Daten können vermieden werden, so dass Änderungen an den Testskripten keinen Einfluss auf die verwendeten Daten haben und umgekehrt.
  • Sie sparen Zeit, da Sie mehr Tests schneller ausführen können.

Nachteile:

  • Sie benötigen einen sehr erfahrenen Tester, der mit verschiedenen Programmiersprachen vertraut ist, um dieses Framework-Design richtig zu nutzen. Er muss die externen Datenquellen definieren und formatieren und den Code schreiben (Funktionen erstellen), der die Tests nahtlos mit diesen externen Datenquellen verbindet.
  • Die Einrichtung eines datengesteuerten Frameworks nimmt sehr viel Zeit in Anspruch.

Schlüsselwortgesteuertes Framework

In einem schlüsselwortgesteuerten Framework ist jede Funktion der zu testenden Anwendung in einer Tabelle mit einer Reihe von Anweisungen in aufeinanderfolgender Reihenfolge für jeden auszuführenden Test aufgeführt. Ähnlich wie beim datengesteuerten Framework werden Testdaten und Skriptlogik in einem schlüsselwortgesteuerten Framework getrennt – aber dieser Ansatz geht noch einen Schritt weiter.

Hier werden Schlüsselwörter auch in einer externen Datentabelle (daher der Name) gespeichert, so dass sie unabhängig von dem für die Durchführung der Tests verwendeten automatisierten Testwerkzeug sind. Schlüsselwörter sind der Teil eines Skripts, der die verschiedenen Aktionen darstellt, die ausgeführt werden, um die GUI einer Anwendung zu testen. Diese können so einfach wie ‘Klick,’ oder ‘Login,’ oder mit komplexen Bezeichnungen wie ‘Klicklink,’ oder ‘Verifylink bezeichnet werden.’

In der Tabelle werden Schlüsselwörter schrittweise mit einem zugehörigen Objekt oder dem Teil der Benutzeroberfläche gespeichert, auf dem die Aktion ausgeführt wird. Damit dieser Ansatz einwandfrei funktioniert, ist ein gemeinsames Objekt-Repository erforderlich, um die Objekte den zugehörigen Aktionen zuzuordnen.

Schlüsselworttabelle:

Schrittnummer Beschreibung Schlüsselwort Objekt Aktion
Schritt 1 Klicken Sie auf den Link zum Benutzerportal auf der Startseite Klicklink Schaltfläche „Login“
Schritt 2 Geben Sie den Benutzernamen ein Eingabedaten Anmelden Benutzername
Schritt 3 Geben Sie das Passwort ein Eingabedaten Anmelden Passwort
Schritt 4 Die Anmeldeinformationen des Benutzers überprüfen Verifylogin
Schritt 5 Melden Sie sich bei der Anwendung an Anmelden Schaltfläche „Absenden“

Nachdem die Tabelle eingerichtet wurde, müssen die Tester lediglich den Code schreiben, der die notwendige Aktion anhand der Schlüsselwörter auslöst. Beim Ausführen des Tests werden die Testdaten gelesen und auf das entsprechende Schlüsselwort verwiesen, das dann das entsprechende Skript ausführt.

Vorteile von schlüsselwortgesteuerten Frameworks:

  • Es sind nur minimale Skriptkenntnisse erforderlich.
  • Ein einzelnes Schlüsselwort kann für mehrere Testskripte verwendet werden, so dass der Code wiederverwendbar ist.
  • Testskripte können unabhängig von der zu testenden Anwendung entwickelt werden.

Nachteile:

  • Die anfänglichen Kosten für die Einrichtung des Frameworks sind hoch. Dieser Prozess ist sehr zeitaufwendig und komplex. Die Schlüsselwörter müssen definiert und die Objekt-Repositorys/Bibliotheken eingerichtet werden.
  • Sie benötigen einen Mitarbeiter mit guten Kompetenzen in der Testautomatisierung.
  • Schlüsselwörter können bei der Skalierung eines Testvorgangs Pflegeprobleme aufwerfen. Sie müssen weiterhin die Repositorys und Keyword-Tabellen entwickeln.

Hybride Testautomatisierungs-Frameworks

Wie bei den meisten Testprozessen sind automatisierte Testframeworks inzwischen zunehmend integriert und überschneiden sich. Wie der Name schon andeutet, ist ein hybrides Framework eine Kombination aus den zuvor genannten Frameworks. Damit sollen die Vorteile der einen genutzt und die Schwächen der anderen abgeschwächt werden.

Jede Anwendung ist anders und das gilt ebenso für die Prozesse, mit denen sie getestet wird. Da immer mehr Teams zu einem agilen Modell übergehen, ist der Aufbau eines flexiblen Frameworks für automatisiertes Testen äußerst wichtig. Ein hybrides Framework kann leichter angepasst werden, um die besten Testergebnisse zu erzielen.

Fazit

Ein empfohlener Ansatz für die Implementierung eines hybriden Frameworks für automatisiertes Testen ist die Suche nach einem Werkzeug, das sich schnell und einfach an Ihre Prozesse anpassen lässt. Bei der Auswahl eines automatisierten Testwerkzeugs, sollten Sie nach einem Werkzeug suchen, das flexibel ist und eine Vielzahl von Anwendungen und Sprachen unterstützen kann. Auf diese Weise kann Ihr Team, unabhängig von Hintergrund und Kompetenz, einen wertvollen Beitrag zu Ihren Testaufwendungen leisten. TestComplete, unser automatisiertes Testwerkzeug, das es QA-Teams ermöglicht, Benutzeroberflächen- und Funktionstests für mobile, Desktop- und Webanwendungen zu erstellen und durchzuführen, bietet eine umfassende Umgebung für die Entwicklung und Pflege automatisierter Testprojekte.

Erfahren Sie, wie TestComplete Ihnen helfen kann, ein UI-Framework zu entwickeln

Weitere Informationen finden Sie in unserem Starterkit für automatisierte Tests.

TestComplete unterstützt eine Vielzahl von Skriptsprachen wie Python, JavaScript, Java und VBScript und verfügt über eine umfangreiche Objektbibliothek mit über fünfzigtausend Objekteigenschaften und mehr als fünfhundert Arten von Steuerelementen. Die Aufzeichnungs- und Wiedergabefunktion des Werkzeugs ermöglicht es Nicht-Programmierern, komplexe Tests zu erstellen, ohne eine einzige Zeile Code zu schreiben. Mit diesen Funktionen kann jedes Team problemlos ein hybrides Framework entwickeln, das TestComplete unterstützt und es Teams ermöglicht, eine Vielzahl von Testtypen wie unter anderem datengesteuerte Tests und schlüsselwortgesteuerte Tests zu implementieren.