Forschungsthemen
[GB] Konzeption einer domänenspezifischen Sprache zur Spezifikation und Generierung automatisierter Systemtests in einer bestehenden Testumgebung
Bei der Entwicklung automatisierter Systemtests kommen auf den verschiedenen Ebenen (Steuerung und Verwaltung, Testdaten, Testausführung, Testimplementation) und Bereichen (Benutzeroberfläche, Anwendungsdaten, Kommunikation) viele verschiedene Testwerkzeuge und Testframeworks zum Einsatz. Diese decken jeweils nur einen bestimmten Teilaspekt ab, z.B. das Testen der Benutzeroberfläche. Dadurch wird die Implementierung der Tests sehr aufwändig. Zusätzlich müssen bereits implementierte Tests gewartet und migriert werden. Auch die Testspezifizierungen ändern sich über die Zeit und müssen in die Implementation eingepflegt werden.
Jedes Werkzeug muss in die Testumgebung bzw. vorhandene Werkzeugsammlung integriert werden. Die Frameworks nutzen teilweise andere Programmiersprachen. Werkzeuge arbeiten oft mit eigenen Skripts. Diese müssen dann separat entwickelt werden. Auch die Unterstützung für Steuerung der Werkzeuge und Auswertung der Ergebnisse muss in die Testumgebung integriert werden.
Es existieren bereits verschiedene Anwendungen von Domain-spezifischen Sprachen (Domain Specific Languages, DSLs) für die Spezifikation automatisierter Tests. Beispielsweise für Tests der Benutzeroberfläche gibt es mehrere Werkzeuge, die eine DSL zur Beschreibung des Testablaufs nutzen. Für Schnittstellentests existieren ebenfalls Werkzeuge, die eine tabellarische Form von Testdaten nutzen.
Für die Umsetzung einer DSL wird ein Parser benötigt, der Daten der Sprache einlesen und entsprechend verarbeiten kann. Für diesen Zweck gibt es verschiedene Werkzeuge in Form von IDEs und Plugins wie EMFText oder Xtext. Diese erstellen den benötigten Parser und die Stubs für die Generatoren automatisch aus der Sprachdefinition. Dadurch ist der Aufwand, eine eigene DSL zu definieren, auf ein Minimum reduziert. Dies führt zu einer erleichterten Nutzung einer eigenen DSL, angepasst auf die eigenen Anforderungen, Testumgebung und die verwendete Werkzeugsammlung. In der Belegarbeit soll der Einsatz einer DSL als Spezifikationssprache für Systemtests analysiert und konzipiert werden. Aufbauend auf den gewonnenen Erkenntnissen sollen die DSL-Texte im Anschluss zur Generierung der Tests genutzt werden soll. Dadurch würde die aufwändige Implementierung jedes einzelnen Tests durch einen Entwickler entfallen. Der Aufwand würde reduziert auf die Spezifikation des Tests in der DSL und die Implementation und Wartung des Generators. Die Wartung der Tests und Anpassungen an Änderungen der Testspezifikation werden dann durch erneutes parsen und generieren der Tests durchgeführt.
Dazu soll zunächst recherchiert werden, was für Forschungen zu diesem Thema bereits existieren, welche Ansätze diese haben und welche Erkenntnisse gewonnen werden konnten. Weiter soll die momentan verwendete Sprache analysiert werden. Auf Basis der Recherchen und Erfahrungen beim Einsatz der DSL sollen Nachteile und fehlende Konstrukte herausgearbeitet werden. Als Ergebnis soll eine prototypische DSL implementiert werden, welche die Erkenntnisse aus der Recherche und der Analyse umsetzt. Weiter soll die DSL die automatische Generierung von Testsuiten/Testplänen auf Basis von Konfigurationen unterstützen. Dazu muss eine geeignete Auszeichnung der Tests gefunden werden, die es ermöglicht, festzustellen, welche Tests für die gegebene Konfiguration relevant sind.
Betreuer: Georg Püschel