Um den Grad der Automatisierung zu erhöhen, benötigen Softwaretests intelligentere Tools, die mehr sind als nur ein Framework zum Erstellen und Ausführen von Tests, sondern die Tests erstellen und pflegen. Heute spielen KI und maschinelles Lernen bei Softwaretests eine wichtige Rolle: Sie steigern den Nutzen der Tools für die Entwickler, indem sie die manuellen und mühsamen Schritte, die sie normalerweise für das Testen durchführen müssen, weiter reduzieren. Beispielsweise erlaubt der Einsatz von KI in den Unit-Testing-Produkten von Parasoft das automatische Erstellen von Unit-Tests. Dabei werden nicht einfach nur zufällige Tests generiert, sondern solche, die auf bestimmte Ziele ausgerichtet sind, wie z. B. eine bessere Codeabdeckung, das Testen fehlender Funktionen oder das Verstärken von Tests in risikoreichen Codeabschnitten.
Bei funktionalen API-Tests werden mithilfe von KI wiederverwendbare Testszenarien aus dem aufgezeichneten API-Verkehr zwischen der zu testenden Anwendung und ihren Abhängigkeiten zusammengestellt. Diese Szenarien können wiederverwendet, feinabgestimmt und dupliziert werden, um eine komplette API-Testsuite zu erschaffen.
Bei UI-Tests setzt Parasoft auf KI, um wiedereinsetzbare Selenium-Tests zu kreieren und dann während der Laufzeit Selbstheilung auf die Tests anzuwenden, um Testfehler zu vermeiden. In diesem Fall hilft KI beim Erstellen von UI-Tests, die besser auf Änderungen an der Benutzeroberfläche reagieren können. Im Fall von Testfehlern schlägt die KI Möglichkeiten zur schnellen Behebung des Testfehlers vor.
DevOps ist mittlerweile ein recht ausgereiftes Konzept. Die kontinuierliche Integration scheint gut unterstützt und in die Entwicklungsprozesse integriert zu sein (Bild 2). Der Aspekt der kontinuierlichen Lieferung und Bereitstellung ist schwieriger und komplexer – in diesem Bereich haben die führenden Unternehmen der digitalen Transformation in Bezug auf die Prozessreife mehr als 60 % Vorsprung vor den Nachzüglern. Genau hier spielt die Testautomatisierung für Software eine Rolle.
Anwendungen sind Teil eines Systems von Abhängigkeiten, zu dem auch andere Dienste und Datenbanken gehören. Bei der Entwicklung eines Produkts in relativer Isolation kann es leicht passieren, dass die zur Sicherstellung der Qualität der Anwendung notwendigen externen Dienste und Daten ignoriert werden, bevor diese in eine Produktionsumgebung eingesetzt wird. Das macht es noch schwieriger, die Konformität und Sicherheit von Anwendungen und APIs in derart komplexen Umgebungen zu gewährleisten.
Der Schlüssel zur Verbesserung der Tests in der Vorproduktionsphase liegt im Einrichten einer Umgebung, die die Produktionsumgebung nachahmt, jedoch ohne die Komplexität und das Risiko, etwas zu zerstören. Durch die Virtualisierung von Diensten und Daten können DevOps-Teams die Kontrolle über ihre Testumgebungen übernehmen. Das ermöglicht häufiges und frühzeitiges Testen bei niedrigen Kosten. Das beinhaltet wichtige Teile des verteilten Systems, die nicht verfügbar sind, z. B. wenn abhängige Komponenten nicht erreichbar sind, die Skalierung von Schulungsumgebungen und das Erstellen von Einführungsszenarien für Partner.
Es ist kostengünstiger, virtuelle Dienste für Testzwecke zu nutzen anstatt Produktionsumgebungen. Bei API-Tests mit Endpunktsimulation besteht keine Gefahr von Datenverlusten, es kommen keine teuren Server zum Einsatz, die für den Betrieb des eigentlichen Programms erforderlich sind, und das Unternehmen kann auf übermäßige Lizenzgebühren verzichten. Dies führt zu schnellen, genauen und weniger schwerfälligen Testverfahren.
Die digitale Transformation verspricht große Wachstumssteigerungen. Zur Umsetzung streben Unternehmen nach Softwarequalität, wobei jene, die diese Entwicklung anführen, anders vorgehen als die Nachzügler. Software ist der Schlüssel für die digitale Transformation. Das macht die Weiterentwicklung der Softwareentwicklungspraktiken zur Steigerung der Produktivität bei gleichzeitiger Verbesserung der Qualität und Sicherheit zum hochgesteckten Ziel. Aber es ist möglich, dieses schwer fassbare Qualitätsziel mit Prozessreife zu erreichen. Dazu muss die Qualität von Anfang an Teil eines Produkts sein, und im Unternehmen muss ein kultureller Wandel stattfinden, der die traditionellen Trennungen zwischen Entwicklern und Testern aufbricht. Der bevorzugte Ansatz ist die Zusammenarbeit zwischen integrierten Teams von Spezialisten.
Die für die digitale Transformation Verantwortlichen wissen um die Bedeutung von Softwaretests und den Bedarf an Tools und Prozessen zur Verbesserung der Qualität. Mit einem zielgerichteten Ansatz zur Prozessreife über die Zeit und intelligenteren Tools, die eine bessere Entscheidungsfindung unterstützen, können sie ihr Ziel erreichen und die Softwarequalität verbessern.
Der Autor
Matt Klassen
ist bei Parasoft für Marketingstrategie, Kampagnen, Programme, Messaging und Öffentlichkeitsarbeit verantwortlich. Er verbrachte die ersten Jahre seiner Karriere mit Softwareentwicklung, bevor er für weitere sieben Jahre im technischen Vertrieb und im Application Lifecycle Management (ALM) bei Rational und IBM tätig war. Anschließend unterstützte er bei Borland im Produktmarketing den Aufbau des ALM-Geschäfts. Bevor er zu Parasoft wechselte, baute Klassen mehrere Produktmarketing-Teams bei Borland, PTC, Ping Identity und Cherwell auf.