You are here: SE » ThesesHome » ThesisAGSEMEQ

Aktuelle Vorschläge für Arbeiten am Lehrstuhl MEQ

Diese Seite ist nicht mehr relevant, da die Gruppe AGSE MEQ von Frau Schieferdecker hier am Institut nicht mehr besteht.

Beschreibung funktionaler Oberflächentests mit dem UML Testing Profile

Aufgabenbeschreibung

Die Spezifikation, Durchführung, Auswertung und Wartung funktionaler Oberflächentests sind noch immer kosten- und zeitintensive Aufgaben innerhalb eines Testprozesses. Im industriellen Kontext werden für diese Aufgaben zumeist Capture-and-Reply oder Keyword-driven-Werkzeuge (etwa Eclipse Jubula) eingesetzt. Die Vorteile von modellbasiertem Testen (wie etwa plattformunabhängigkeit, automatisierte Testgenerierung, grafische Testfalbeschrebung durch Diagramme etc.) lassen sich auch auf den Entwurf und die Realisierung funktionaler Oberflächentests übertragen. Das UML Testing Profile (UTP) ist eine aud der UML aufsetzende konkrete Modellierungsnotation mit der sich modellbasiertes Testen realisieren lässt. Im Zuge dieser Abschlussarbeit soll untersucht werden wie sich funktionale Oberflächentests mit dem UTP unabhängig von einer konkreten Ausführungsumgebung beschreiben lassen. Als Beweis der technischen Machbarkeit soll in dieser Arbeit ein vertikaler Durchstich beginnend bei UTP-basierten Testfallspezifikation bis zur Ausführung der generierten Testfälle innerhalb der Ausführungsumgebung erfolgen. Als Modellierungsumgebung soll die prototypische Testmodellierungsumgebung Fokus!MBT verwendet werden, als Ausführungsumgebung das OpenSource-Werkzeug Eclipse Jubula.

Weitere Informationen

  • Thema ist geeignet für Diplom, Bachelor und Master Arbeiten
  • Der Ansprechpartner ist Marc-Florian Wendland

Integration der Abstract Action Language for fUML (ALF) in Fokus!MBT im Kontext der Testfallgenerierung mit dem Microsoft Spec Explorer

Aufgabenbeschreibung

Eines der signifikanten Merkmale von modellbasierten Testen ist der (semi-)automatisierte Testentwurf, oft auch Testgenerierung genannt. Zu diesem Zweck werden in einem so genannten Testmodell strukturelle und verhaltensspezifische Aspekte des zu testenden Systems beschrieben, welches als Basis für die Testgenerierung verwendet wird. Die Teile eines Testmodells, die zur Generierung von Testfällen und Testdaten verwendet werden, werden auch Testbasis-Spezifikationen genannt. Das UML Testing Profile (UTP) ist eine Erweiterung der UML um testspezifische Konzepte mit der sich Testmodelle auf Basis der UML beschreiben lassen. Eine allgemein angewandte Technik im Kontext des UTP für den Entwurf der Testbasis-Spezifikationen sind Zustandsmaschinen. Zustandsmaschinen bestehen aus Zuständen (State) und Zustandsübergangen (Transitionen). Die Transitionen beschreiben unter welchen Bedingungen ein aktiver Zustand verlassen und in einen Folgezustand gewechselt wird. Dies geschieht über so genannte Wächter (Guards). Zudem können sowohl Transitionen und Zustände Effekte beschreiben, die die Zustandsmaschine verändern und so Transitionen aktivieren oder deaktivieren. Während die UML zumindest für die Effekte vorschreibt, dass diese über einer der drei Verhaltensarten zu beschreiben ist, gibt es für Wächter-Ausrücke keine Vorgaben seitens der UML. In der Praxis wird für die Wächter-Ausdrücke zumeist die Object Constraint Language (OCL) verwendet. Da die OCL jedoch eine reine Abfragesprache ist, sie also nicht in der Lage ist den Wert von Variablen zu verändern, kann die OCL nicht als Effektsprache für Transitionen oder Zustände verwendet werden. Dies führte dazu, dass zum einen häufig zwei verschiedene Sprachen innerhalb von Zustandsmaschinen verwendet wurden (OCL für den Wächter und proprietäre Sprachen für die die Effekte) und zum anderen die Sprachen für Wächter und Effekte zwischen den Modellierungsumgebungen variieren. Mit der Abstract Action Language for fUML (ALF) , fUML steht für Foundational Subset for Executable UML models, existiert seit gut einem Jahr eine textuelle Spezifikation der UML-Action-Semantik (grundlegende Aktionen des objektorientierten Paradigmas) welche zum einen plattformunabhängig ist und zum anderen sowohl für die Spezifikation der Wächter als auch der Effekte eingesetzt werden kann. Im Zuge dieser Arbeit wird angestrebt eine ALF-Entwicklungsumgebung in das Testmodellierungswerkzeug Fokus!MBT zu integrieren und eine prototypische Abbildung von ALF auf C# vorzunehmen. Fokus!MBT setzt auf der OpenSource-Modellierungsumgebung Eclipse Papyrus auf. Eclipse Papyrus wiederum stellt bereits die komplette Infrastruktur für eine ALF-Umgebung (d.h., Editoren (inlkl. Lexer/Parser), Syntaxhighlighting, Code-Completion) bereit, so dass die technische Integration in Fokus!MBT des ALF-Editors eher marginal sein wird. Hauptziel der Arbeit ist die Spezifikation und prototypische Umsetzung von Teilen der Abbildung von fUML-Ausdrücken auf Spec# (eine Erweiterung des C#-Sprachumfangs) im Kontext des Testfallgenerators Microsoft Spec Explorer. Zudem ist zu analysieren wie dekomponierte oder hierarchische Zustandsmaschinen (ausgedrückt über Submaschine-Zuständen) miteinander zu integrieren sind, um den Zugriff über ALF auf die relevante Variablen der Zustandsmaschinen über die verschiedenen Dekompositionsebenen hinweg zu garantieren.

Weitere Informationen

  • Thema ist geeignet für Diplom, Bachelor und Master Arbeiten
  • Der Ansprechpartner ist Marc-Florian Wendland

Beschreibung funktionaler Oberflächentests mit dem UML Testing Profile

Aufgabenbeschreibung

Die Spezifikation, Durchführung, Auswertung und Wartung funktionaler Oberflächentests sind noch immer kosten- und zeitintensive Aufgaben innerhalb eines Testprozesses. Im industriellen Kontext werden für diese Aufgaben zumeist Capture-and-Reply oder Keyword-driven-Werkzeuge (etwa Eclipse Jubula) eingesetzt. Die Vorteile von modellbasiertem Testen (wie etwa plattformunabhängigkeit, automatisierte Testgenerierung, grafische Testfalbeschrebung durch Diagramme etc.) lassen sich auch auf den Entwurf und die Realisierung funktionaler Oberflächentests übertragen. Das UML Testing Profile (UTP) ist eine aud der UML aufsetzende konkrete Modellierungsnotation mit der sich modellbasiertes Testen realisieren lässt. Im Zuge dieser Abschlussarbeit soll untersucht werden wie sich funktionale Oberflächentests mit dem UTP unabhängig von einer konkreten Ausführungsumgebung beschreiben lassen. Als Beweis der technischen Machbarkeit soll in dieser Arbeit ein vertikaler Durchstich beginnend bei UTP-basierten Testfallspezifikation bis zur Ausführung der generierten Testfälle innerhalb der Ausführungsumgebung erfolgen. Als Modellierungsumgebung soll die prototypische Testmodellierungsumgebung Fokus!MBT verwendet werden, als Ausführungsumgebung das OpenSource-Werkzeug Eclipse Jubula.

Weitere Informationen

  • Thema ist geeignet für Diplom, Bachelor und Master Arbeiten
  • Der Ansprechpartner ist Marc-Florian Wendland

Entwicklung eines Editors für realitätsnahe Testszenarien in der Fahrzeug zu Fahrzeugkommunikation

Unsere Welt vernetzt sich zunehmend in vielen relevanten technischen Bereichen. Zusätzlich dazu wird die individuelle Mobilität immer wichtiger. Als eine der zentralen Voraussetzungen für die vernetzte und mobile Zukunft gilt die Fahrzeug zu Fahrzeugkommunikation (C2C). Mit Hilfe von Kommunikationstechnologie werden Daten direkt zwischen Fahrzeugen ausgetauscht. Dabei übermittelt jedes Fahrzeug anonymisierte Informationen, beispielsweis über die Fahrzeuggeschwindigkeit und -position bzw. über die umgebende Verkehrslage und verkehrsrelevante Ereignisse, sodass andere Fahrzeuge über mögliche Hindernisse und Gefahren auf ihrer Route informiert werden. So können Verkehrsteilnehmer rechtzeitig und angemessen auf Verkehrssituationen reagieren, damit sie sicher, schnell und komfortabel ans Ziel kommen. Um reibungslose Abläufe zu garantieren, müssen die im Fahrzeug eingebauten Systeme qualitativ einwandfrei und zuverlässig arbeiten. Die systematische Qualitätssicherung solcher Systeme adressiert aufgrund der Komplexität der Technologie neue Herausforderungen, die in ihrer Kombination bisher einzigartig sind und spezielle Anforderungen an das Testsystem und die Spezifikation von Testfällen stellen.

Problemstellung

Für den Test von Systemen und Anwendungen der Fahrzeug zu Fahrzeugkommunikation müssen neben den Kommunikationsprotokollen auch Tests durchgeführt werden, die die Abhängigkeit des Verhaltens dieser Systeme von den jeweiligen Orts- und Zeitkoordinaten und den Bewegungsvektoren der beteiligten Fahrzeuge prüfen. Eine Warnung vor einem Verkehrshindernis soll natürlich nur dann an den Fahrer weitergeben werden, wenn sich das Fahrzeug in der Nähe des Hindernisses befindet und sich auf das Hindernis zubewegt. Die Prüfung komplexerer Anwendungen, wie beispielsweise die Warnung vor Stauenden bzw. die Warnung vor Querverkehr, benötigen komplexere Prüfszenarien, die deutlich mehr Fahrzeuge umfassen und realistische Bewegungsprofile enthalten, in denen die Bewegungsvektoren und Position eines einzelnen Fahrzeugs mit den Bewegungsvektoren und Positionen der anderen Fahrzeuge koordiniert und durch Zuhilfenahme von realistischem Kartenmaterial sinnvoll begrenzt werden.

Ziel

Ziel der Arbeit ist die Entwicklung von Konzepten und Werkzeugen, mit denen sich die zuvor beschriebenen Testszenarien sinnvoll und effektiv beschreiben und generieren lassen. Für die Spezifikation der Testszenarien soll ein Editor konzipiert und realisiert werden, der zur Erstellung von abhängigen Bewegungsprofilen für mehrere Fahrzeuge genutzt werden kann. Hierbei ist darauf zu achten, dass sich die relative Abhängigkeit der Fahrzeugbewegungen untereinander auf einem sinnvollen Abstraktionsniveau beschreiben lassen. Darüber hinaus soll sich Ziel und Strecke der Fahrzeuge durch Geopositionen auf einer Karte angeben lassen können. Auf Basis einer solchen Spezifikation sollen mit Hilfe einer Simulationsumgebung für Verkehrs- und Fahrersimulation realistische Fahrszenarien generiert werden, die dann in einer Prüfumgebung für C2C Kommunikation (der FOKUS V2X Prüfstand) für das Einspielen des Fahrzeugverhaltens herangezogen werden können.

Vorgehen

Zu Beginn der Arbeit sollte sich ein Überblick über die bestehende Ansätze und Beschreibungsmittel zur Spezifikation von Test- bzw. Fahrszenarien auf Basis von Bewegungsprofilen und Geopositionen erarbeitet werden. Zusätzlich ist eine Einarbeitung in die Techniken der Verkehrs- und Fahrersimulation sinnvoll. Nach der Einarbeitungsphase werden eigene Konzepte zur Spezifikation Fahrzeugbewegungen definiert und in einem kartenbasierten Editor realisiert. Für die Erzeugung der Szenarien ist ein Generator für Test- bzw. Fahrszenarien zu entwickeln, der die spezifizierten Fahrzeugbewegungen in ein für den FOKUS V2X Prüfstand abspielbares Format überführt. Der Editor und die Leistungsfähigkeit der Spezifikationsmittel werden entlang realistischer Prüfaufgaben am FOKUS V2X Prüfstand validiert.

Voraussetzungen

  • Umfassende JAVA-Kenntnisse (Grundkenntnisse reichen nicht aus!)
  • Erfahrung in der Entwicklung verteilter Systeme mit Java
  • Erweiterte praktische Programmier- und Projekterfahrung
  • Interesse an der Einarbeitung in neue Technologien (TTCN-3, FOKUS V2X Prüfstand)

Weitere Informationen

Graphische Darstellung von werkzeugübergreifenden Relationen in einem Traceability-Framework

Der Begriff Traceability-Management bzw. Abhängigkeitsmanagement beschreibt Techniken, mit denen sich Abhängigkeiten bzw. Relationen zwischen Entwicklungsartefakten dokumentieren, visualisieren und navigieren lassen. Ein typisches Beispiel hierfür sind die Abhängigkeiten zwischen Anforderungen aus dem Anforderungsmanagement und Testfällen aus dem Testmanagement. Werden die Entwicklungsartefakte in ein und demselben Entwicklungswerkzeug verwaltet, lässt sich ein Abhängigkeitsmanagement i.d.R. einfach realisieren. Die Daten und ihre Relationen liegen in einem Werkzeug und demselben Format vor, sodass sie sich mit vertretbarem Aufwand auswerten lassen. Schwieriger wird ein solches Abhängigkeitsmanagement, wenn die Abhängigkeiten werkzeugübergreifend erfasst werden müssen. Hierfür werden i.d.R. spezielle Traceability-Management-Frameworks verwendet, die als technische Basis werkzeugübergreifende Relationen erfassen, verwalten und speichern können. Im Rahmen unser Forschungsprojekte haben wir mit RiskTest ein solches Framework entwickelt welches speziell auf ein Abhängigkeitsmanagement für den risikobasierten Test in der IT-Sicherheit zugeschnitten ist.

Problemstellung

Die Anzahl der Entwicklungsartefakte und ihrer Abhängigkeiten können bei industriellen Testprozessen in die tausende gehen. Für die Verwaltung der Abhängigkeiten ist sowohl ein Blick auf einzelne Relationen und Artefakte wie auch die Navigation durch das gesamte Abhängigkeitsnetz notwendig. Zu diesem Zweck müssen interaktive Benutzerschnittstellen geschaffen werden, die einen sinnvollen Überblick über eine größere Menge von Relationen erlauben und trotzdem eine einfache Navigation zwischen den Artefakten ermöglichen. Hierfür kommen verschiedene Darstellungsformen genutzt werden (Bäume, hyperbolische Bäume, Tabellen etc.).

Ziel

Ziel der Arbeit ist die Entwicklung von Darstellungskonzepten, Layouts und Benutzerschnittstellen, mit denen sich eine größere Anzahl von Relationen zwischen den Artefakten eines Entwicklungsprozesses effektiv und übersichtlich darstellen, ändern und navigieren lassen. Für die Darstellung und Navigation soll eine graphische Benutzeroberfläche realisiert werden, die sich in das RiskTest-Framework und seine Schnittstellen integriert. Dabei soll zuerst untersucht werden, welche Darstellungsform bzw. welches Layout geeignet ist, die typischen Nutzerinteraktionen des RiskTest-Frameworks bestmöglich zu unterstützen. RiskTest selber benutzt Eclipse als Laufzeit und Integrationsumgebung, sodass die Benutzeroberfläche sich in Eclipse und die dort vorgesehenen Darstellungs- und Interaktionskonzepte integrieren soll.

Vorgehen

Zu Beginn der Arbeit sollte sich ein Überblick über bestehende Ansätze, Bibliotheken und Frameworks zur Darstellung von graphartigen Strukturen verschafft werden. Ausgehend von den typischen Interaktionsszenarien des RiskTest-Frameworks (RiskTest Anwendungsfälle) soll eine Auswahl geeigneter Darstellungskonzepte identifiziert werden, die dann als Benutzeroberfläche für RiskTest implementiert werden sollen. Für die Implementierung sollen möglichst quelloffene und frei verfügbare Bibliotheken verwendet werden. Die Benutzeroberfläche soll am Ende entlang gängiger Qualitätskriterien für Benutzerschnittstellen validiert werden.

Voraussetzungen

  • Umfassende JAVA-Kenntnisse
  • Erfahrung in der Entwicklung von Eclipse-Plugins
  • Interesse an der Einarbeitung in neue Technologien

Weitere Informationen

  • Thema ist geeignet für Bachelor Arbeiten
  • Der Ansprechpartner ist Jürgen Großmann

Risikobasierte Selektion und Priorisierung von Sicherheitstests

Informationsverarbeitende Systeme sind zunehmend vernetzt, heterogen und überschreiten sowohl organisatorische als auch geographische Grenze. Sie stellen aufgrund ihrer Komplexität und ihrer Bedeutung etwa in wirtschaftlicher Hinsicht eine sicherheitspolitische Herausforderung dar. Perfekte Sicherheit lässt sich mit praktikablem Aufwand in der Regel nicht erzielen – es bleiben zumindest Restrisiken. Um dennoch Vertrauen zu schaffen, sollte für kritische Systeme zumindest eine Risikoanalyse durchgeführt werden. Damit können bestehende Risiken aufgedeckt sowie offen kommuniziert werden und es besteht die Möglichkeit, gezielte Maßnahmen zur Verringerung von als zu hoch eingestuften Risiken zu ergreifen.

Problemstellung

Stimmige und umfassende Risikoanalysen für komplexe informationsverarbeitende Systeme durchzuführen ist keine triviale Aufgabe. Eine Möglichkeit, um verlässliche und objektive Ergebnisse zu erhalten, ist die Durchführung von Sicherheitstests. Anders als bei funktionalen Tests wird dabei oft ein negatives Testen erforderlich, um auf ungewolltes Verhalten prüfen zu können. Der Aufwand kann dabei erheblich sein – es wird nicht eine begrenzte Spezifikation von gewünschter Funktionalität getestet, sondern deren im Allgemeinen unbegrenztes Komplement. Wird an den falschen Stellen mit ungeeigneten Testfällen angesetzt, so entstehen unnötige Kosten, ohne dass dies bei der Risikoanalyse helfen würde.

Ziel

Im Rahmen der Arbeit sollen Konzepte und Tools entwickelt werden, mit denen die vorläufigen Ergebnisse einer Risikoanalyse dazu genutzt werden, um die verwundbaren Stellen und möglich erscheinenden Angriffsszenarien zu identifizieren und zu priorisieren, für die sich ein intensives Sicherheitstesten besonders lohnen würde, um mit begrenztem Testaufwand ein möglichst präzises und vollständiges Risikobild zu erhalten.

Vorgehen

Beginnend mit einer Analyse zum Stand der Forschung sollen konkrete Konzepte entwickelt werden, um ausgehend von Risiko-Graphen Priorisierungen für das Sicherheitstesten vornehmen zu können. Konkret sollen diese Konzepte dann in einem benutzerfreundlichen Tool implementiert werden, welches mit Threat-Diagrams der CORAS-Methode zur Risikoanalyse als Eingabe arbeitet. Dieses Tool soll dann in Fallstudien im Rahmen des Forschungsprojekts RASEN eingesetzt und erprobt werden.

Voraussetzungen

  • Mathematisches Verständnis (Kenntnisse in Graphen- und Wahrscheinlichkeitstheorie sind vorteilhaft)
  • Gute Programmierfähigkeiten (C# oder JAVA), Interesse an IT-Sicherheit
  • Englischkenntnisse und die Motivation, in einem internationalen Forschungsprojekt mitzuarbeiten

Weitere Informationen