Suche

Seminar: Automatisierte Entwurfsmethoden für die Qualitätssicherung von Softwaresystemen (Moderne Entwurfsmethoden für Innovative Softwaresysteme)


Dozent(in): Hella Seebach, Benedikt Eberhardinger, Alexander Schiendorfer
Termin: Vorbesprechung: Di., 14.10.2014, 12:00 - 12:45, Ort: (3018 N)
Gebäude/Raum: 3018 N
Ansprechpartner: Hella Seebach, Benedikt Eberhardinger
Anmeldung: Anmeldung über Digicampus

Inhalt der Lehrveranstaltung

Software wird immer komplizierter - entsprechend steigt auch der Konstruktionsaufwand. Moderne Entwurfsmethoden in der Softwaretechnik versuchen, der Komplexität mit innovativen Konzepten Herr zu werden. Beispiele sind grafische Modellierungssprachen oder neue Programmiersprachen und Frameworks, aber auch Analysewerkzeuge, die frühzeitig im Entwicklungsprozess die Qualität der Software sicherstellen sollen.

Im Seminar werden verschiedene interessante Ansätze, Techniken und Tools herausgegriffen und praxisbezogen vorgestellt.

Anforderungen

  • Selbständiges Einarbeiten in das Thema anhand der vorhanden Literatur und Dokumentation
  • Ausarbeitung eines Überblicks über Konzepte und Techniken des Themas (ca. 5 Seiten schriftliche Dokumentation)
  • Ausarbeitung eines mit dem/der Betreuer/Betreuerin Beispiels welche die Fähigkeiten des Frameworks zeigt (ca. 10 Seiten schriftliche Dokumentation)
  • Ausarbeitung soll im LNCS Format in Form einer wissenschafltichen Arbeit erfolgen
  • Vorstellung des Frameworks anhand des entwickelten Beispiels (30 min. Vortrag + 10 min. Q&A)
  • Aktive Teilnahme an den Vorträgen der anderen Teilnehmer

Anmeldung und Ablauf

Anmeldungen bitte in Digicampus, die Themenzuweisung erfolgt in der Vorbesprechung.

Vorbesprechung:

  • Termin: Dienstag, 14.10. um 12:00 in Raum 3018N (Anwesenheitspflicht).
  • Dauer: 15-20 Minuten, Inhalt: Organisatorisches

Ansprechpartnerin

Hella Seebach Tel: 0821 / 598 - 2176, Raum 3041 N

Themen

Grundsätzlich sind wir für weitere Themenvorschläge offen. Kriterien für gute Themen sind:

  • Neue, innovative Konzepte werden aufgezeigt
  • Blick über den Tellerrand der Standard-Technologien
  • Erfolgreicher Einsatz in der Praxis

Microsoft Spec Explorer

Eine Erweitungerung der MS Entwicklungsplattform Visual Studio, welche modellbasiertes Testen unterstützt. Es ist in diesem Framework möglich Modelle bzgl. des Systemverhaltens zu spezifizieren und zu analysieren (u.a. durch graphische Tools), weiterhin können die Modelle zum Erzeugen von Testfällen
verwendet werden.

JMLUnitNG / OpenJML

JMLUnitNG ist ein Framework der University of Washington Tacoma, welches zum Erzeugen und Ausführen von Unit-Tests in Java genutzt wird. Die Testfälle können dabei automatisch aus der JML-Annotation der Java-Klassen erzeugt werden.

JTorX

JTorX ist ein Framework zum modellbasierten Testen der Universität Twente, welches u.a. auf Basis von Labelled Transition Systems automatisch Testfälle
für ein abstraktes Programm erzeugt. Eine Besonderheit von JTorX ist, dass es das Modell während der Laufzeit stepwise ausführt und somit auch mit unendlichen
Zustandsräumen zurechtkommt.

EvoSuite

EvoSuite ist ein Framework zum autmatisierten Unit-Testen von Java-Klassen der Universtiy of Sheffield und der Universitiät des Saarlands. EvoSuite nutzt
dazu Techniken des search-based Testing um eine komplette Testsuite für eine Software zu erzeugen. Hierzu werden Annotations im Java-Code in Verbindung
mit unterschiedlichen Coverage-Metriken als Optimierungskriterium für die evolutionären Algorithmen zu Testgenerierung genutzt.

ART: Adaptive Random Testing

Testfallgenerierung und die Auswahl geeigneter Testfälle ist schwierig. 
Systematisches Testen ist sehr aufwendig, jedoch ist die Testabdeckung und Testfallauswahl einfacher. Random Testing versucht Testfälle aus Modellen / Requirements automatisch zu generieren. Dies führt jedoch meist zu einer viel zu großen Menge an Testfällen und interessante Testfäller werden nicht erreicht. Adaptive Random Testing (ART) versucht diesen Nachteil  auzumerzen, indem es ausgehend von einem existierendn Tesfall interessante weiter Inputs analysiert. Für "interessant" können unterschiedliche Metriken angegeben werden.  

Randoop

Randoop ist ein automatischer Random Testfallgenerator für Unit-Tests in Java und wurde zusammen von Google und dem MIT entwickelt. Randoop erzeugt Unit-Tests indem es Feedback aus der Ausführung von Testfällen nutzt, um neue Testfälle zu erzeugen. Die Kombination von Random Testing Techniken mit den Ergebnissen von Testfällen zur Laufzeit führt zu einer hohen Effizienz der Testfallerzeugung. Randoop ist u.a. bei ABB und Microsoft im Einsatz.

Microsoft Pex und Holes

Microsoft Pex ist ein Testtool, welches systematische Codeanalyse anbietet und Grenzbedingungen sucht. Dazu werden Exceptions markiert und Assertion-Fehler protokolliert. Pex erlaubt paramterisiertes Unit-Testen, eine Erweiterung von Unit-Tests welche die Verwaltungskosten für Testfälle reduziert. Ein parameterisierter Unit-Test ist einfach eine Methode, die Parameter entgegennimmt, die zu testende Methode aufruft und Assertions setzt. Pex versucht, automatisch interessante Test-Inputs zu finden, die möglicherweise zu Programmabstürzen und Assertion-Verletzungen führen. Projektwebseite

Uppaal TRON

Uppaal ist eine integrierte Tool-Umgebung für die Modellierung, Validierung und Verifikation von Echtzeitsystemen, die als Netze von gezeiteten Automaten modelliert werden. Zudem sind gewisse Datentypen verfügbar (beschränkte Integer, Arrays, etc.). Uppaal TRON ist ein Test-Tool, basierend auf der Uppaal engine, welches sich für Blackbox-Konformanztesten von gezeiteten Systemen eignet. Hauptsächlich liegt der Fokus auf Embedded Software, wie sie in zahlreichen Controllern gefunden wird. Link

PyModel

PyModel ist ein Open-Source-Modell-basiertes Test-Framework in Python. Ein Modell erzeugt Testfälle nach Bedarf und überprüft auch die Testergebnisse. In PyModel gibt es Modelle und Testskripts für Netzwerk-Sockets, ein Kommunikationsprotokoll, Embedded-Controller, einige Datenstrukturen, eine Multithread-Anwendung und eine Web-Anwendung. PyModel kann Modelle mit Komposition zu programmierten Strategien kombinieren, Tests mit programmierten Szenarien ausführen und die Testabdeckung analysieren. Link

Graphwalker

ist ein modellbasiertes Testtool, geschrieben in Java. Es liest Modelle in Form von endlichen Zustandsdiagrammen oder gerichteten Graphen und erzeugt sowohl online als auch offline-Testfälle aus diesen Modellen. Link

JUMBL

Die Java Usage Model Builder Library (JUMBL) ist eine Sammlung von Kommandozeilen und GUI-Tools, welche automatisches, modellbasiertes und statistisches Testen von Systemen ermöglicht. Link

ModelJUnit

ModelJUnit ist eine Java-Bibliothek, die JUnit um modellbasiertes Testen erweitert. Modelle sind erweiterte Zustandsautomaten, die in einer bekannten und ausdrucksstarke Sprache geschrieben werden: Java. Mit ModelJUnit können endliche Zustandsmaschinen (FSM) oder erweiterte endliche Zustandsmaschinen (EFSM) als Java-Klassen geschrieben, um danach Tests aus diesen Modellen zu generieren und verschiedene Metriken zu messen. Die Prinzipien, die hinter ModelJUnit stehen, werden in den Abschnitten 5.2 und 5.3 des Buches "Praxis Model-Based Testing" beschrieben. Link


weitere Informationen zu der Lehrveranstaltung:

empfohlenes Studiensemester der Lehrveranstaltung: Bachelor
Fachrichtung Lehrveranstaltung: Bachelor Studiengänge Informatik
Nummer der Lehrveranstaltung: 07383
Dauer der Lehrveranstaltung: keine Angabe
Typ der Lehrveranstaltung: S - Seminar
Leistungspunkte: 4 LP
Prüfung: Referat / Hausarbeit
Semester: WS 2014/15