Tipps und Tricks für Ihre Automatisierungsprozesse 6 Best Practices zur Testautomatisierung
Anbieter zum Thema
Die Automatisierung von Tests – so sie denn korrekt praktiziert wird – birgt ein enormes Einsparpotenzial, das initial hohe Investitionskosten auf längere Sicht um ein Mehrfaches amortisiert. In diesem Beitrag werden verschiedene Aspekte der Testautomatisierung vorgestellt und veranschaulicht.

Tests sind im Allgemeinen zeitaufwändig und kostspielig – aber auch notwendig, um den Kunden ein möglichst fehlerfreies Produkt liefern zu können. Folgende Best Practices zur Testautomatisierung können Ihnen dabei helfen, die Kosten in einem überschaubaren Rahmen zu halten und eine hohe Softwarequalität zu gewährleisten.
1. Auf den Testfall kommt es an
Es ist wichtig darauf zu achten, für welche Testfälle man eine Automatisierung nutzen möchte. Tests die keinen zeitlichen Aufwand fordern, oder schnell manuell bewältigt werden können, fallen augenscheinlich nicht unter diese Kategorie. Aber jeder Entwickler kennt das Problem, dass dies nur Wunschdenken ist.
Häufig ist es der Fall, dass vor allem Tests, die auf verschiedener Hardware laufen müssen oder große Datenmengen konsumieren, auch gleichzeitig sehr zeitaufwändig und ebenso schwer manuell umzusetzen sind. In diesem Fall lohnt sich eine Automatisierung, denn dadurch wird nicht nur Zeit eingespart, sondern die auch Konsistenz der Testergebnisse deutlich verbessert.
2. Nicht jeder kann automatisieren
Testautomatisierung kann nicht auf Anhieb von jedem durchgeführt werden. Es benötigt ein gewisses Know-how, um spezielle Tools optimal einzusetzen. Sollten Sie jemanden in Ihrem Team haben, der über die nötige Expertise verfügt, ist das ein klarer Vorteil. Allerdings werden solche Aufträge häufig von Spezialisten außerhalb der Firma bearbeitet.
3. Das Produkt verstehen
Testautomatisierung ist nicht in allen Szenarien sinnvoll. Gerade bei stetig zunehmender Funktionalität und Komplexität eines Softwareprodukts kann der Einsatz von Testautomation zwar erheblichen Vorteil bringen, jedoch auch erhebliche Aufwände bei geringem Nutzen verursachen. Je besser man das Produkt und seinen Entwicklungszyklus versteht, desto besser lässt sich ermitteln wann und wie einzelne Bereiche davon automatisiert getestet werden sollten.
Funktionalität, die vor allem repetitive Tests durchläuft (insbesondere inkrementeller Regressionanteil bei agiler Entwicklung), ist optimal geeignet und sogar unabdingbar. Es gilt ebenfalls, dass man Features automatisiert, die bereits fest definiert sind und höchstwahrscheinlich keine großen Änderungen mehr durchlaufen müssen.
Grundsätzlich ist es wichtig, eine konkrete Vorstellung zu haben, was getestet werden soll und mit welchem Ziel getestet werden soll.
4. Klasse statt Masse
Viele Testfälle bedeuten nicht automatisch eine hohe Qualität. Das gilt gleichermaßen für ein Softwareprodukt wie auch für eine Testautomatisierung. Eine gute Grundlage ist daher ein strukturierter Plan, der nicht nur Zeitpunkt und Aspekt des jeweiligen Tests berücksichtigt, sondern auch Vorbedingungen hinsichtlich Konfiguration oder Testdaten.
Im Normalfall beginnt man als Einsteiger mit dem Bereich, der am einfachsten zu automatisieren ist. Fortgeschrittene Automation hingegen beginnt häufig mit dem Bereich des höchsten technischen Risikos, des höchsten Business Value oder des häufigsten Testbedarfs bzw. größtem manuellen Aufwand.
Wie auch immer der Ansatz gewählt wird: Man startet klein und schnell und baut kontinuierlich aus.
5. Strukturiert – organisiert – stabilisiert
Testfälle sollten so strukturiert sein, dass sie voneinander unabhängig und idealerweise sogar parallelisiert ablaufen können. Für das Gruppieren von Tests können funktionale, Code-logistische oder sequenzbedingte Faktoren geeignete Ansatzpunkte sein, aber eine maximale Granularität und Modularität der Tests vereinfacht die Analyse im Fehlerfall und ermöglicht gleichzeitig eine höhere Wiederverwendbarkeit. Zu guter Letzt sind auch die Robustheit, das Verhalten im Fehlerfall und die Eindeutigkeit der Ergebnisse für eine Testautomatisierung von primärer Bedeutung.
6. Auswahl eines Testwerkzeugs
Sie sollten eine Automationslösung nutzen, die von allen Beteiligten nutzbar ist und deren Ergebnisse vor allem jeder nachvollziehen kann. Sie sollte Flexibilität beim automatisierten Testen unterstützen und ohne viel Aufwand konsistente Aussagen zur Qualität der getesteten Software liefern können.
Ebenso wichtig ist dabei, dass die Lösung eine technologische Flexibilität hinsichtlich der zum verskripten nutzbaren Programmiersprachen oder der unterstützten Betriebssysteme bzw. Plattformen gewährleistet.
Fazit
Viele erfahrene Spezialisten führen vor allem die große Zeitersparnis als Vorteil der Testautomatisierung an. Letztendlich ist es jedoch die Steigerung der Qualität, die den wirklichen Unterschied ausmacht. Die Zeiteinsparung ermöglicht nämlich bislang ungenutztes Potenzial: Das wertvolle Wissen und die Erfahrung der manuellen Tester kann in explorative Tests oder ganzheitliche Qualitätssicherung einfließen anstatt in repetitiven manuellen Tätigkeiten.
Zusammenfassend kann man also sagen, dass die Testautomatisierung in der heutigen Zeit, in der Time-To-Market mehr denn je ausschlaggebend für den Erfolg eines Produktes ist und Entwickler mittels moderner Technologien und Methodiken immer schneller neue Produkte auf den Markt bringen, unverzichtbar ist.
* Thomas Klein ist Senior IT Consultant bei der redbots GmbH. Er verfügt über 15 Jahren Erfahrung in klassischen und agilen Projekten und berät Kunden aus unterschiedlichen Branchen über den effektiven und effizienten Einsatz von Software-Entwicklungsmethoden und Softwaretests.
(ID:46897874)