Risikobasierte Testautomation

Ein Widerspruch zum klassischen Testmanagement?

Testautomatisierungslösungen fristen nach anfänglicher Euphorie oftmals ein trauriges Dasein. „Zu teuer, nicht wartbar, zu kompliziert, funktioniert nicht…“ sind einige der Begründungen, die in diesem Umfeld oft gegeben werden. Dabei gibt es ein paar wenige, elementare Regeln, deren Beachtung eine Auto­mation zur Erfolgsgeschichte werden lassen. Eine dieser Grundregeln soll nachfolgend erläutert werden.

Testobjekte in der Risiko-Komplexitäs-Matrix

Der risikobasierte Test

Das risikobasierte Testen hilft Projekten im magischen Dreieck zwischen Zeit, Kosten und Qualität einen goldenen Mittelweg zu finden. Ein einfacher Ansatz diesbezüglich ist die Aufteilung von Testartefakten in handhabbare Einheiten (Testobjekte) und deren Klassifizierung nach Risiko und Komplexität. Die damit aufgespannte Matrix (siehe Abbildung 1) ermöglicht nun unter dem Gesichtspunkt der Bewertung von zu erwartenden Fehlern eine Fokussierung des Tests auf bestimmte Bereiche. Somit können bspw. auch unterschiedliche Methoden für die Ermittlung von Testfällen in Bezug zum fachlichen Risiko eines Testobjektes herangezogen werden. Die Komplexität hingegen ist i.d.R. ein Indiz für den zu erwarteten Aufwand, um ein bestimmtes Testobjekt manuell oder auch auto­mati­siert zu prüfen.

Der Testmanagementansatz

Aus dem vom Risikomanagement abgeleiteten Ansatz für die Bewertung von Schadenshöhe und Eintrittswahrscheinlichkeit ergibt sich, dass der Test im Qua­dran­ten A1 beginnt und sich über A2 und A3 fortsetzt. Damit sind Testfälle der Priorität A aus Sicht des Managements auch die ersten geeigneten Kan­di­da­ten für eine Testautomation.

Testobjekte mit hohem Risiko

Der Testautomationsansatz

Es gibt viele unterschiedliche Faktoren, die den Erfolg einer Testautomation bestimmen. Dazu gehören u.a. die folgenden, eher technisch relevanten Aspekte:

Die Robustheit des Gespanns der zu testenden Applikation und des gewählten Testroboters.

Die Qualität der Attribute von GUI Elementen für deren Wiedererkennung (Stichwort: dynamische ID’s).

Die Rücksetzbarkeit von Daten

Testobjekte mit geringer Komplexität

Um eine Testautomation einfach und schnell zu realisieren, gilt es, sogenannte „Quick Wins“ zu realisieren, um auch die erforderliche Akzeptanz zu ge­währ­leisten. Testobjekte mit geringer Komplexität sind demnach die idealen Kandidaten, um mit der Automation zu beginnen. Einfache Dinge macht ein Test­ro­bo­ter mit der immer gleichen stoischen Genauigkeit, während ein manueller Tester diese oft ermüdend empfindet.

Neben diesen eher technischen Problemstellungen ist die Testobjekteinstufung anhand der bereits bekannten Matrix aber ein, wenn nicht sogar der we­sent­liche Erfolgs­faktor einer Automation.

Der Widerspruch

Während das Testmanagement nunmehr also die Spalte A (hohes Risiko) oder sogar den Quadranten A1 als besonders wichtig und als unbedingt zu automatisieren deklariert, wäre es aus Sicht der Automation sinnvoll, den Blick vorerst nur auf die weniger komplexen Testobjekte zu fokussieren (Zeile 3).

Start der Automation im Quadranten A3 - hohes Risiko, aber geringe Komplexität

Die verblüffend einfache Lösung

Wenn man die beiden Ansätze miteinander kombiniert, gibt es aus beiden Ansätzen eine gemeinsame Schnittmenge, den Quadranten A3.

Die Testfälle zu den in diesem Quadranten befindlichen Testobjekten sollten also als Erstes automatisiert werden. Sie bergen ein hohes Risiko und müssen daher unbedingt ausgeführt werden, sind aber nur gering komplex, also auch schnell zu automatisieren. Häufig verbirgt sich hinter einem hohen Risiko auch eine höhere Ausführungshäufigkeit (Anzahl Retests). Damit lassen sich die zu er­stellen­den Automatisierungsskripte nicht nur mit geringerem Aufwand er­stellen, die not­wendige Investition wird sich durch die Einsparungen gegenüber einer manuellen Testausführung auch besonders schnell amortisierten, da diese Tests häufiger ausgeführt werden müssen.

Risikobasierte Automation

Durch die Automation der einfachen, aber dennoch risikobehafteten Testfälle, wird ein wichtiger „Quick Win“ realisiert. Die Tester müssen keine langweiligen Tests wieder und wieder ausführen und die Automation war genau aufgrund der geringen fachlichen Komplexität schnell zu realisieren.

Wenn nunmehr alle Testobjekte im Quadranten A3 automatisiert sind, kann man den Testautomatisierungsgrad schrittweise erhöhen, indem man sowohl mehr komplexe, als auch weniger risikobehaftete Testobjekte automatisiert. Die Automation „dehnt“ sich also nicht einfach pauschal nur in der Risikospalte A aus, sondern deckt sukzessive auch weniger risikobehaftete Testobjekte ab. Dabei ist zu beachten, dass diese Ausdehnung eine sinnvolle Grenze hat, bis zu der sich die Automation überhaupt rechnet (gestrichelte Linie). Dies gilt sowohl in Richtung höherer Komplexität (= hoher Aufwand), als auch in Richtung geringeres Risiko (=geringe Ausführungshäufigkeit). 

Ausdehnung der Automation auf weitere Testobjekte mit hohem Risiko, aber niedriger Komplexität

Dieser Bereich, der gleichwohl in jedem Projekt anders gelegen ist, sollte nicht überschritten werden, denn genau dort ist die Grenze zwischen sinnvoller Investition und Verschwendung.