Zum Inhalt springen

Blogeintrag

Den Aufwand für Testautomatisierung nicht raten, sondern schätzen

OSTC  Testautomatisierung  Aufwandsschätzung 

Im OSTC (Operational Services and Test Center) von Software Quality Lab automatisieren wir für viele unserer Kunden bisher manuell ausgeführte Testfälle.  Automatisierung ist ein wichtiges Mittel, um die Effizienz im Testen zu erhöhen. Zu Beginn solcher Testautomatisierungsprojekte werden wir natürlich gefragt, wie lange das dauert und was es kostet. Wir haben hier eine solide Vorgehensweise entwickelt, wie wir den Aufwand für solche Automatisierungsvorhaben abschätzen.

5 Schritte zur Aufwandsschätzung von Testautomatisierungsprojekten

  1. Einteilen der Testfälle in Komplexitätsklassen „einfach“ / „mittel“ / „komplex“
  2. Automatisieren von je zwei Beispiel-Testfällen jeder Komplexitätsklasse
  3. Ermitteln von Minimum und Maximum Zeiten je Komplexitätsklasse
  4. Hochrechnen der ermittelten Zeiten auf alle Testfälle für den Best-Case und Worst-Case
  5. Aufschlag für weitere Aufwandsfaktoren hinzufügen (Koordination, Setup, Debugging, etc.)

Am Ende erhält man so eine gute Abschätzung des Aufwands. Für die Automatisierung werden die Testfälle noch priorisiert und entsprechend dieser Priorität umgesetzt. Nachfolgend dazu ein Beispiel:

 

Schritt 1: Einteilen der zu automatisierenden Testfälle in Komplexitätsklassen

Nehmen wir an, wir haben 300 Testfälle im Testplan, die wir automatisieren möchten:

Kategorie Beschreibung Anzahl
Einfach keine speziellen Controls, keine speziellen Setup/Teardown Funktionen, wenige Schritte 120
Mittel Setup/Teardown notwendig, viele Schritte, aber gut mit Tools automatisierbar 100
Schwer Komplexe Abläufe, sehr viele Schritte, Automatisierung sehr aufwendig 80

Diese Klassifizierung der Testfälle setzt viel Erfahrung voraus.

 

Schritt 2: Automatisieren von je zwei Beispiel-Testfällen jeder Komplexitätsklasse

Aus jeder Komplexitätsklasse werden zwei Testfälle automatisiert und die benötigte Zeit gemessen:

Kategorie Testfall 1 Testfall 2

Einfach

28 Minuten 14 Minuten
Mittel 58 Minuten 42 Minuten
Schwer 110 Minuten 164 Minuten

Zusätzlich ergeben sich Erkenntnisse wie die folgenden aus der Umsetzung:

  • Für komplexe Testfälle ist viel Diskussionsbedarf zur Klärung der Testschritte nötig.
  • Immer wieder muss auf Image-based Testing zurückgegriffen werden.
  • Die Automatisierung ist durchwegs mit Tool NNN möglich.
  • Für Setup/Teardown reichen im Normalfall SQL Scripts aus.

Diese Erkenntnisse werden in Schritt 5 bei der Aufschlagskalkulation berücksichtigt.

 

Schritt 3: Definieren von Minimum- und Maximum-Zeiten je Komplexitätsklasse

Kategorie Minimum Maximum

Einfach

15 Minuten 30 Minuten
Mittel 30 Minuten 60 Minuten
Schwer 100 Minuten

200 Minuten

Schritt 4: Hochrechnen des Aufwands für die Automatisierung aller Testfälle

Kategorie Minimum Maximum

Einfach

15 x 120 = 1.800 Minuten (30 h) 30 x 120 = 3.600 Minuten (60 h)
Mittel 30 x 100 = 3.000 Minuten (50 h) 60 x 100 = 6.000 Minuten (100 h)
Schwer 100 x 80 = 8.000 Minuten (133 h)

200 x 80 = 16.000 Minuten (266 h)

Summe 12.800 Minuten (213 h) 26.600 Minuten (426 h)

Schritt 5: Aufschlag für weitere Aufwandsfaktoren hinzufügen

Obige Aufwände sind jedoch nur die Netto-Programmieraufwände für die Testfälle. Dazu kommen noch je nach Projekt und Ihrem Prozess weitere Tätigkeiten:

  • Klärung von unklaren Testfallbeschreibungen
  • Koordination und Abstimmung
  • Deployment der Testfälle auf die Testinfrastruktur
  • Bei längeren Projekten: Laufende Anpassungen bereits automatisierter Testfälle an den Fortschritt der währenddessen weiterlaufenden Produktentwicklung
  • Technische Schwierigkeiten

Für diese Faktoren sollten Sie je nach Projektsituation 25-75% Aufschlag berechnen. In unserem Fall rechnen wir mit 40%:

Programmierung 213 h 426 h
+Aufschlag (40%) +85 h +170 h
=Summe =298 h (ca. 37 PT) =596 h (ca. 74 PT)

Insgesamt ergibt das einen Aufwand zwischen 37 und 74 Personentagen für die Automatisierung der 300 definierten Testfälle. Die Erfahrung zeigt, dass der endgültige Wert eher an der oberen Grenze, als am Minimum liegt.

Voraussetzungen

Die hier gezeigte Vorgehensweise setzt voraus, dass

  • die Testfälle bereits definiert sind.
  • die Testumgebung zur Verfügung steht und stabil ist.
  • alle Ansprechpartner in ausreichendem Maße Zeit haben.
  • die Testautomatisierer mit den Automatisierungswerkzeugen vertraut sind.

Ist dies nicht gegeben, muss ein höherer Aufschlag in Schritt 5 berücksichtigt werden.

 

Zusammenfassung

Testautomatisierung ist Software-Entwicklung. Entsprechend groß können die Aufwände in solchen Projekten werden. Um diese abzuschätzen sind sorgfältige und strukturierte Methoden notwendig. Am besten starten Sie mit einem kleinen Proof of Concept und errechnen aus den Ergebnissen unter Berücksichtigung von Aufschlägen für Koordination, Änderungen und Projektrisiko den Gesamtaufwand. So können Sie Überraschungen vermeiden und den maximalen Nutzen aus der Automatisierung ihrer Testfälle ziehen!

Fachlicher Kontakt

Markus Unterauer Profilbild

Markus Unterauer

markus.unterauer@software-quality-lab.com

 +43 676 840072-438