Eine gute Software ist erst dann gut, wenn sie ausreichend getestet wurde. Aber manuelle Tests sind aufwändig und kosten Zeit und Geld. In unserem OSTC (Operational Services and Test Center) werden Tests deshalb automatisiert. Damit können wir die Effizienz steigern und auch den Aufwand im Vorfeld genauer einschätzen.

Automatisierung von Tests: Wie schätzen wir den Aufwand ein?

  1. Kategorisierung der Testfälle in die Komplexitätsklassen Einfach, Mittel, Komplex
  2. Testlauf mit zwei Beispieltests aus jeder Klasse
  3. Festlegung von Mindest- und Höchstaufwand an Zeit für jede Komplexitätsklasse
  4. Erstellen von Best- und Worst-Case-Szenarios mit den ermittelten Beispielzeiten
  5. Anpassung des Aufwandes mit zusätzlichen Parametern wie Debugging, Einrichtung etc.

 

Nach diesen fünf Schritten können wir recht gut sehen, wie groß der Aufwand für eine komplette Testreihe sein wird. Wir setzen dann noch Prioritäten für bestimmte Tests und beginnen die Umsetzung. Konkret sieht das so aus:

 

  1. Kategorisierung der Komplexitätsklassen

Beispielfall: 300 Tests, die automatisiert werden sollen

 

Kategorie Einschätzung Anzahl
Einfach keine speziellen Controls, keine komplizierte Einrichtung, wenige Schritte 90
Mittel Eigene Einrichtung notwendig, mehrere Test-Schritte, die einfach automatisierbar sind 140
Schwer Komplexe Abläufe, viele Test-Schritte, Automatisierung sehr aufwändig 70

 

Die Kategorisierung ist ein wichtiger Schritt, der Erfahrung und viel Kompetenz benötigt.

 

  1. Testlauf mit zwei Beispieltests aus jeder Klasse

Wir nehmen uns aus jeder Klasse zwei Testfälle, untersuchen sie und messen die benötigte Zeit für den Test.

Kategorie Testfall 1 Testfall 2
Einfach 29 Minuten 12 Minuten
Mittel 52 Minuten 36 Minuten
Schwer 108 Minuten 161 Minuten

 

Die Zeit für den Test alleine gibt aber nicht den gesamten Aufwand wieder. Folgende Faktoren werden beim Test ebenfalls überprüft:

  • Komplexe Fälle brauchen oft eine genaue Analyse, um die Testschritte genau festzulegen
  • Es kommt immer wieder vor, dass man Image-based testen muss
  • Mit dem Werkzeug NNN kann die Automatisierung vereinfacht werden
  • Man kann Setup und Teardown mit SQL-Skripten durchführen

Diese Faktoren werden später noch in die Gesamtkalkulation einfließen

 

  1. Festlegung von Mindest- und Höchstaufwand an Zeit für jede Komplexitätsklasse
Kategorie Minimum Maximum
Einfach 20 Minuten 40 Minuten
Mittel 40 Minuten 60 Minuten
Schwer 60 Minuten 100 Minuten

 

 

  1. Erstellen von Best- und Worst-Case-Szenarios des Automatisierungsaufwands mit den ermittelten Beispielzeiten
Kategorie Minimum Maximum
Einfach 20 x 90 = 1.800 Minuten (30 h) 40 x 90 = 3.600 Minuten (60 h)
Mittel 40 x 140 = 5.600 Minuten (93,33 h) 60 x 140 = 8.400 Minuten (140 h)
Schwer 60 x 70 = 4.200 Minuten (70 h) 100 x 70 = 7.000 Minuten (116,66 h)
Summe 11.600 Minuten (193,33 h) 19.000 Minuten (316,66 h)

 

 

  1. Anpassung des Aufwandes mit zusätzlichen Parametern wie Debugging, Einrichtung etc.

Der berechnete Zeitaufwand gibt aber nur die Zeit an, die für den automatisierten Test aufgewendet wird. Der Gesamtaufwand schließt aber noch andere Faktoren ein:

  • Diskussion und Lösung von Unklarheiten der verschiedenen Testfälle
  • Koordinierende Maßnahmen und abstimmende Gespräche
  • Übertragen der Tests in die Testumgebung
  • Bei umfangreichen Testreihen: Ständige Justierung der Tests an die Ergebnisse vorangegangener Testläufe
  • Ausfallzeiten durch technische Probleme

 

Diese Faktoren sind nicht immer einfach in Zahlen auszudrücken, die Bandbreite reicht von 25% bis zu 75% der veranschlagten Zeit. Ausschlaggebend ist dabei auch der Projektumfang. In unserem Beispiel gehen wir von einem durchschnittlichen Aufschlagsaufwand von 50% aus.

 

Programmierung 193,33 h 316,66 h
+ Aufschlag (50%) +96,66 h +158,33 h
= Gesamtaufwand = 290 h (ca. 36 PT) = 475 h (ca. 59 PT)

 

Bei 300 Testfällen resultiert das in einem Personalaufwand zwischen 36 und 59 Personentagen (PT). Um auf der sicheren Seite zu sein, sollte man sich eher am Höchstwert orientieren.

 

Voraussetzungen

In diesem Beispiel sind wir von bestimmten Voraussetzungen ausgegangen. Zu diesen gehören:

  • Testfälle sind bereits ausformuliert
  • eine passende Testumgebung steht zur Verfügung
  • Die Projektbeteiligten sind verfügbar
  • Das Personal ist mit den Tools zur Automatisierung vertraut

Bei Abweichungen muss der Aufschlag im Schritt 5 noch erhöht werden.

 

Zusammenfassung

Die Automatisierung von Tests funktioniert wie die Entwicklung von Software selbst. Das bedeutet, dass ein Testprojekt schnell sehr umfangreich werden kann. Dem sollten Sie mit einer guten Teststruktur begegnen und den Aufwand realistisch einschätzen. Am besten ist hier ein Proof of Concept (PoC) geeignet, dessen Ergebnisse dann hochgerechnet werden können. Rechnet man noch den weiteren Aufwand wie koordinierende Maßnahmen, Projektrisiko und Korrekturen hinzu, bekommt man ein genaues Bild vom Umfang des Tests. Damit erzielen Sie einen optimalen Nutzen der Testautomatisierung und sichern sich vor unerwarteten Aufwänden ab.