Wie wird ein Pilotprojekt zur Software-Testautomatisierung selektiert und wann lohnt sich die Investition?
Qualitätssicherungs-Experten, IT-Projektmanager und Qualitätssicherungs-Manager stellen sich eine zentrale Frage: Lohnt es sich Softwaretests zu automatisieren, und wenn ja, wann lohnt sich diese Investition und was sind die Kriterien zur Auswahl?
Anhand von Anwendungsfällen wird folgender Blogbeitrag dieser Frage nachgehen. Hierzu werden zuerst Pilotprojekte ausgewählt, deren Wirtschaftlichkeit mittels einer ROI- (Return on Investment) und Break-Even-Punkt-Berechnung analysiert wird.
Softwaretests sind ein wesentlicher Bestandteil des Softwareentwicklungszyklus. Sie werden als eine zentrale Aktivität angesehen, bei der Software gemäß den Anforderungen und Spezifikationen validiert wird. In vielen IT-Projekten nimmt die Softwarequalitätssicherung – auch Qualitätssicherung (QS) genannt – eine wichtige Rolle ein. Unternehmen formen interne Abteilungen, beauftragen externe Ressourcen und/oder Firmen, um ihre Software mit hoher Qualität in den Markt zu bringen. Dabei entfällt ein erheblicher Anteil der IT-Budgets häufig auf die Qualitätssicherung der IT-Systeme [1].
Wie in der Softwareentwicklung spielt die Agilität auch in der Qualitätssicherung eine wesentliche Rolle und immer mehr Firmen wechseln von dem klassischen Ansatz zu den agilen Ansätzen [3].
Dabei wollen die Unternehmen in den letzten Jahren mehr in die Richtung Testautomatisierung gehen, da das manuelle Testing in bestimmten Fällen nicht in der Lage ist mit den agilen Softwareentwicklungsansätzen zu kooperieren. Aufgrund des erhöhten Taktes von Softwarelieferungen müssen die Tests im agilen Umfeld öfter und schneller durchgeführt werden, damit die Software zeitlich auf den Markt gebracht werden kann. Hierbei muss sichergestellt werden, dass die Bestandsfunktionen einer Software nicht von häufigen Code-Lieferungen negativ beeinflusst werden. Um solche Fälle zu überprüfen, werden idealerweise nach jeder Softwaremodifizierung Regressionstests durchgeführt, die sich wiederum gut für die Automatisierung eignen [6].
Kriterien zur Auswahl
Wie in vielen Projekten werden auch im Software Testing Pilotprojekte identifiziert, um Risiken und damit verbundene Kosten zu minimieren [2].
Das Pilotprojekt wird sorgfältig nach den folgenden Richtlinien ausgewählt.
- Kritische Projekte vermeiden. Die Einführung der Testautomatisierung darf keine Verzögerungen bei kritischen Projekten verursachen.
- Triviale Projekte vermeiden. Um die Testautomatisierung in dem gesamten Projekt zu etablieren, ist es wichtig, sichtbare Erfolge zu erreichen.
- Bei der Auswahl des Pilotprojekts auch Management und Stakeholder engagieren.
Das Pilotprojekt sollte Aspekte beinhalten, die auch bei weiteren Projekten vorkommen. Somit kann die Testautomatisierung mit weniger Aufwand auf weitere Projekte übertragen werden. Ein Bespiel wären GUI-Komponente, die in mehreren Projekten vorkommen [5].
Wirtschaftlichkeit und Berechnung von Return on Investment
Eine Möglichkeit zu überprüfen, ob die Automatisierung der Tests sich wirtschaftlich lohnt, ist die Durchführung einer ROI-Berechnung. Folglich wird ein generisches Break-Even-Modell dargestellt, das veranschaulicht, ab wann ein Break-Even-Punkt erreicht werden kann.
Die x-Achse zeigt die Anzahl der Testläufe „Test runs“, während die y-Achse die Kosten zeigt, die beim Testen anfallen. Die beiden Kurven veranschaulichen, wie sich die Kosten mit jedem manuellen bzw. automatisierten Test erhöhen. In diesem Graphen ist deutlich zu erkennen, dass sich die Testautomatisierung erst ab einer bestimmten Anzahl von Testläufen immer mehr lohnt.
Um die ROI-Berechnung durchzuführen, müssen zuerst die Kosten ermittelt werden. Folgende Tabelle veranschaulicht die Kosten, die in diese ROI-Berechnung einfließen.
Kosten:
- Testdesignkosten: Kosten der Erstellung und Dokumentation von Testfällen.
- Toolkosten: Kosten, die durch den Erwerb von Softwarelizenzen entstehen. (In diesem Bespiel sind keine Toolkosten für die Automatisierung vorgesehen, da es sich um eine Open-Source Lösung handelt.)
- Implementierungskosten: Kosten der Erstellung von Automatisierungsskripts und -bibliotheken durch eine/n Testautomatisierungsingenieur/in.
- Testausführung: Kosten der Testdurchführung eines Regressionstestkatalogs.
Faktoren:
- Anzahl der „Testruns“ der Regression: Wie oft wird ein Regressionstestkatalog pro Release durchgeführt.
- Anzahl der Releases pro Jahr: Wie oft ist ein neues Release vorgesehen. Ein neues Release beinhaltet mehrere Iterationen des Regressionstests
Bespiel ROI Berechnung und Kosten
Folgende Bespiele veranschaulichen Kosten und ROI-Berechnungen für zwei fiktive Pilotprojekte (APP-X und APP-Y), die zur Einführung der Testautomatisierung ausgewählt wurden.
Um die Auswahl des Pilotprojekts zu finalisieren, muss zusätzlich eine Wirtschaftlichkeitsanalyse durchgeführt werden.
Erklärungen zu den Formeln:
Die ROI-Werte (1,035 und 2,20) implizieren, dass beide Applikationen als geeignete Kandidaten gesehen werden können. Für APP-X wird bereits nach dem ersten Jahr die Investition zurückgewonnen. Bei APP-Y gelingt dies schon nach einem halben Jahr. Ein wesentlicher Einflussfaktor dieser Berechnung ist der Wiederholungsgrad der Tests. Falls die Tests wiederholt durchgeführt werden, dann wird die Investition in die automatisierten Tests besonders profitabel. Letztlich ist es wichtig zu erwähnen, dass hierbei keine Toolkosten angefallen sind, da das Testautomatisierungsframework mit Open-Source-Bibliotheken erstellt wurde. In Abbildung 5 und 6 werden Break-Even-Punkte für die beiden Verfahren dargestellt. Diesen Abbildungen kann entnommen werden, dass sich für APP-Y nach Release zwei und für APP-X nach dem dritten Release eine Automatisierung lohnt.
Gemäß den Berechnungen wird deutlich, dass ein Wechsel zur Testautomatisierung für die beiden Pilotprojekte wirtschaftlich vorteilhaft ist. Es ist allerdings zu beachten, dass dieser Vorteil erst nach einer bestimmten Zeit und einer bestimmten Anzahl von Anwendungen eintritt.
Die ROI-Analyse und die Break-Even-Punkt-Darstellung haben unter anderem gezeigt, dass eine Automatisierung kurzfristig hohe Kosten mit sich bringt. Demzufolge ist den IT-Projekten generell zu empfehlen, eine gründliche Analyse durchzuführen, bevor mit dem Automatisierungsprojekt gestartet wird. Es sollte hier ein geeignetes Pilotprojekt ausgewählt werden, um die Risiken zu minimieren [4]. Die Automatisierung lohnt sich wirtschaftlich erst nach einigen Iterationen und kann für kurze Projekte eher ungünstig wirken. Möglicherweise ist ein Projekt mit nur einem Release kein guter Kandidat für einen Automatisierungsansatz. Das Modell zur Kostenermittlung kann außerdem je nach Projektlage oder Technologie variieren und sollte für jedes Projekt individuell betrachtet werden.