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
- Einteilen der Testfälle in Komplexitätsklassen „einfach“ / „mittel“ / „komplex“
- Automatisieren von je zwei Beispiel-Testfällen jeder Komplexitätsklasse
- Ermitteln von Minimum und Maximum Zeiten je Komplexitätsklasse
- Hochrechnen der ermittelten Zeiten auf alle Testfälle für den Best-Case und Worst-Case
- 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!