SmarTest

Smarte Testgenerierung und effiziente Testausführung

Kontext und Motivation

Die Softwareentwicklung ist geprägt von der stetigen Weiterentwicklung großer, komplexer Softwaresysteme, oftmals in Form von hochgradig anpassbaren und stark konfigurierbaren Produkten oder Produktlinien. Der Ansatz um die Qualität solcher Systeme sicherzustellen, sind die Anwendung statischer und dynamischer Testmethoden. Mit diesen Ansätzen kann neue Funktionalität erkundet und validiert werden und unerwünschte Seiteneffekte auf die bestehende Implementierung entdeckt werden. Mit steigender Komplexität steigt auch der Umfang und die Komplexität der notwendigen Testinfrastruktur und Testfälle. Mit der Anwendung generativer Testansätze und der Erforschung der automatischen Wiederverwendbarkeit von Testfällen für unterschiedliche Systemkonfigurationen sollen verfügbare Testressourcen effektiver einsetzbar werden.

Ziele und Innovation

Basierend auf den Anwendungsfällen und Herausforderungen der Projektpartner im Umgang mit der Komplexität und Variantenvielfalt ihrer Systeme, werden gezielt Maßnahmen identifiziert und Lösungen in den nachfolgenden Bereiche erforscht und umgesetzt.

Statische und dynamische Analyse für Testfallgenerierung

Testen erfordert tiefergehendes Domänenwissen. Durch die Integration statischer und dynamischer Analysen von Softwaresystemen (z.B. Codeanalyse, symbolische Ausführung, Architekturdokumentation, User Profiling) kann relevantes Wissen extrahiert und im Testen bzw. für die Testfallgenerierung genutzt werden.

Fokussiertes Testen

Regressionstesten soll im Idealfall alle Tests mit allen möglichen Konfigurationen ausführen. Die enorme Anzahl an möglichen Konfigurationen und Varianten, die sich aus der Kombination unterschiedlicher Konfigurationseinstellungen und Produkteigenschaften ergeben, machen in der Regel ein vollständiges Testen unmöglich. Daher ist eine intelligente Teststrategie und Testfallauswahl erforderlich.

Test Evaluierung

Auf der Ebene der Systemtests wird häufig eine hohe Abdeckung in Bezug auf geprüfte Anforderungen (Anforderungsbasiertes Testen) oder Modellelemente (modellbasiertes Testen) gefordert. Systemkonfigurationen und Produktvarianten führen einen zusätzlichen Faktor ein, der bei der Berechnung von Abdeckungskennzahlen und Ergebnisgrößen berücksichtigt werden muss. Wie gut die Tests sind und wie gut das System geprüft wird, kann damit dennoch nicht mit Sicherheit gesagt werden. Dazu bedarf es zusätzlicher Methoden und Metriken

Ergebnisse

Um Testen im Umfeld immer komplexerer Softwaresysteme und notwendiger Variantenvielfalt effizient zu gestalten gilt es, neue Methoden aus der Forschung im industriellen Umfeld einzusetzen und zu folgenden Fragestellungen Antworten zu finden: (i) Wie können Testfälle und die Testinfrastrukur wiederverwendet werden? (ii) Wie kann Datensammlung aus dem Betrieb und aus automatischen Testausführungen das Testen unterstützen? (iii) Ob und wie lassen sich KI-Ansätze für das Testen im industriellen Umfeld einsetzen?

Wissenschaftliche Kooperationen

In Kooperation aller Projektpartner werden die beschriebenen Ansätze erarbeitet und im industriellen Umfeld validiert:

  • SCCH – Software Competence Center
  • ENGEL AUSTRIA GmbH
  • Palfinger EMEA GmbH
  • PKE Holding AG
  • Windhager Zentralheizung Technik GmbH
  • JKU, Institute for Software Systems Engineering

Fördergeber

Das Projekt wird im Rahmen vom FFG Programm COMET gefördert.

Projektdauer

48 Monate (1. Jänner 2019 - 31. Dezember 2022)

Rudolf Ramler

Ramler Rudolf

Research Manager Software Science
Telefon: +43 50 343 872

Claus Klammer

Klammer Claus

Researcher Software Analytics and Evolution
Telefon: +43 50 343 856

zurück