Gute Software muss fehlerfrei sein und deshalb mit Tests auf „Herz und Nieren“ geprüft werden. Die Programmiererinnen und Programmierer versuchen dabei beispielsweise herauszufinden, was sie in eine App eingeben müssen, um sie zum Absturz zu bringen. Da das Erstellen guter Tests schwierig und fehleranfällig ist, gibt es Bestrebungen, die Testerzeugung zu automatisieren. In herkömmlichen Verfahren wird dabei auf Informationen über den Quellcode des Programms zurückgegriffen und ein Wert errechnet, wie nahe man dem Finden eines Fehlers gekommen ist – eine Vorgehensweise, die sich leider nur als bedingt effektiv erweist.
Das DFG-Projekt „STUNT – Improving Software Testing Using NovelTy“ unter der Leitung von Professor Gordon Fraser, Inhaber des Lehrstuhls für Software Engineering II an der Universität Passau, setzt nun auf einen neuen Ansatz zur Testerzeugung: Novelty Search. Ein Algorithmus soll dabei die App auf möglichst viele Arten benutzen, um möglichst viele Fehler aufzudecken. „Man kann nie wissen, wo der Defekt liegt. Je mehr unterschiedliche Wege wir durchlaufen, desto größer die Chance, Fehler zu finden“, so Prof. Dr. Fraser.
Verfahren stammt aus der Robotik
Die Messung der „Novelty“ (dt. Neuheit) gibt dabei an, wie unterschiedlich die gefundenen Wege waren, die ausprobiert wurden, und somit, wie detailreich getestet wurde. Die Idee zu diesem Verfahren stammt ursprünglich von den Forschern Joel Lehman und Kenneth O. Stanley von der University of Central Florida und wird bisher nur im Bereich der Robotik eingesetzt. Im Rahmen des Projektes versucht das Passauer Forschungsteam, den Algorithmus auch auf Software Testing anzuwenden. Dabei können Fraser und sein Team auf Ergebnisse und die Infrastruktur ihres vergangenen Projektes GReaTest aufbauen, das sich bereits mit der Optimierung automatisch generierter Tests in Bezug auf deren Nutzerfreundlichkeit befasste.
Die Deutsche Forschungsgemeinschaft (DFG) fördert das Projekt STUNT über einen Zeitraum von drei Jahren. Es startet im Frühjahr 2021 mit der Erforschung von Möglichkeiten zur Messung von Novelty. Langfristiges Ziel des Teams ist die Entwicklung besserer Testerzeugungsverfahren.