Wann ist eine Testautomatisierung eine Hilfe, wann führt es zu unnötigen Overhead?

Genau diese Fragen werden wir in den folgenden Szenarien beantworten. 

Wie der Name es schon verrät: Testautomatisierungen werden in der Regel nicht manuell von Testern ausgeführt. Das hat zum einen den Vorteil, dass Ressourcen, Zeit und Geld eingespart und zum anderen Fehler durch manuelle Tätigkeiten, wie z.B. Tippfehler, von vornherein ausgeschlossen werden können. Verglichen mit manuellen Tests können so viele Tests in hoher Qualität und in kürzester Zeit durchgeführt werden.

Szenario 1 – Test-Driven-Development-Ansatz:

Ein klassisches Szenario, in dem sich die Testautomatisierung nicht nur anbietet sondern aufdrängt, ist ein Implementierungsprojekt mit Test-Driven-Development. Diese Entwicklungsmethode diktiert, dass die Tests bereits feststehen (und geschrieben) sein müssen, bevor mit der eigentlichen Implementierung begonnen wird. Erst danach wird die Entwicklung gestartet und nach jeder Iteration werden die vordefinierten Tests durchgeführt. Es kann hier insbesondere bei komplexen Problemstellungen zu vielen Iterationen kommen. Um die Testaufwände nicht explodieren zu lassen, ist ein Automatisierungsframework vom Vorteil.

Szenario 2 – Regressionstest:

Als Regressionstest bezeichnet man Testfälle, die durchgeführt werden müssen, wenn eine Änderung an der Software vorgenommen wurde. Sie stellen sicher, dass die bereits existierenden Funktionen nicht beschädigt wurden. Dies ist insbesondere wichtig, wenn Prozesse verwoben sind und/oder aufeinander aufbauen.

Eine Automatisierung ist hier dann sinnvoll, wenn die Grundfunktionalitäten der Software nicht mehr geändert werden, sodass die Regressionstestfälle nicht jedes Mal neu geschrieben werden müssen. Insbesondere vordefinierte fachliche Tests können den Fachbereich deutlich entlasten.

Wird eine Testautomatisierung erwogen, sollte die Anzahl der Regressionstests als auch deren Ausführhäufigkeit beachtet werden. Dabei lohnt es sich hier eine Kosten-Nutzen-Rechnung aufzustellen. Grundsätzlich gilt – je öfter ein Testfall ausgeführt werden muss, desto mehr Zeit wird durch eine Testautomatisierung erspart. Solange jedoch kein Grundriss der Software steht, macht eine Automatisierung weniger Sinn, da der Anpassungsaufwand bei den Testfällen zu hoch ausfällt.

Szenario 3 – Aufbau technischer Infrastruktur:

Zu Beginn eines Projekts stehen ggf. bereits technische Ressourcen zur Verfügung, obwohl noch keine Implementierung erfolgt ist. Das kann der Fall sein, wenn die Anforderungen noch nicht im ausreichenden Maße bekannt sind. In diesem Fall bietet es sich an, die freien Ressourcen für die Erstellung einer technischen Infrastruktur einzusetzen. Dazu gehört auch die Testautomatisierung. Aus unseren eigenen Erfahrungen kann eine einfache Testautomatisierung auf Unit-Test-Ebene schon in einem Monat geschrieben sein und die kommenden Testaufwände erheblich entlasten.

Neben dem Verfügbarkeitsaspekt ist es ebenfalls hilfreich, wenn die Systemstruktur eine klar definierte Eingangs- und Ausgangsschicht aufweist, die von einem Automatisierungsframework angesteuert werden kann.

Szenario 4 – komplexes System:

Liegt ein komplexes System vor, kann eine Testautomatisierung ungeeignet sein.

Ein Beispiel hierfür wäre ein System, in dem mit vielen, sich häufig ändernden Datenablagen gearbeitet wird. Somit lassen sich die Eingangs- und Ausgangsschichten nicht klar definieren und das Framework müsste ständig angepasst werden. Dies könnte zu einem Zeitverlust führen, da auch das Framework selbst bei Änderungen abgetestet werden muss.

Fazit

Wir empfehlen bei jedem Projektstart genau zu analysieren und zu definieren, welches der Szenarien bzw. welcher Mix zutrifft. Ist Ihnen ein solches Szenario oder ein solcher Mix bereits bekannt, wird die Testautomatisierung Sie in Zukunft deutlich entlasten! Sie ist aber kein Allheilmittel, das alle Testprobleme löst. Ebenso passt nicht jedes Testautomatisierungswerkzeug zu jeder Infrastruktur und jedem Projekt.

Die Experten von ADWEKO unterstützen Sie sowohl bei der Entscheidung, ob eine Automatisierung sinnvoll ist und ob Sie vollständig oder teilweise automatisieren sollten, als auch bei der Auswahl eines passenden Testautomatisierungsframeworks und dem Aufsetzen des Testautomatisierungsprojektes. Sprechen Sie uns gerne an!

Anja Rißland
Managing Consultant

0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht.