Maskenorientiertes Testdesign zur GUI-Automatisierung

Inhaltsübersicht:

Die Maske als Automatisierungskomponente (AK)

Ein möglicher Ausweg aus dieser Problematik ist eine konsequent maskenorientierte Methode. Bei diesem Ansatz steht bei der technischen Umsetzung nicht mehr die Funktion der zu testenden Anwendung, sondern ausschließlich das äußere Erscheinungsbild im Vordergrund. Dabei wird die Programmierung der Automatisierungskomponenten (AKs) und die Erstellung von Testfällen vollständig voneinander getrennt.

Jede AK bildet eine Maske der Anwendung ab. Es wird konsequent jedes sichtbare Element einer Maske von der AK erfasst und adressierbar gemacht. Die Funktionalität der darunterliegenden Software wird dabei grundsätzlich nicht beachtet. Dadurch wird die Programmlogik der zu automatisierenden Anwendung und die AKs vollständig voneinander getrennt. Die einzelnen AKs werden als eigenständige, unabhängige Programme betrachtet.

Die korrekte Funktion einer AK ist dann nachgewiesen, wenn alle Maskenelemente korrekt adressiert werden können. Der funktionale Zusammenhang zwischen den einzelnen Elementen einer Maske spielt für die Erstellung der AKs keine Rolle. Es ist daher ausreichend, nur das implementierte Frontend ohne Funktion vorliegen zu haben. Für die Erstellung ist lediglich die Darstellung sämtlicher Elemente einer Maske notwendig. Dadurch wird die Umsetzung der Automatisierung unabhängig von den dargestellten Testfällen überprüfbar.

Framework zur Erstellung von Testfällen

Für das Framework zur Erstellung von Testfällen aus den AKs werden nun zwei Ebenen benötigt: Makro- und Mikrosteuerung.

Makrosteuerung: In dieser Ebene werden die AKs in die durch den Testfall vorgegebene Reihenfolge gebracht. Um logische Abhängigkeiten, die nicht aus der Anwendung resultieren, zwischen den AKs zu vermeiden, besitzen alle AKs folgende zwei Eigenschaften:

  1. Eine AK prüft nicht am Ende einer Ausführung ob sie korrekt durchgelaufen ist, sondern am Anfang ob die Voraussetzungen für ein Start überhaupt gegeben sind.
  2. Alle AKs haben eine einheitliche Schnittstelle, sodass jede AK mit jeder anderen AK verbunden werden kann. Es werden vom Framework also keine technischen Vorgaben zur Kombination von AKs gemacht. Bei undurchführbaren Kombinationen wird die falsch positionierte AK ermitteln dass sie nicht starten kann und einen entsprechenden Fehler generieren.

Mikrosteuerung: Diese zweite Steuerungsebene wird eine für die Aktionen innerhalb einer Maske benötigt. Für jede AK gibt es eine Schnittstelle zu einer Datei welche die einzelnen Aktionen beschreibt, die von der AK zum Zeitpunkt der Ausführung auf der Maske durchgeführt werden sollen. Diese Aktionen werden wie beim schlüsselwortgetriebenen Design dargestellt.

Im Gegensatz zum traditionellen schlüsselwortgetriebenen Design sind die Schlüsselworte ausschließlich auf Maskenelementtypen bezogen. Dadurch wird erreicht, dass beispielsweise ein Element des Typs „Button“ mit jeder AK einer Anwendung dieselben Aktionen ausführen kann. Das von den Testfallerstellern zu verwendende „Wörterbuch“ kann so entsprechend übersichtlich gehalten und die Elementtypen leicht um zusätzliche Funktionen erweitert werden.