Software-Testautomatisierung auf dem nächsten Level

Die zunehmende Komplexität von Software und ihre Anwendbarkeit in einer Vielzahl von Branchen, z. B. der Automobilindustrie, erfordern verbesserte Qualitätssicherungstechniken.

Die Testautomatisierung ist eine Option, um die vorherrschenden Herausforderungen zu meistern, indem Testingenieur:innen mit schnellen, parallelen und sich wiederholenden Testausführungen unterstützt werden. Ein hoher Grad an Testautomatisierung ermöglicht eine Verlagerung von banalen (manuellen) Testaufgaben hin zu einer analytischeren Bewertung der zu testenden Software. Allerdings ist eine hohe Anfangsinvestition von Testressourcen erforderlich, um eine Testautomatisierung zu etablieren, was in den meisten Fällen eine Begrenzung der Zeitbeschränkungen darstellt, die für die Qualitätssicherung komplexer Softwaresysteme vorgesehen sind. Daher ist eine computergestützte Erstellung automatisierter Testfälle entscheidend, um den Nutzen der Testautomatisierung zu erhöhen.

manual tests 01

IAV hat eine Lösung entwickelt, die maschinelles Lernen für die Generierung automatisierter Testfälle nutzt. Sie basiert auf überwachtem Lernen zur Analyse von Testspezifikationen und vorhandenen Testimplementierungen. Die Analyse erleichtert die Identifikation von Mustern zwischen Testschritten und deren Umsetzung mit Testautomatisierungskomponenten. Für die Generierung von Testfällen nutzt dieser Ansatz historische Daten von Testautomatisierungsprojekten. Die identifizierten Muster sind die Grundlage, um die Implementierung unbekannter Testfallspezifikationen vorherzusagen. Auf der Grundlage dieser Unterstützung überprüfen Prüfingenieur:innen lediglich die Komponenten der Testautomatisierung und parametrieren diese, anstatt sie manuell zu schreiben, was zu einer erheblichen Zeitreduzierung beim Aufbau der Automatisierung führt.

automated tests 02

Im Vergleich zu anderen Generationsansätzen kann diese Machine Learning-basierte Lösung unterschiedliche Schreibweisen, Autoren, Anwendungsdomänen und sogar Sprachen verarbeiten. Darüber hinaus erfordern Tools zur Testautomatisierung Expertenwissen durch Programmierkenntnisse, während dieser Ansatz nur historische Daten zur Generierung von Testfällen erfordert. Die vorgeschlagene Lösung wird anhand verschiedener Multi-Label-Bewertungskriterien (EC) und zweier kleiner, realer Systeme evaluiert, wobei die ‘Teilmengen-Genauigkeit’ die wichtigste EC ist. Die vielversprechenden Ergebnisse zeigen eine Genauigkeit von mindestens 86 % für Testfälle, in denen eine 1:1-Beziehung (Multi-Class) zwischen Testschrittspezifikation und Testautomatisierungskomponente besteht. Bei komplexen Multi-Label-Problemen, d.h. ein Testschritt kann von mehreren Komponenten realisiert werden, liegt die Vorhersagegenauigkeit noch bei 60 %. Sie ist besser als der aktuelle Stand der Technik. Es wird erwartet, dass die Vorhersagequalität für größere Systeme mit entsprechenden historischen Daten steigt. Diese Technik erleichtert somit die Zeiteinsparung für die Etablierung der Testautomatisierung und ist damit unabhängig von Anwendungsdomäne und Projekt. Im Laufe der Arbeiten werden die nächsten Schritte darin bestehen, inkrementelles und aktives Lernen als Ergänzung zu untersuchen, um die Benutzerfreundlichkeit dieses Ansatzes zu erhöhen, z. B. für den Fall, dass etikettierte historische Daten knapp sind.