Zum Inhalt springen

Blogeintrag

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

Testautomatisierung  Aufwandsschätzung  OSTC 

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:

 

KategorieBeschreibungAnzahl
Einfachkeine speziellen Controls, keine speziellen Setup/Teardown Funktionen, wenige Schritte120
MittelSetup/Teardown notwendig, viele Schritte, aber gut mit Tools automatisierbar100
SchwerKomplexe Abläufe, sehr viele Schritte, Automatisierung sehr aufwendig80

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:

 

KategorieTestfall 1Testfall 2

Einfach

28 Minuten14 Minuten
Mittel58 Minuten42 Minuten
Schwer110 Minuten164 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

KategorieMinimumMaximum

Einfach

15 Minuten30 Minuten
Mittel30 Minuten60 Minuten
Schwer100 Minuten

200 Minuten

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

KategorieMinimumMaximum

Einfach

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

200 x 80 = 16.000 Minuten (266 h)

Summe12.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%:

 

Programmierung213 h426 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

markus.unterauer@software-quality-lab.com

 +43 732 890072 438
 +43 676 840072 438