Wege zum agilen Testmanagement
Schlauer testen
von Thomas Hafen - 27.10.2021
Menschliche Tester stehen vor einer ganzen Reihe von Herausforderungen. Sie müssen die richtigen Testfälle finden und priorisieren, Muster in großen Datenmengen ausfindig machen, Fehlerquellen identifizieren und mögliche Probleme vorhersagen. Künstliche Intelligenz kann dabei in allen Bereichen helfen. „KI wird das Software-Testen enorm unterstützen“, ist sich Ramiro Millan von Progress sicher. Künstliche Intelligenz sei in vielen Fällen schneller und genauer als menschliche Experten: „Es wird deshalb zu einer engen Zusammenarbeit und guten Partnerschaft zwischen Mensch und Maschine kommen, und das wird unweigerlich die Art und Weise fundamental verändern, wie wir Software-Tests durchführen.“
Machine Learning lässt sich beispielsweise bei der statischen Code-Analyse einsetzen, um Anomalien zu identifizieren, die bei der herkömmlichen Analyse unentdeckt blieben. „Diese Technik, die besonders nützlich ist, um Anomalien in der API-Nutzung zu finden, kann insbesondere für beliebte Betriebssystemschnittstellen oder Open-Source-Bibliotheken eingesetzt werden“, sagt Verifysoft-Geschäftsführer Lambertz. „Die Erfahrung zeigt, dass ein erheblicher Anteil der über die KI gefundenen Anomalien echten Defekten entspricht.“
KI-basierte Testautomatisierung macht es laut Nick Mears von Micro Focus überflüssig, für jede zu testende Plattform eigene Skripte zu erstellen. Der Anbieter kombiniert beispielsweise Machine Learning, Natural Language Processing, Computer Vision und neuronale Netze, um unabhängig von Plattformen, Geräten oder Browsern testen zu können. „Grundsätzlich heißt das, dass die KI genauso testen würde wie ein Mensch, nämlich visuell, ohne sich auf den komplexen Skriptcode zu konzentrieren.“
Das österreichische Start-up Symflower setzt auf Künstliche Intelligenz, um die Erstellung der Unit-Tests zu automatisieren. Dem Anbieter zufolge lassen sich auf diese Weise Testfälle im Vergleich zum manuellen Schreiben um mehrere Größenordnungen schneller generieren. Symflower nutzt dazu „Symbolic Execution“, eine KI-Methode, bei der Gleichungssysteme statt konkreter Werte für die Testfälle eingesetzt werden. „Das erlaubt es uns, alle Ausführungsmöglichkeiten eines Programms zu betrachten und Fehlerquellen flächendeckend zu identifizieren“, erklärt Evelyn Haslinger, Managing Director/Operations bei der Symflower GmbH.
Derzeit kommen die Kunden hauptsächlich aus dem Banken- und Versicherungswesen sowie aus der Telekommunikation. „Wir unterstützen aktuell die Programmiersprachen Java und Go“, sagt Haslinger, „die typischerweise im Businesslogikbereich beziehungsweise bei Server-Infrastrukturanwendungen im Einsatz sind.“
Fazit
Software-Testing ist essenziell, um die Qualität und Sicherheit von Applikationen zu optimieren. Ob man dabei einem eher risikobasierten Ansatz folgt, wie Roman Zednik von Tricentis empfiehlt, oder auf möglichst breites Testen durch Fuzzing-Methoden und KI setzt, hängt im Wesentlichen von der eigenen Risikobereitschaft ab, aber auch von den Folgen, die Software-Fehler nach sich ziehen können. Im Automobilsektor oder dem medizinischen Bereich wird man daher andere Maßstäbe anlegen als bei der Entwicklung einer Spiele-App.
Vor allem aber müssen Unternehmen die Vorstellung überwinden, Software-Testing sei in erster Linie ein Kostenfaktor und bremse die Entwicklung aus. „Software-Tests tragen – wenn sie richtig eingesetzt werden – nicht nur zur Qualitätssteigerung, sondern ganz erheblich auch zur Kostensenkung bei“, sagt Verifysoft-Geschäftsführer Klaus Lambertz.