Das Testen hat in der Softwareentwicklung in den letzten Jahren deutlich an Bedeutung gewonnen. Mit dem Ziel, die Performanz, Sicherheit, Nutzbarkeit und Funktionalität von Software zu erhöhen, wird geprüft, ob beim Einsatz von Software Fehler oder Mängel auftreten. Da beim Testen von Software immer nur eine begrenzte Anzahl an Tests durchgeführt wird, kann man sich nie zu 100% sicher sein, dass Software fehler- und mängelfrei ist. Abhängig vom Einsatzbereich der Software können Fehler und Mängel drastische Auswirkungen haben. Aus diesem Grund wird Software in der Praxis umfassend getestet, wobei die Tests großteils manuell konzipiert und durchgeführt werden. Dies führt dazu, dass etwa 40-50% des Aufwands bei der Softwareentwicklung im Bereich des Testens anfällt. Bei sicherheitskritischer Software, wie sie etwa bei autonomen mobilen Robotern (AMR) zum Einsatz kommt, ist dieser Anteil sogar noch größer.
Problem: TASTE konzentriert sich auf Software zur Steuerung von AMRs, da dieser Bereich rasant wächst, eine besonders hohe Softwarequalität erfordert und aktuelle Ansätze, bei denen Tests weitgehend manuell konzipiert und durchgeführt werden, nicht zufriedenstellend sind. Es wird zwar schon seit einiger Zeit an der Automatisierung des Testens von Software gearbeitet, etwa mit modellbasiertem Automata Learning (AL) oder maschinellem Lernen auf der Grundlage von Reinforcement Learning (RL), aber durchschlagende Erfolge zeichnen sich bisher nicht ab. Die Ansätze kommen beispielsweise mit der hohen Komplexität von Software nicht zu recht (im Fall von AL) oder konvergieren wegen mangelndem Feedback zu Entscheidungen nur langsam (im Fall von RL). Darüber hinaus sind die Ergebnisse von Ansätzen, die auf maschinellem Lernen beruhen, meist nicht erklärbar. Die Konsequenz ist, dass das Testen auch bei sicherheitskritischer Software immer noch weitgehend manuell erfolgt.
Ziel: Ziel von TASTE ist es, den Aufwand für die Entwicklung und das Testen von Software zu reduzieren, ohne die Performanz, Sicherheit, Nutzbarkeit und Funktionalität der Software zu beeinträchtigen. Um dieses Ziel zu erreichen, wird eine Testmethodik entwickelt, die modellbasierte (AL) und modellfreie (RL) Ansätze miteinander kombiniert. Die Methodik nutzt die Stärken von AL, um die Herausforderungen von RL in den Bereichen Konvergenz und Erklärbarkeit zu bewältigen und die Stärken von RL, um auch bei hoher Softwarekomplexität effizient optimale Teststrategien zu entwickeln. Darüber hinaus unterstützt die entwickelte Testmethodik bei gefundenen Fehlern und Mängeln die Ursachenanalyse. Dadurch wird nicht nur die effiziente Beseitigung von Fehlern und Mängeln erleichtert, sondern auch eine wichtige Grundlage zur Verbesserung von Programmierassistenten geschaffen, die auf generativen Verfahren der künstlichen Intelligenz (KI) beruhen und zunehmend in der Softwareentwicklung zum Einsatz kommen.
Ergebnisse: Zentrales Ergebnis von TASTE ist eine Testmethodik für Software, wobei dem Einsatz der Methodik im Kontext von AMRs besondere Aufmerksamkeit zukommt. Die Methodik wird im Idealfall in der Lage sein, effizient optimale Teststrategien zu entwickeln und abzuarbeiten, wobei (1) die Dynamik eines Systems berücksichtigt wird (z.B. ein Roboter bewegt sich durch eine sich verändernde Umwelt), (2) die hohe Dimensionalität komplexer Umgebungen kein limitierender Faktor ist und (3) tiefe Einblicke in die Ursache von Fehlern und Mängeln sowie die Auswirkungen von Maßnahmen zu ihrer Beseitigung gegebenen werden. Die Anwendbarkeit und Effektivität der Testmethodik wird anhand von realen Anwendungsfällen aus dem AMR-Umfeld evaluiert. Bei der Evaluierung liegt der Fokus gleichermaßen auf technischen wie auf wirtschaftlichen und rechtlichen Aspekten. Auf Basis der Evaluierung werden die Weichen für eine umfassende wirtschaftliche und wissenschaftliche Verwertung der Ergebnisse gestellt.
Innovation: Das besondere Innovationspotenzial von TASTE ergibt sich aus der Kombination vielversprechender Methoden zur Bewältigung von zentralen Herausforderungen im Bereich des Testens von Software. Software nimmt in unserer Gesellschaft bereits heute immense Bedeutung ein. Viele sicherheitskritische Bereiche wären ohne Softwareeinsatz undenkbar. Entsprechend hoch ist der Aufwand, der in das Testen von Software fließt. Mit neuen Anwendungen wie AMR, das mit dem autonomen Fahren, dem in der Öffentlichkeit besonders viel Aufmerksamkeit zukommt, eng verwandt ist, werden grundlegende Verbesserungen im Bereich des Testens notwendig. Die angestrebten Ergebnisse versprechen Verwertungspotenzial auf unterschiedlichen Ebenen: (1) Softwareentwickler können den Aufwand für das Testen reduzieren ohne Abstriche bei der Softwarequalität in Kauf nehmen zu müssen, (2) Dienstleister können das Testen von Software im Rahmen von Testing-as-a-Service-Geschäftsmodellen anbieten und (3) Wissenschaftler sowie Anbieter von Entwicklungsumgebungen können relevante Aspekte bei der Verbesserung von KI-basierten Programmierassistenten einfließen lassen.