Wir testen das Wichtigste zuerst

Bei aufwendigen Software-Regressionstests ist eine intelligente Priorisierung gefragt, um wertvolle Ressourcen effizient einsetzen zu können: Zuerst sollten diejenigen Tests durchgeführt werden, die eine hohe Chance haben, Fehler zu finden, und die kritische Bereiche testen. Für Menschen ist die Priorisierung wichtiger Testfälle eine nur schwer zu lösende Aufgabe, maschinelles Lernen liefert dagegen die beste Reihenfolge. Daher kommt es bei IAV unter anderem beim Software-Testmanagement im Kundenauftrag zum Einsatz.

Mit der Maxime „Das Wichtigste zuerst“ kommt man beim Test von Softwaresystemen am schnellsten voran. Nach den Modul- und Integrationstests wird am Ende der Entwicklung untersucht, ob alle Komponenten im gesamten System so ineinandergreifen, wie der Kunde es vorgegeben hat. Dabei sind viele Anforderungen zu berücksichtigen, zudem führen Änderungen an einer Stelle oft zu Problemen in anderen Bereichen. Der Aufwand hinter den Tests und deren Planung ist daher enorm – und er wiederholt sich bei jeder neuen Softwareversion.

Tester stehen oft vor einer Blackbox

„Oft existieren mehrere Tausend Testfälle, die bei Regressionstests manuell abzuarbeiten wären. Außerdem haben es die Tester im Systemtest meist mit einer Blackbox zu tun: Der Quellcode stammt in der Regel von unterschiedlichen Zulieferern und ist nicht bekannt, entweder aus Geheimhaltungsgründen oder weil er Fremdbibliotheken nutzt“, berichtet Dr. Remo Lachmann, Teamleiter Softwaretest bei IAV. „Daher kann man Codeänderungen nicht analysieren, um Testfälle vorab zu priorisieren und dadurch potenzielle Fehlerquellen früh zu identifizieren.“

Hinzu kommt: Es gibt oft nicht genügend menschliche Tester für die anspruchsvolle Aufgabe. Zudem stehen sie meist unter hohem Zeitdruck, sodass maximale Effizienz gefragt ist. „Es kann vorkommen, dass beispielsweise drei Tester tausend Testfälle in nur zwei Wochen vor einem Software-Release durchführen sollen – eine unlösbare Aufgabe“, so Lachmann. Der Einsatz von Testautomatisierung kann helfen, den manuellen Testaufwand zu reduzieren, ist andererseits aber häufig mit einem hohen Initialund Pflegeaufwand verbunden, der eine allumfassende Testautomatisierung meist ausschließt. „Hier hilft nur eine Priorisierung, um die vorhandenen Ressourcen optimal nutzen zu können.“ Für Menschen ist das bei vielen Testfällen jedoch eine schwierige Aufgabe.

Aber es gibt eine Alternative: Mithilfe eines neuartigen Verfahrens von IAV, das auf maschinellem Lernen beruht, lassen sich die Testfälle automatisch nach Wichtigkeit sortieren und dadurch effektiver abarbeiten.

Zuerst trainiert ein Experte ein Modell, das danach beliebige Testfälle selbstständig priorisieren kann – es zeigt den Testern, was wichtig ist und was nicht. „Menschen skalieren auf diesem Gebiet bei Weitem nicht so gut wie Computer“, so Lachmann. „Nach Studien können wir Menschen maximal 100 Dinge in eine objektive Reihenfolge bringen.“

Signifikant erhöhte Fehlerfindungsquote

Das System von IAV übernimmt die Priorisierung. Wenn die wichtigsten Tests erledigt sind und die für das Testen vorgesehene Zeit erschöpft ist, kann der Tester seine Arbeit beenden und dennoch sicher sein, dass er sein Bestes getan hat, um seinem Kunden eine fehlerfreie Software zu liefern. „Unsere Erfahrungen in der Praxis zeigen, dass unser Priorisierungswerkzeug die Fehlerfindungsquote signifikant erhöht“, berichtet Lachmann. „Fehler werden früher gefunden, und die Effizienz der Softwaretests steigt.“

10 Impulse 190522 HumanVsMachine V01 jebe
Vergleich der Fehlerfindungsrate zwischen Mensch und Maschine (zwei Modelle).

Von der Leistungsfähigkeit des Systems können IAV-Kunden profitieren. „Wir bieten Software-Testmanagement als Dienstleistung an und nutzen zur Priorisierung der Testaufgaben maschinelles Lernen“, sagt Lachmann. „Zu unserem Service gehörten die Analyse bestehender Testfälle, Testdaten und gegebenenfalls Vorschläge für ihre Verbesserung. Zudem analysieren und optimieren wir existierende Teststrategien unserer Kunden.“ Als Kunden hat er nicht nur Automotive-Unternehmen im Blick – jeder Softwarehersteller kann den Service nutzen. Das Spektrum der zu testenden Programme ist nicht begrenzt: Es reicht von Embedded Software über Apps und Desktop-Anwendungen bis hin zu Backend-Lösungen. „Wir übernehmen die Koordination und das Management der Tests und auf Kundenwunsch auch die tatsächliche Durchführung“, stellt Lachmann klar.

Maßgeschneiderte Leistung

Wie genau diese Leistung aussehen soll, lässt sich individuell vereinbaren. Wenn ein Kunde ein akutes Problem hat, können die IAV-Experten kurzfristig unterstützen. Die Begleitung eines komplexen Testprojekts kann schon mehrere Monate dauern. Lachmann und seine Kollegen können das komplette Testmanagement übernehmen – darunter neben der Organisation auch die Schnittstelle zwischen Entwicklern und Testern. „Neben unserer großen Erfahrung auf diesem Gebiet ist insbesondere der Einsatz von maschinellem Lernen bei Systemtests unser Alleinstellungsmerkmal“, so Lachmann.


Das Interview erschien in der automotion 02/2019, dem Automotive Engineering-Fachmagazin von IAV. Hier können Sie die automotion kostenfrei bestellen.