Um neue Anwendungen und Releases schneller bereitzustellen, müssen Unternehmen Continuous Testing in ihre DevOps-Prozesse integrieren. Doch die Automatisierung von End-to-End Functional Tests ist komplex. Welche Hindernisse es auf dem Weg dorthin zu überwinden gilt, erklärt Viktoria Praschl, VP Sales Central Europe bei Tricentis.
Die meisten Unternehmen setzen heute DevOps-Prozesse und agile Entwicklungsmethoden mit in der Regel mindestens täglichen Builds ein. Das Testing läuft dagegen zum Großteil noch manuell ab und bremst dadurch eine schnelle Software-Bereitstellung wieder aus. Denn herkömmliche Testzyklen dauern in der Regel Wochen und kommen den immer kürzeren Release-Frequenzen, die die Digitalisierung mit sich bringt, nicht mehr hinterher. Doch 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. Wenn Unternehmen jedoch nicht kontinuierlich prüfen, wie sich die neuesten Code-Änderungen auf wichtige End-to-End-Transaktionen auswirken, geht das zu Lasten der Nutzererfahrung. Die Folge sind verärgerte Kunden und Reputationsverlust. Um das Dilemma zu lösen, müssen auch Testprozesse agil werden und sich nahtlos in die Continuous Delivery Pipeline integrieren. Eine Entwicklung hin zu Continuous Testing wird unverzichtbar.
Es gibt noch viel zu tun
Laut Forrester Research ist ein Testautomatisierungsgrad von über 80 Prozent erforderlich, um Continuous Testing zu ermöglichen. Doch 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. Hier kommen die fünf größten Herausforderungen, vor denen Unternehmen dabei stehen:
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 Test 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 in der Regel viele verschiedene Technologien, zum Beispiel Mobilgeräte, APIs, SAP und Mainframes. Die Testautomatisierung muss daher 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 abhängigen Systemen, die für die Tests erforderlich sind, einschließlich APIs und Drittanbieter-Anwendungen.
3. Vertrauen
Testergebnisse bilden die Basis für „Go/No-Go“-Entscheidungen. Daher ist es wichtig, dass man ihnen vertrauen kann. Ein großes Problem stellen hier False Positives dar. Tester müssen solche Fehlalarme 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 am ehesten für Innovationen und tun sich leichter, neue Herausforderungen zu bewältigen. Das ist ein guter Start, muss aber weiter gehen. Nur wenn Unternehmen flächendeckend Testautomatisierung einführen, erzielen sie die Geschwindigkeit, Genauigkeit und Transparenz, die sie für ihre Entwicklungsprozesse benötigen.
Wie kann man die Hürden überwinden?
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, API-Testing und die Wahl der richtigen Tools. Eine zentrale Rolle spielt dabei eine KI-basierte Continuous-Testing-Plattform, die es ermöglicht, Softwaretests durchgängig automatisiert, vollständig codelos und intelligent gesteuert durchzuführen. Unternehmen sollten sich nicht länger von manuellen Prozessen ausbremsen lassen. Denn Testautomatisierung ist ein entscheidender Faktor für eine zukunftsfähige Software-Entwicklung und -Bereitstellung.
www.tricentis.com