7 Schritte zum Aufbau eines Test­automati­sierungs­frameworks

Aufbau eines automatisierten Testframeworks in sieben Schritten, das Sie und Ihr Team für langfristigen Erfolg rüsten.

1. Strukturieren, Organisieren und Aufsetzen der Quellcode­verwaltung

Beginnen Sie zunächst mit der Einrichtung und Organisierung einer Ordnerstruktur für Ihre Test Assets. Sie sollten verschiedene Assets voneinander trennen, z.B. Tests, Name-Mapping-Kriterien und Skripts, und die Dateien erstellen, von denen Sie wissen, dass Sie sie zukünftig für Ihre Tests benötigen. Im Ordner "Scripts" möchten Sie beispielsweise Dateien für jeden Skripttyp erstellen, um Skripts, Aktionen, Dienstprogramme und „Assertions“ zu erstellen. Stellen Sie außerdem sicher, dass Sie eine Datei für Ihre Daten erstellen.

Wenn Sie Ihre Assets auf diese Weise strukturieren, können sie schnell von Mitgliedern Ihres Teams referenziert werden und es ist gewährleistet, dass Ihre Tests stabil sind, wenn Aktualisierungen vorgenommen werden. Wenn Sie Ihre Assets auf diese Weise strukturieren, können Sie unterschiedliche Projekte jederzeit bearbeiten, ohne dass Sie sich dabei unnötig lange in die Struktur einarbeiten müssen. Durch einheitliche Strukturen können Sie schnell bestehende Projekte klonen und als Grundlage für neue Projekte verwenden, wodurch wiederrum der Initialaufwand reduziert wird.

Wenn Sie diese ersten Schritte umsetzen, dann stellen Sie sicher, dass Sie ein Quellcodeverwaltungssystem (Source Control Management (SCM)) wie Git oder Mercurial verwenden, um Ihre Arbeit zu speichern und zu versionieren. Dies ist ein Punkt, welcher in der Entwicklung selbstverständlich ist aber im Bereich des Testings oftmals vernachlässigt wird. Ihre Arbeit ist somit gesichert und lässt sich jeder Zeit bei Fehlern zu einem früheren Zeitpunkt wiederherstellen, zudem lassen sich Änderungen an Projekten lückenlosen nachvollziehen was die Analysezeit reduziert.

2. Machen Sie sich mit der Anwendung vertraut

Der zweite Schritt besteht darin, sich mit der Anwendung vertraut zu machen. Dazu gehört das Lesen von Dokumenten, welche die Funktionsweise der Anwendung spezifiziert, sowie das eigentliche anwenden der Applikation. Sie sollten diesen Punkt keinesfalls vernachlässigen, denn hieraus lassen sich unteranderem die technischen Rahmenbedingungen für das Framework erkennen.

Führen Sie explorative Tests durch, um sich ein Bild davon zu machen, wie die internen Workflows des Systems aufgebaut sind. Diese Übung stellt sicher, dass Sie wissen, wie die Anwendung funktioniert. Sobald Sie dies getan haben, müssen Sie eine Vorgehensweise erstellen oder aktualisieren, mit dem Sie Ihre UI-Objekte finden. Je nach verwendetem Tool kann dies bedeuten, dass Sie grundlegende Name-Mapping-Eigenschaften erstellen oder Skripts für die Aktionen erstellen müssen, die zum Identifizieren von Objekten erforderlich sind.

Der wichtigste Teil dieses Schritts besteht darin, Ihre Aktionen aufzuzeichnen. Machen Sie sich Notizen darüber, was Ihre Anforderungen sein werden und wie Ihre Automatisierung diese testen.

3. Ermitteln Sie Ihre Testumgebungen und sammeln Sie Daten

Sammeln Sie als Nächstes die Daten, die Sie für die Tests verwenden möchten, und richten Sie Ihre Umgebungen ein. Es ist entscheidend für Ihren Erfolg, dass Sie Konfigurationen einrichten, die in mehr als einer Umgebung ausgeführt werden können.

Ein Event Handler ist eine Funktion, die aus Code besteht, der als Listener fungiert und darauf wartet, dass ein Ereignis ausgelöst wird, um ein Skript oder eine Reihe von Skripten auszulösen. Stellen Sie sich Ihre durchschnittliche Bankinganwendung vor: Nach einer bestimmten Anzahl von Minuten von Leerlauf erscheint eine Benachrichtigung, in der Sie gefragt werden, ob Sie mehr Zeit benötigen. Wenn Sie nicht antworten, werden Sie aus Sicherheitsgründen automatisch abgemeldet.

Ihr Event Handler ist hier die Funktion, welcher die Skripte für die Leerlaufbenachrichtigung und den Abmeldeprozess auslöst. Unabhängig davon, in welcher Umgebung Sie arbeiten, vielleicht Windows 10 oder Windows 7, möchten Sie, dass dieser Workflow stattfindet und Ihr Endbenutzer dies auch erwartet.

Mit Event Handlern können Sie Aktionen ausführen, die auf ein Ereignis reagieren, ohne dass für jede Umgebung separate Tests erforderlich sind. Sie sind die Anweisungen dafür, wie ein System ohne irgendwelche Besonderheiten ausgeführt werden sollte, und ermöglichen es Ihnen, Ihre Tests zu verfeinern, ohne sie manuell behandeln zu müssen. Zum Beispiel könnten Sie alle Eigenschaften dynamischer Objektidentifikationen wie URLs oder Dateinamen ändern.

Wenn Sie den Namen Ihrer Anwendung ändern und auf einen anderen Pfad verweisen oder aktualisieren müssen, oder wie sie installiert ist, kann Ihr Framework dies mit Hilfe von Event Handlern beheben. Tests werden verwendet, um sicherzustellen, dass sich Teile der Anwendung wie erwartet verhalten, und das Framework stellt dafür die Tools zur Verfügung.

Jetzt zu Ihren Testdaten. Ihr Framework sollte die Daten getrennt von den Tests enthalten. Verwenden Sie Ihre Repositories zum Speichern von Daten und behalten Sie Ihre Eigenschaften und Referenzen allgemein - nicht testspezifisch. Dadurch können Ihre Datenobjekte zwischen Scripts gemeinsam genutzt werden und Ihre Daten sind in allen Dienstprogrammen verfügbar, was Ihnen in der Zukunft Zeit und Mühe erspart.

4. Richten Sie ein Smoke Testprojekt ein

Bevor Sie Ihre Dienstprogramme und Überprüfungen erstellen, ist es entscheidend, dass Sie ein Smoke Testprojekt einrichten. Dies wird die wichtigste Testreihe sein, mit denen Sie Ihre Dienstprogramme überprüfen.

Smoke Tests oder Buildverifizierungstests bestätigen, dass die wichtigsten Funktionen einer Anwendung wie vorgesehen funktionieren, und bestimmen, ob zusätzliche Tests erforderlich sind. Wenn ein Smoke Test bestanden wird, bedeutet dies, dass die wesentlichen Teile Ihrer Anwendung funktionieren, so dass Sie weitergehende Tests durchführen können. Wenn die Tests fehlschlagen, bedeutet dies, dass die grundlegende Funktionalität, die Ihre Anwendung benötigt, bereits fehlerhaft ist. Wenn dies geschieht, ist es besser, wenn Sie darum bitten, dass dies zuerst behoben wird. Weitere Tests zu diesem Zeitpunkt würden nur wertvolle Zeit verschwenden.

Wenn Ihre Software reifer wird oder dessen Fähigkeiten sich erweitern, wird auch Ihre Smoke Test-Suite wachsen müssen. Es braucht nur einen Fehler, um eine Anwendung zu lähmen und den Ruf eines Unternehmens zu gefährden.

5. Erstellen Sie Skript Routinen für Aktionen auf dem Bildschirm

Nachdem Sie sich mit der Anwendung, dem Sammeln von Daten und dem Einrichten Ihrer Umgebungen vertraut gemacht haben, müssen Sie gemeinsam genutzte Skript Routinen für allgemeine Benutzeroberflächenaktionen (z.B. Menünavigation und Texteingabefelder) erstellen. Dies sind die grundlegenden Bausteine Ihrer Tests, die Sie dann zur Testlogik zusammenfügen können.

Je nachdem, welches Tool Sie verwenden, können Sie Teile einfach in einen Keyword-Test ziehen und ablegen. Auf diese Weise kann Ihr Framework Ihren Testablauf und die Überprüfungen so steuern, dass nur eine minimale Wartung einzelner Tests erforderlich ist.

Ein Trick besteht darin, JavaScript-Klassen in Ihrem Framework zu verwenden, insbesondere für die Navigation. Auf diese Weise müssen Sie, wenn Sie die Protokollierung Ihrer Aktionen oder die erwarteten Testergebnisse aktualisieren, dies nur von einem Ort aus tun, um die Protokollierung letztendlich konsistent zu halten.

Dadurch können Teammitglieder, die keine Automatisierungstechniker oder Entwickler sind, Ihre Testprotokolle einsehen und verstehen, was vor sich geht. Sie können so feststellen, ob in der Anwendung tatsächlich ein Fehler vorhanden ist, oder es sich um einen Fehler im Test handelt. Daher ist es wichtig, dass Sie Ihre Frameworkdaten von den tatsächlichen Testdaten abstrahieren.

6. Erstellen und Verwalten von Überprüfungen

Im nächsten Schritt sollten Sie Ihre Überprüfungen einrichten, die aus der Struktur Ihrer Daten die gleiche Logik ableiten, d.h. sie sollten gemeinsam genutzt werden können. Nehmen wir an, Sie testen die Funktionalität Ihrer Anwendung und die Anforderungen ändern sich in einem Textfeld, welches vorher nur numerische Eingaben akzeptierte: Wenn Sie überprüfen, dass das Textfeld nur numerische Zeichen und keinen Text akzeptiert, müssen Ihre Tests aktualisiert werden.

In solchen Fällen wollen Sie nicht bei jedem einzelnen Test stecken bleiben, vor allem, wenn Sie dies noch manuell tun. Idealerweise aktualisieren Sie den Überprüfungsabschnitt Ihres Textfelds an einer Stelle, sodass 50 Tests, bei denen mehrere verschiedene Szenarien getestet werden, noch funktionieren. Alle Benutzeroberflächenüberprüfungen, die Sie in Ihren Aktionen erstellen, sollten optional sein. Wenn ein Feld eine Eingabe richtig akzeptiert und der Test bestanden wird, müssen Sie diese Aktion nicht jedes Mal überprüfen.

Ihre Bestätigungsdaten sollten ebenfalls geteilt werden. Verschiedene Eingabedienstprogramme sollten in der Lage sein, Datenobjekte zu akzeptieren, die in vorherigen Schritten erstellt wurden, sodass Sie Elemente miteinander verketten können. Dies ermöglicht Ihnen auch, bei Bedarf Aktualisierungen in einem Bereich vorzunehmen, die dann über die verschiedenen Bereiche Ihres Frameworks verteilt werden können. Auch hier ist es wichtig, Frameworkdaten von den tatsächlichen Testdaten zu trennen.

7. Richten Sie Ihre Logging & Reporting Mechanismen ein

Der letzte Teil Ihres UI Testframeworks ist Ihr Protokollierungs- und Berichterstellungsmechanismus. Während des gesamten Build-Prozesses sollten Sie alle explorativen Aktionen, die Datenaufbereitung, sowie die Erstellung von Umgebungs- und Verifizierungsdaten, protokollieren und Notizen machen.

Protokollieren Sie Nachrichten vor der Überprüfung, indem Sie angeben, was Sie überprüfen und was das erwartete Ergebnis ist. Sie sollten diese Nachrichten für Menschen lesbar machen, damit die nicht-technischen Benutzer Ihr Protokoll einsehen können und genau wissen, wo und warum ein Fehler aufgetreten ist. Fehler sollten nicht kryptisch sein und niemand sollte erraten müssen, warum sie passiert sind.

Das Ziel dieses Schrittes ist es, Ihnen bei der Standardisierung Ihres Prozesses zu helfen - was protokolliert wird, wann protokolliert wird und die Fehler.

Die Berichterstattung sollte ebenfalls automatisiert werden. Die Automatisierung der Berichterstellung verringert die Zeit, die Sie für die Erstellung von Berichten benötigen, und ermöglicht es Ihnen, sich auf die Analyse der Daten zu konzentrieren. Wenn Sie Ihre Testprotokolle für die Freigabe in Ihrem Netzwerk oder auf einem Webserver exportieren möchten, können Sie mit dem richtigen Tool den E-Mail-Sendeprozess automatisieren. Wenn ein Test fehlschlägt, sollten Sie dies sofort wissen. Warum manuell die Berichte abholen?

Tests dienen zur Validierung der Anwendungslogik. Frameworks ermöglichen das einfache Erstellen und Bauen von Tests. Nach diesen sieben Schritten können Sie ein robustes UI Testframework erstellen, das die Grundlage für dauerhaften Erfolg bildet.

Erstellung des UI Testframeworks & TestComplete

Der Aufbau eines automatisierten UI Testframeworks kann ein schmerzhafter Prozess sein. Es ist komplex und zeitaufwendig. Als allgemeiner Leitfaden für Ihren Testprozess sollte Ihr Framework alles von der Standardsprache, in der Sie Code und Skripte schreiben möchten, bis hin zu den von Ihnen implementierten Vorgehensweisen und den Tools, die Sie verwenden möchten, beschreiben. Wenn Sie ein Tool auswählen, sollten Sie eines verwenden, das flexibel ist und eine sofort einsatzfähige Unterstützung für eine Vielzahl von Sprachen bietet.

TestComplete, welches ein automatisiertes Tool zum Testen der Funktionstüchtigkeit der Benutzeroberfläche ist, ermöglicht es Teams, UI Tests für Desktop-, Mobil-, und Webanwendungen zu erstellen und auszuführen. Es unterstützt eine Vielzahl von Skriptsprachen wie Python und JavaScript, verfügt über eine umfangreiche Objektbibliothek mit über 50'000 Objekteigenschaften und verfügt über eine robuste Aufnahme- und Wiedergabefunktion. Mit diesen Funktionen kann jedes Team problemlos ein starkes UI Testframework erstellen.

Sie möchten für Ihre Umsetzung der 7 Schritte durch einen unserer Experten unterstützt werden?
Kontaktieren Sie uns.

Kontakt