Das Software-Testing läuft in den meisten Unternehmen manuell ab. Automatisiertes Software-Testing bietet Vorteile, ist aber komplex. Welche Hindernisse dabei zu überwinden sind, erklärt Viktoria Praschl, VP Sales Central Europe bei Tricentis, einem Spezialisten für Continuous Testing.
Beim Entwickeln von Software setzen die meisten Unternehmen heute auf agile Methoden mit täglichen Builds und auf DevOps, also die Kombination von Entwicklung und Betrieb. Das Testing läuft zum Großteil noch manuell ab und bremst so die schnelle Software-Bereitstellung wieder. Herkömmliche Testzyklen dauern oft Wochen und kommen den immer kürzeren Release-Frequenzen, welche die Digitalisierung mit sich bringt, nicht mehr hinterher. Entwicklungs- und DevOps-Teams brauchen kontinuierliches Feedback während des gesamten Release-Zyklus, um die Qualität ihrer Arbeit sicherzustellen. Dies mit manuellen Tests zu bewerkstelligen, ist schlichtweg unmöglich – selbst wenn man eine ganze Armee an Testern beschäftigen würde. Prüfen Unternehmen allerdings nicht kontinuierlich, wie sich die jüngsten Code-Änderungen auf wichtige End-to-End-Transaktionen auswirken, geht das schnell zu Lasten der Nutzererfahrung. Die Folge sind verärgerte Kunden und ein Reputationsverlust. Um das Dilemma zu lösen, müssen auch Testprozesse agil werden und sich eng in die Continuous Delivery Pipeline integrieren. Continuous Testing nennt sich dieses Konzept.
85 Prozent aller Test laufen noch manuell
Laut Forrester Research ist ein Automatisierungsgrad von über 80 Prozent erforderlich, um Continuous Testing zu ermöglichen. Davon sind wir noch weit entfernt. Wie der aktuelle World Quality Report zeigt, haben Unternehmen im Durchschnitt erst 15 Prozent ihrer Tests automatisiert. Bisher findet Testautomatisierung vor allem im Bereich der Unit Tests statt, so eine Tricentis-Studie. Da sie eine Funktion oder Klasse isoliert prüfen, lassen sie sich relativ einfach umsetzen. Wesentlich komplexer sind End-to-End Functional Tests, die Ende-zu-Ende Geschäftstransaktionen über viele verschiedene Komponenten und Applikationen hinweg aus der Nutzerperspektive betrachten. Solche Tests zu automatisieren ist schwer. Unternehmen stehen dabei vor fünf großen Herausforderungen.
Anzeige | Kostenloses Webinar der Trovarit-Academy
1. Zeit und Ressourcen
Häufig unterschätzen Teams den Aufwand, den eine nachhaltige Testautomatisierung mit sich bringt. Zunächst muss man zum Beispiel entscheiden, was überhaupt getestet werden soll und wie. Auch die Einrichtung eines Test-Frameworks, das Wiederverwertbarkeit und datengesteuertes Testen unterstützt, ist wichtig. Während sich die Applikation weiterentwickelt, muss das Test-Framework kontinuierlich synchronisiert und aktualisiert werden. Das ist umso aufwändiger, je größer die zu testende Suite wird. Dazu kommt die Herausforderung, Fehlermeldungen zu analysieren und False Positives herauszufiltern. All diese Aufgaben kosten Zeit und Ressourcen.
2. Komplexität
Geschäftskritische Transaktionen durchlaufen meist viele verschiedene Technologien, etwa Mainframes, SAP, Mobilgeräte, und sie nutzen dabei viele Programmschnittstellen. Die Testautomatisierung muss in der Lage sein, all diese Technologien zu verbinden. Unternehmen müssen dafür sorgen, dass sie korrekte, sichere und Compliance-konforme Testdaten zur Verfügung haben, um realistische Tests aufzusetzen und komplexe Abfolgen zu durchlaufen – und zwar jedes Mal, wenn der Test ausgeführt wird. Außerdem brauchen sie zuverlässigen, kontinuierlichen und kostengünstigen Zugang zu allen Schnittstellen und Anwendungen von Drittanbietern.
3. Vertrauen
Tests bilden die Basis für Go/No-Go-Entscheidungen. Vertrauen in die Ergebnisse ist daher sehr wichtig. Ein großes Problem stellen False Positives dar, also Fehlalarme. Tester müssen diese untersuchen, erkennen und herausfiltern. Je größer die Test-Suite, desto aufwändiger wird dies, denn umso höher ist die Zahl der False Positives. Sie zu ignorieren wäre jedoch fatal, denn dann nehmen Entwickler auch echte Fehlermeldungen nicht mehr ernst. Am Ende betrachten sie jedes Problem, das beim Testen aufgedeckt wird, als falschen Alarm.
4. Ausrichtung auf die Stakeholder
Bei Continuous Testing geht es darum, den richtigen Stakeholdern zum richtigen Zeitpunkt das richtige Feedback zu geben. Das kann für jeden etwas anderes bedeuten und lässt sich nicht in Metriken wie der Anzahl der Tests messen. Während eines Sprints ist es für Entwickler zum Beispiel wichtig zu erfahren, wenn eine kleine Änderung erhebliche Auswirkung auf die Nutzererfahrung hat. Ein Product Owner möchte vor der Veröffentlichung einer Anwendung hingegen wissen, wie viel Prozent der Risiken getestet sind.
5. Unternehmensweite Umsetzung
Meistens beginnen Unternehmen Testautomatisierungs-Projekte mit ihren leistungsstärksten Teams. Diese begeistern sich für Innovationen und bewältigen daher neue Herausforderungen vergleichsweise einfach. Das ist zwar ein guter Start, reicht aber nicht aus. Nur wenn Unternehmen flächendeckend Testautomatisierung einführen, erzielen sie die Geschwindigkeit, Genauigkeit und Transparenz, die sie für ihre Entwicklungsprozesse benötigen.
In der Praxis haben sich vier Strategien bewährt, um die genannten Herausforderungen zu meistern: die Vereinfachung der Automatisierung über den gesamten Technologie Stack hinweg, die Verbesserung der Test-Wartung, das Testing der Programmschnittstellen und die Wahl der passenden Tools. Eine zentrale Rolle spielt dabei eine Continuous-Testing-Plattform auf Basis Künstlicher Intelligenz, die es ermöglicht, Softwaretests durchgängig automatisiert, vollständig ohne Code und intelligent gesteuert durchzuführen. Testautomatisierung ist ein entscheidender Faktor für eine zukunftsfähige Software-Entwicklung und -Bereitstellung. Von manuellen Prozessen sollten sich Unternehmen nicht länger ausbremsen lassen. jf
Über die Autorin
Viktoria Praschl ist VP Sales Central Europe bei Tricentis, einem Anbieter von Continuous-Testing-Lösungen.