Getronics Redaktionsteam
In diesem Artikel:
Da digitale Unternehmen der Qualität von Software und der Einhaltung von Veröffentlichungsfristen immer mehr Bedeutung beimessen, gewinnen Technologien zur Testautomatisierung in den letzten Phasen des Testens und der Qualitätssicherung (QA) an Bedeutung.
Die zehnte Ausgabe (2018-2019) des World Quality Report, der von Capgemini und Sogeti in Zusammenarbeit mit Micro Focus veröffentlicht wurde, zeigt, dass Automatisierung ein wesentlicher Bestandteil von agilen und DevOps-Praktiken ist und als effektivstes Mittel zur Verbesserung der Benutzerleistung dient.
Der Bericht, der auf der Grundlage von Interviews mit rund 1.700 IT-Führungskräften in 32 Ländern (mit 50 Befragten in Italien) erstellt wurde, unterstreicht die Notwendigkeit, die Nutzerzufriedenheit als oberstes Ziel bei Tests und Qualitätssicherung zu gewährleisten. Dieses Ziel ist für 42 % der Befragten in diesem Jahr von zentraler Bedeutung (gegenüber 27 % im Jahr 2017), ebenso wie die Notwendigkeit, Fehler vor der Inbetriebnahme zu erkennen (42 %, gegenüber 34 % im Jahr 2017). Für 41 % der Befragten (im Vergleich zu 29 % im Jahr 2017) tragen QS- und Testkapazitäten zum Geschäftswachstum und zum Unternehmensumsatz bei.
Qualitätskontrolle und Testautomatisierung revolutionieren den Entwicklungslebenszyklus. Nach jahrelangem Einsatz in spezifischen, getrennten Umgebungen haben sich diese Praktiken ausgeweitet und gestalten den Entwicklungslebenszyklus neu.
Laut den Autoren drehen sich die wichtigsten Trends heute um modellbasiertes Testen (für automatische Skripterstellung und automatisiertes Testen; erwartete Verfügbarkeit im nächsten Jahr für 61 % der Befragten), robotische Prozessautomatisierung (RPA 54 %) und kognitive Automatisierung (49 %). Das automatisierte Testen von APIs ist ein aufkommender Trend für die nächsten zwei Jahre. Der Bericht zeigt, dass 18 % der funktionalen Tests bereits mit Skripting-Tools durchgeführt werden, während 16 % Testautomatisierungstools verwenden. Automatisierung wird bei 16 % der Leistungstests und 16 % der Sicherheitstests eingesetzt. Darüber hinaus setzen 15 % der Befragten eine End-to-End-Testautomatisierung in allen Szenarien ein.
Ist die Automatisierung von Testszenarien eine geeignete Lösung?
Testszenarien können automatisiert werden, wenn kritische Funktionen wiederholte Tests erforderlich machen oder zu komplex sind, um sie manuell durchzuführen. So eignen sich beispielsweise Tests, die große Datenmengen oder komplizierte Dateneingabeverfahren beinhalten, für die Automatisierung.
Die Vorteile von Testautomatisierungswerkzeugen gegenüber manuellen Tests
Heutzutage ist die Testautomatisierung eine wesentliche Strategie, insbesondere bei der Analyse komplexer Produkte oder Anwendungen mit Tausenden oder Millionen von Codezeilen, bei denen langwierige, sich wiederholende und mühsame Testroutinen zum Einsatz kommen. Mit Hilfe von Testautomatisierungswerkzeugen können Tester nicht nur ihre Arbeit beschleunigen, sondern auch potenzielle Fehler reduzieren oder eliminieren. Automatisierte Tests können so programmiert werden, dass sie ohne Aufsicht ablaufen und den Vergleich der Ergebnisse mit den erwarteten Resultaten erleichtern. Dies bedeutet jedoch nicht, dass es an Kontrolle mangelt, da Testautomatisierungswerkzeuge Berichtsfunktionen integrieren können, die die Aktivität jedes Testskripts aufzeichnen und den Fortschritt und Status zu jedem beliebigen Zeitpunkt überwachen.
Mit der Testautomatisierung können Sie Zeit und Ressourcen sparen, indem Sie die Testgenauigkeit und -abdeckung verbessern und gleichzeitig Code-Bugs und Fehler effektiver und effizienter aufspüren. Außerdem können Qualitätssicherungsteams die Wiederverwendbarkeit und Akzeptanz von Testautomatisierungsskripten erhöhen, indem sie bei jeder neuen Codeprüfung eine konsistente Testkonfiguration und -prozedur sicherstellen. Darüber hinaus ermöglicht die Testautomatisierung die Automatisierung von Funktionstests, Leistungstests und Belastungstests in großem Umfang. Sie kann beispielsweise zur Durchführung von Prüfungen in mehrsprachigen Infrastrukturen und an verteilten Standorten in verschiedenen geografischen Gebieten eingesetzt werden.
Im Rahmen des DevOps-Modells kommt der Testautomatisierung eine noch größere Bedeutung zu
Die Bedeutung von Testautomatisierungswerkzeugen nimmt im Kontext des DevOps-Modells weiter zu, das im Gegensatz zu traditionellen, auf dem klassischen "Kaskaden"-Paradigma basierenden Methoden darauf abzielt, die Agilität und Automatisierung im Softwareentwicklungs- und -verteilungszyklus zu verbessern. Agile und DevOps-Entwicklungsmethoden sind heute in IT-Abteilungen weit verbreitet, um Software-Releases zu beschleunigen, Kosten zu senken und die Codequalität und -zuverlässigkeit zu erhalten. Durch CI/CD-Verfahren (Continuous Integration, Continuous Delivery/Continuous Deployment) fördert DevOps eine vollständig integrierte und automatisierte Pipeline für die Erstellung, Verteilung und Implementierung von Code.
Innerhalb dieser hoch automatisierten Pipeline sollte die Testphase den Gesamtprozess jedoch nicht behindern. Daher umfasst das DevOps-Modell kontinuierliche Tests, bei denen der Code in jeder Phase des kontinuierlichen Bereitstellungsprozesses durch einen rekursiven kontinuierlichen Feedback-Mechanismus getestet wird. Wenn beispielsweise Code geändert wird, wird er sofort durch eine Reihe von automatisierten Unit-Tests überprüft. Schlägt der Test fehl, wird der Code verworfen; ist er erfolgreich, wird er in den nachfolgenden Bereitstellungsphasen weiterverwendet, usw. Ergänzt wird das kontinuierliche Testen durch das "shift-left testing", eine Strategie, die darauf abzielt, Softwaretests frühzeitig im Entwicklungszyklus einzuführen.
Ein zentraler Bestandteil der kontinuierlichen Prüfung
Kontinuierliches Testen als Testmethodik kann nicht allein durch die Implementierung neuer Technologien oder Testwerkzeuge erreicht werden; es erfordert einen kulturellen Wandel in der Denkweise der Tester und eine Umgestaltung der Entwicklungsprozesse. Kontinuierliches Testen kann jedoch nicht ohne geeignete Testautomatisierungswerkzeuge realisiert werden.
Im Zusammenhang mit kontinuierlichen Tests werden automatisierte Tests eingesetzt, um mehrere Vorgänge automatisch auszuführen. Dies umfasst beispielsweise die Überprüfung einzelner Komponenten und Segmente des Programmcodes (Unit-Tests), Funktionstests, Regressionstests (mit Schwerpunkt auf der Validierung der Softwarefunktionalität nach der Hinzufügung neuer Merkmale und Funktionen) und Integrationstests (Bewertung des Systemverhaltens als Ganzes und der Genauigkeit der Interaktionen zwischen Programmmodulen, APIs, Software von Drittanbietern und anderen Komponenten der Anwendungsarchitektur).