Mit Mutation Testing zu mehr Qualität: das XITASO Forschungsprojekt „Test the Test“ (T3)

Das XITASO Forschungsprojekt „Test the Test“ (T3) ist im ersten Halbjahr 2021 mit großem Erfolg abgeschlossen worden. Zusammen mit seinen Projektpartnern und gefördert vom Bundesministerium für Wirtschaft und Energie (BMWi) konnte XITASO tiefere Einblicke in erfolgreiches Mutationstesting und die Qualitätsverbesserung für eingebettete Systeme gewinnen.

Die Qualitätsanforderungen an eingebettete Systeme in Digitalisierungsprojekten werden immer größer. In der Software-Entwicklung sind Tests unerlässlich, um den Ansprüchen an qualitativ hochwertigen Code gerecht zu werden. Doch wie kann man feststellen, ob die eigenen Tests gut genug sind, um Schwachstellen im Code zu entdecken? Mithilfe von automatisierten Bewertungen von Tests kann die Qualität von Software-Tests und somit die Qualität von Anwendungen erheblich gesteigert werden.

Dies war der Ausgangspunkt des Forschungsprojektes „Test the Test“ (T3), in dem fünf Kooperationspartner involviert waren: Die Universität Augsburg mit der Professur für Softwaremethodik für verteilte Systeme als FuE-Einrichtung sowie die Razorcat GmbH, die IMACS GmbH und die Viconnis Test Technologie GmbH als Tool- und Forschungspartner. XITASO hat als Tool-Anwender und Use Case-Partner des T3-Projekts bei der Anforderungsdefinition und der Methodikentwicklung mitgearbeitet. Zusammen haben sich die Projektpartner das Ziel gesetzt, die Qualität von Tests und dazugehöriger Techniken und Tools zu steigern.

Als vielseitiger und im Projektgeschäft erfahrener Digitalisierungspartner für industrielle Unternehmen kennt XITASO die Anforderungen seiner Kunden genau. Jahrelange Erfahrung in der Entwicklung von hochwertiger Software und Expertise mit automatisierten Tests konnten deshalb das Projekt bereichern. Darüber hinaus hat XITASO einen realitätsnahes Anwendungsszenario aus dem Industrieumfeld modelliert, Testfälle spezifiziert und die entwickelten Techniken und Tools des Projekts evaluiert.

Der innovative Ansatz von Mutationstesting

Mutationstesting ist ein Ansatz zur Bewertung von Softwaretests, der darauf basiert, gezielt Fehler in den Produktivcode einzubauen und zu überprüfen, ob diese von den Tests erkannt werden. Die Erkennungsquote dieser Fehler kann somit ein Maß für die Qualität der Tests liefern und Ansätze für mögliche Verbesserungen der Tests aufzeigen.

Der Ansatz des Mutationstestings ist zwar bereits über 40 Jahre alt und hat in der Forschungswelt viel Aufmerksamkeit erfahren, wird allerdings verhältnismäßig wenig in der Praxis eingesetzt. Das Forschungsprojekt „Test the Test“ hat sich deshalb dieses Ansatzes angenommen, um aktuelle Techniken und Tools auf mögliche Anwendungsgebiete und den praktischen Einsatz zu überprüfen und zu evaluieren. Die Idee des Mutationstestings wurde somit auch auf Hardware- und Modell-Ebene angewendet und um eine semi-automatische Qualitätsverbesserung der Testfälle ergänzt.

„Mich hat am Forschungsprojekt T3 besonders gereizt, den Ansatz des Mutationstestings einmal an einem realitätsnahen Anwendungsbeispiel auszuprobieren. Denn ich finde es immer spannend, wie sich Konzepte aus der Forschung in der Praxis umsetzen lassen. Zu wissen, welche Techniken und Tools für welche Zwecke geeignet sind, ist eine wesentliche Voraussetzung für High-End Software Engineering.“

Michael Wißner
Software-Entwickler

„Mich hat am Forschungsprojekt T3 besonders gereizt, den Ansatz des Mutationstestings einmal an einem realitätsnahen Anwendungsbeispiel auszuprobieren. Denn ich finde es immer spannend, wie sich Konzepte aus der Forschung in der Praxis umsetzen lassen. Zu wissen, welche Techniken und Tools für welche Zwecke geeignet sind, ist eine wesentliche Voraussetzung für High-End Software Engineering.“

Michael Wißner
Software-Entwickler

Realitätsnahes Praxisbeispiel „Smarte Aufzüge“

Um die von den Kooperationspartnern entwickelten Tools bestmöglich auf ihre Praxistauglichkeit hin zu testen, hat XITASO einen realitätsnahen Use Case modelliert: Entstanden ist ein komplexes Modell von kooperierenden smarten Aufzügen, die selbstorganisiert ihre Aufträge abarbeiten können und zwar nicht nur am Fahrstuhl selbst, sondern auch durch eine Ansteuerung per App. XITASO hat dieses System jedoch nicht nur modelliert, sondern auch die für das Projekt benötigten Testfälle spezifiziert und mithilfe der Tools der Projektpartner getestet und diese im Anschluss evaluiert.

Das smarte Aufzugsystem diente im Projekt als Fallstudie für ein komplexes eingebettetes System mit mehreren Interaktionspunkten für Benutzer, wie es heute in Software-Lösungen von XITASO üblich ist. Um Skalierbarkeit und Erweiterbarkeit zu gewährleisten, wurden Mechanismen der Selbstorganisation für die Auftragsverteilung unter den verschiedenen Aufzügen modelliert. Neben mehreren simulierten Aufzug-Kabinen wurde auch die Anbindung an eine Hardware-Simulation über Hard- und Software-Komponenten aus der industriellen Automation – eine ctrlX Core von Bosch Rexroth sowie einen dazu passenden Feldbuskoppler mit digitalen und analogen I/O-Modulen – modelliert. Das so umgesetzte System bot ein ideales Umfeld, um komplexere Interaktionen und Algorithmen testen zu können und die Güte der entstandenen Testsuite mittels Mutationstesten zu bewerten.

Ergebnis des Forschungsprojekts

Im Ergebnis wurden die eingesetzten Tools der Projektpartner mithilfe des Use Cases evaluiert und hinsichtlich Verbesserungsmöglichkeiten bewertet. Als wichtigste Learnings konnten die Projektbeteiligten mitnehmen, was Mutationstesting kann und für welche Anwendungsfälle es geeignet ist. So kann beispielsweise in sehr sicherheitskritischen Systemen Mutationstesting eine sinnvolle Ergänzung sein. Hinderlich für einen breiteren Einsatz kann die eingeschränkte Verfügbarkeit von Mutationstest-Tools in verschiedenen Programmiersprachen und die teils schwierige Interpretierbarkeit der Ergebnisse eines Mutationstest-Durchlaufs sein. Hier werden weitere Entwicklungen nötig sein, um die Vorteile des Ansatzes in der Praxis besser nutzen zu können.

Das Forschungsprojekt wurde im Rahmen des Förderprogramms “Zentrales Innovationsprogramm Mittelstand” (ZIM) des Bundesministeriums für Wirtschaft und Energie (BMWi) von April 2018 bis März 2021 unterstützt.