Die generische Testautomatisierungs-Architektur (gTAA)

Die generische Testautomatisierungs-Architektur (gTAA)

20. Oktober 2021

Im Zuge einer umfänglichen Teststrategie gewinnt die Testautomatisierung immer mehr an Bedeutung. Zum einen können durch Testautomatisierung mehr Tests in kürzerer Zeit ausgeführt werden, wodurch die Tester mehr Zeit für kompliziertes exploratives Testen aufbringen können, zum anderen sind automatisierte Tests bei Regressions-Tests nahezu unabdingbar geworden. Dadurch können schnell und einfach kritische Änderungen in der Software erkannt werden. Die Erstellung einer Automatisierungssuite ist allerdings aufwändig und erschwert den Einstieg.

Die generische Testautomatisierungs-Architektur (gTAA) bietet eine Hilfestellung aus welchen wiederkehrenden Konzepten, Schritten und Vorgehensweisen eine Testautomatisierungslösung aufgebaut sein sollte. Dabei ist empfohlen, dass die einzelnen Komponenten die folgenden Prinzipien berücksichtigen, um die Entwicklung und Wartung der Testautomatisierungslösung zu vereinfachen:

  • Kapselung von Einzelverantwortlichkeit (jede Komponente ist nur für eine Sache zuständig)
  • Erweiterbarkeit (Komponenten sind veränder- oder erweiterbar ohne Abwärtskompabilität zu verlieren)
  • Austauschbarkeit (Komponenten lassen sich austauschen, ohne dabei das Gesamtverhalten zu beeinträchtigen)
  • Komponententrennung (lieber mehrere spezifische Komponenten als eine Universelle)
  • Abhängigkeits-Umkehr (Komponenten sind spezifiziert durch Abstraktionen anstelle von Details)

 

Die gTAA ist unterteilt in 4 Schichten (siehe Abbildung 1) welche alle von 3 Management Schichten abhängen (Test-, Konfigurations- und Projektmanagement):

Abbildung 1: Die generische Testautomatisierungs-Architektur (gTAA)
Quelle: Certified Tester Advanced Level Syllabus GA 2016 – Test Automation Engineer, Figure 1: The Generic Test Automation Architecture

 

Die Testgenerierungsschicht ermöglicht das Navigieren und Editieren durch die erstellte Test Suite Struktur. Durch softwaregestützte Werkzeuge können Testfälle automatisch anhand von Modellen und Spezifikationen generiert werden. Ebenso können in dieser Schicht Testdaten erfasst oder aufgenommen werden.

Auf der Ebene der Testdefinition kommt es zur Spezifizierung der Testfälle sowie zur Parametrierung, Einschränkung und Instanziierung der Testdaten. Des Weiteren können hier ganze Testsequenzen oder bestimmte Testverhalten spezifiziert und/oder gruppiert werden. Erstellt wird das entweder mittels geeigneter Tools oder skriptbasiert. Diese Schicht ist zuständig für die ordentliche Dokumentation aller Testfälle und -daten. Des Weiteren kann diese Schicht einen Zugang zu evtl. benötigter Bibliotheken (bspw. Keyword-Driven-Testing) enthalten.

Der größte Automatisierungsaufwand liegt in der Testausführungsschicht. Hier müssen die Testfälle automatisiert ausgeführt und geloggt, sowie die zugehörigen Testberichte erstellt werden. Dabei werden die Testdaten mit den Testfällen von der Ausführungsschicht interpretiert und in ausführbare Skripte gewandelt. Je nach Ausführung wird hier auch das zu testende Software System (SUT) für den Test hoch und/oder runtergefahren. Durch Analysieren des Antwortverhaltens des SUT, können Logiken verwendet werden, um die weitere Testausführung zu beeinflussen. In der Testdefinitionsschicht werden bestimmte zu erwartende Zustände festgelegt, die in dieser Schicht validiert und in dem Testbericht dokumentiert werden.

Die letzte Schicht ist die Testadaptionsschicht.  Sie ermöglicht die Interaktion und das Überwachen des SUT. Mittels technologie-spezifischer Adapter können die technologie-neutralen Testfälle auf das SUT angewendet werden. Mögliche Adapter können GUI’s, API‘s, Services oder Datenbanken sein. Ebenso kann das SUT oder zugehörige Systeme durch einen Adapter simuliert werden.

 

Sie wollen eine Testautomatisierung aufsetzen oder haben Sie Fragen zu dem Thema?
Oder sind Sie konkret an einer Unterstützung in diesem Bereich interessiert?

Kontaktieren Sie uns einfach. Wir freuen uns auf den unverbindlichen Austausch mit Ihnen.