Wieviel darf Software Testautomatisierung kosten?


Daniele Trovato,

Wie viel darf Testautomatisierung kosten? Was könnten wir sparen, wenn wir Testautomatisierung systematisch einführen würden und wie lange wird es dauern, bis der Return on Investment „ROI“ erreicht wird? Die Beantwortung dieser Fragen ist wichtig um eine fundierte Entscheidung für oder gegen eine Einführung von Testautomatisierung zu treffen. Mit dem von SwissQ entwickelten Testautomatisierungs-Rechner, können diese Fragen beantwortet werden.

Zu beachten gilt, dass mit der Einführung automatisierter Tests nicht einzig die Einsparung von Test-Ressourcen im Vordergrund steht, sondern auch die Möglichkeit, in der gleichen Zeit eine wesentlich höhere Test-Abdeckung zu erzielen, somit die Software-Qualität zu verbessern und kürzere Entwicklungszyklen zu erreichen.

Bevor ich näher auf den Rechner eingehe, möchte ich zuerst erklären, wieso Testautomatisierung wichtig ist. Und auch warum sie in naher Zukunft, Stichwort DevOps und Digitalisierung, immer wichtiger wird. In diesem Kontext spielen vor allem die Beherrschung der Automatisierungskosten eine zentrale Rolle.

Automatisierung und DevOps

Automatisierung ist heute kaum mehr wegzudenken und geniesst einen immer höheren Stellenwert – unabhängig davon, ob man sich in einem agilen oder eher traditionell orientierten Umfeld bewegt.

In der agilen Welt setzen viele Software-Hersteller nicht nur auf die Automatisierung von Regressionstests, sondern auch auf die Integration der Tests in die Continuous Integration (CI). Diese beinhaltet dann Testfälle auf der GUI-, Komponenten- und/oder Schnittstellen-Ebene.


Durch diesen Umstand hält die Testautomatisierung auch im DevOps Einzug, wo der Betrieb (Ops) vor einem Wandel stehen. Dieser ist nicht mehr nur für den Aufbau und die Pflege der (Test-) Infrastruktur zuständig, dem klassischen System Engineering Team, sondern auch für den Aufbau, die Erweiterung und Integration der automatisierten Tests, und somit für das „Continuous Testing“.

Continuous Testing

Automatisierte Tests, die in der CI integriert sind, geben zeitnah Auskunft über den Qualitätszustand der Software. Die Tests, sowohl auf GUI-Ebene als auch auf Komponenten- und/oder Schnittstellen-Ebene, laufen nicht nur automatisch (z. B. nachts), sondern sind in einem komplett automatisierten Build-Prozess eingebettet. Allfällige unerwünschte Nebeneffekte nach einer Softwareanpassung werden unmittelbar nach der Änderung sichtbar. Täglich erhalten die Entwickler und weitere beteiligte Mitarbeiter (Tester, Business-Analysten, Requirements-Engineers, Manager) den Qualitätszustand der letzten Änderungen, was sich direkt auf die Time-To-Market auswirkt. Somit können in kürzeren Intervallen stabilere Releases freigegeben oder ausgeliefert werden.

Automatisierungskosten

Ein in der Praxis verbreitetes Phänomen ist die Ansicht, dass Testautomatisierung so nebenbei eingeführt werden kann, ohne dass man sich über deren Nutzen und die tatsächlichen Kosten Gedanken macht. So manches Testautomatisierungsprojekt, das so nebenbei eingeführt wurde, ist zum Scheitern verurteilt, da zu spät erkannt wurde, was alles für die Testautomatisierung benötigt wird. Oftmals fehlt auch die notwendige Unterstützung seitens Management, weil es sich als schwierig erweist einen direkten Return of Investment (ROI) zu ermitteln. Durch die mangelnde Unterstützung, ist man auch eher nicht bereit anfallende Pflege- und Wartungskosten zu tragen. Dies führt in der Regel zu einem schleichenden Tod der bestehenden automatisierten Testskripte.

Um die Entscheidung, ob eine Testautomatisierung eingeführt werden soll oder nicht zu erleichtern, haben wir den Testautomatisierungs-Rechner entwickelt, in welchem die jahrelange Erfahrung der Test Engineers eingeflossen ist. Mit Hilfe dieses Tools ist man in der Lage, die Kosten und den ROI (Return of Investment) abzuschätzen. Der Rechner zeigt vor allem die Ersparnisse gegenüber den Kosten manueller Tests auf. Dies soll als Entscheidungsgrundlage dienen, in der Frage, ob es sich in Ihrem Fall lohnt, Tests zu automatisieren. Nicht immer liegt die Lösung bei der Anschaffung eines Test-Automaten. Wenn beispielsweise nur wenige Releases pro Jahr ausgeliefert werden, kann die manuelle Ausführung von Tests günstiger sein. Für die Berechnung wurden diverse Faktoren wie die einfache bis hohe Komplexität der Testfälle und die darauffolgende Pflege berücksichtigt, sowie ob es sich um GUI oder Schnittstellen-Tests handelt.
Gewisse Faktoren wurden absichtlich nicht berücksichtigt. So werden die Kosten der Tool-Evaluation, die einmaligen und wiederkehrenden jährlichen Lizenzkosten sowie die Kosten für die Tool-Ausbildung der Mitarbeitenden nicht berücksichtigt. Diese variieren sehr stark und sind vom gewählten Automatisierungstool abhängig.

Testpyramide

Leider wird bei der Testautomatisierung oft zu viel Gewicht auf das GUI gelegt. Um eine ausgewogene Testautomatisierung zu ermöglichen, ist es aber wichtig, die verschiedenen Automatisierungsebenen zu berücksichtigen. Die Test- oder Automatisierungspyramide gibt dazu eine klare visuelle Übersicht.

Testpyramid-Testautomatisierung

Für eine valide Automatisierungsstrategie müssen alle Ebenen bezüglich Automatisierung berücksichtigt werden, wobei der grösste Teil der Automatisierung auf den untersten Ebenen stattfinden soll. Auf der GUI-Ebene hingegen soll so wenig wie möglich automatisiert werden. Bei GUI-Änderungen, besteht die Gefahr, dass der Wartungsaufwand der automatisierten Testskripts sehr hoch ist. Nebst dem Wartungsaufwand sind die Tests auf der GUI-Ebene auch sehr zeitintensiv. Dennoch sollte auch auf dieser Ebene ein gewisser Anteil der Testfälle automatisiert werden:

  • Auf dieser Ebene ist es möglich E2E Abläufe aus Kundensicht zu testen.
  • Auf diese Ebene ist die Kundensicht und damit die Business-Relevanz sehr hoch, was dazu beiträgt, dass gewisse Testfälle, die nicht auf den unteren Ebenen automatisiert werden können, auf diese Ebene automatisiert werden müssen.

Tooleinsatz

Der stetige Technologiewandel hat in den letzten 20 Jahren dazu geführt, dass die Anzahl der Testtool-Anbieter enorm gewachsen ist, und zwar nicht nur von kommerziellen Anbietern, sondern auch im Open-Source-Bereich. Obwohl letztere kostenlos verwendet werden dürfen, sollte der Aufwand für die Integration in eine komplexe bereits bestehende IT-Infrastruktur nicht unterschätzt werden.

Diese Umstände haben die Evaluation der geeigneten Tools in einem Unternehmen eher schwieriger als einfacher gemacht.

Unabhängig von der Wahl des Testtools ist es ratsam, zusätzlich in die Entwicklung eines Test-Frameworks zu investieren. Viele Toolhersteller betonen in ihrem Leistungskatalog immer noch gerne, wie einfach man Skripte aufzeichnen und abspielen kann. Skripte, die ausschliesslich mittels Capture/Replay entstehen, sind jedoch fragil und kurzlebig. Ohne stabiles Framework können kleinste Änderungen in der zu testenden Software dazu führen, dass viele redundante Korrekturen in den Testskripten nötig werden. Durch die Implementierung einer eigenen einfachen Fachsprache, anhand von Schlüsselwörtern (Key Word Driven Automatisierung) ist man der Lage die technischen Details des Roboters zu verbergen. Dies erlaubt es auch weniger technisch versierten Testern ohne die benötigten Programmierkenntnisse, Testskripte zu entwickeln.

Manchmal ist auch ein Umdenken bei den Software-Entwicklern notwendig, wenn es um die Testbarkeit von einigen Funktionen geht. Sei es die Bereitstellung von zusätzlichen Funktionen (z.B. Schnittstellen), die eine effizientere Überprüfung ermöglichen oder auch Investitionen in die vereinfachte Objekterkennung.

Als letzter Punkt zu erwähnen wäre, das Automatisierungstools oftmals Mühe haben mit der Erkennung von GUI-Objekten von Drittherstellern. Wer den Einsatz solcher Komponenten plant, sollte sich vorab mit der Testautomatisierungsabteilung absprechen. Tut man dies nicht, läuft man Gefahr, dass sich diese Komponenten später nicht oder nur mit erheblichem Mehraufwand automatisieren lassen.

Software Test-Automatisierung?

Testautomatisierung trägt dazu bei, dass die Qualität des Software-Tests und damit auch die Software-Qualität selbst spürbar gesteigert werden kann. Dadurch, dass die Testresultate schnell zur Verfügung stehen, werden kürzere Release Zyklen möglich. Aber, Automatisierung bekommt man nicht umsonst. Man muss nicht nur in ein Tool, sondern auch in eine effiziente und effektive Automatisierungsumgebung investieren.
Ein erster Schritt zur Einschätzung der Kosten, kann mit dem von SwissQ entwickelten Testautomatisierungs-Rechner
gemacht werden.

0 Gedanken zu „Wieviel darf Software Testautomatisierung kosten?“


Schreibe einen Kommentar