Testfallgenerierung aus Statecharts und Interaktionsdiagrammen

Ähnliche Dokumente
Ein UML-basierter Testansatz zum Klassen- und Integrationstest objektorientierter Systeme

Strategien zur Testfallgenerierung aus UML-Zustandsautomaten

Übungen Softwaretechnik I

Modellierung mit UML

So testen Sie mit einem visuellen Vertrag

OOA-Dynamische Konzepte

Modellbasierter Test mit der UML. Vortragender: Lars Westmeier Seminar: Spezifikationsbasierter Softwaretest

Modellbasiertes manuelles Testen: Techniken und Tücken

Analyse und Design mituml2

Taxi System. CheckUp Tutorial Version 4.3 Institut für Softwaretechnik und interaktive Systeme

Analyse und Design mituml2.1

Erfahrungen mit der Einführung von modellbasierter Testspezifikation, Implementierung und Generierung bei einem deutschen Automotive OEM

Analyse und Design mit U ML 2.3

Media Engineering. Objektorientierte Modellierung. Verhaltensmodellierung. R. Weller University of Bremen, Germany cgvr.cs.uni-bremen.

UML-basierter Klassen- und Integrationstest objektorientierter Programme

Sequenz- und Kommunikationsdiagrammen. Systemmodellierung mit SysML von Michel Manthey

Modellbasiertes Testen mit UTP

Qualitätssicherung von Software

Techniken der Projektentwicklungen

Modellieren mit der Unified Modeling Language: Verhaltensdiagramme. 18. November 2014

Software Engineering in der Praxis

Objektorientierte Systementwicklung

Model Querys zur Überprüfung von sicherheitsrelevanten Eigenschaften

Model based Testing of Embedded Systems. Presenter: Daniel Lorenz

Specifying Patterns for Dynamic Pattern Instance Recognition with UML 2.0 Sequence Diagrams. Lothar Wendehals. Universität Paderborn

Qualitätssicherung von Software

Software Engineering in der Praxis

Software-Engineering im Sommersemester 2014

UML / Fujaba. Generierung von Java-Quellcode aus UML-Diagrammen. Marcel Friedrich

Software Engineering in der Praxis

Klausur. Softwareentwurf. 22. März 2011 Bearbeitungszeit: 120 Minuten

Objektorientierte Analyse (OOA) Übersicht

INSPIRE - Modellierung

NACHRICHTENTECHNISCHER SYSTEME

UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language

Parameterübergabemechanismen für den Methodenaufruf

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H)

Software Engineering, SoSe 07, WSI, D. Huson, May 7,

Modellierung CORBA-basierter Anwendungssysteme mit der UML

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Verifizierende Testverfahren

FACHHOCHSCHULE MANNHEIM

Formalisierung der. mit visuellen Kontrakten und deren. Gregor Engels, Baris Güldali, Stefan Sauer

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

Harald Störrle UML 2 für Studenten

Inhalt. 1 Einführung 17. Strukturdiagramme. 2 Klassendiagramm 37

Modellbasierte Softwareentwicklung

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung Reisebeschreibung Zielpublikum Fallbeispiel...

Übungen zur Softwaretechnik

Vom Testkonzept zu JUnit

Christoph Kecher, Alexander Salvanos UML 2.5. Das umfassende Handbuch. Rheinwerk. Computing

Praxis der Softwareentwicklung

Vorlesung Software Engineering I

Unified Modelling Language

Re-Engineering: Test-First-Ansatz. Dr. Thorsten Arendt Marburg, 17. Dezember 2015

Jason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel

FACHHOCHSCHULE MANNHEIM

Analyse der Klasse Konto

Modellbasiertes Testen auf Basis des fundamentalen Testprozesses

Java-Grundkurs für Wirtschaftsinformatiker

Eclipse Modeling Framework Modellgetriebene Softwareentwicklung Prof. Andreas Schmidt

Universität Karlsruhe (TH)

Softwaretechnik SS 2006

Softwaretechnologie für Fortgeschrittene Wohce 4 Modellierung UML

Kapitel 2 - Die Definitionsphase

Softwaretechnik 2015/2016

Softwaretechnik SS Vorlesungseinheit

Klausur. Softwareentwurf. 04. Februar 2013 Bearbeitungszeit: 120 Minuten

Softwaretechnik. Kapitel 11 : Zustandsdiagramme. Statecharts / State Machines Historisches. State Machines in UML Verwendung in OO

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung. Grundkurs C++

7. Konkretisierungen im Feindesign. 7.1 Zustandsdiagramme 7.2 Object Constraint Language

UML. Weiteres Vorgehen im Projekt

4 Grundlagen von SQS-TEST/Professional New Line

Einsatz automatischer Testdatengenerierung im modellbasierten Test

Sequenzdiagramme. Lebenslinie. Kathrin Gaißer, Jörg Depner Didaktik der Informatik

4. Übung zu Software Engineering

Software Engineering Interaktionsdiagramme

Enterprise JavaBeans Überblick: 12. Session Facade Einleitung 12.2 Problem 12.3 Lösung. Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 460

Simulation und Verikation von UML-basierten Stellwerken

Inhalt. TEIL I Grundlagen. Einleitung 15

Inhaltsverzeichnis. Teil I Einführung 13. Teil II Struktur 41. Vorwort 11

UML - Unified Modeling Language

Inhaltsverzeichnis 1. Objektorientierung: Ein Einstieg 2. Objekte, Klassen, Kapselung

Analyse und Konzept zur Verbesserung der statischen Fehlereingrenzung Masterarbeit von Lars Gohlke

Requirements Engineering I

Software Engineering in der Praxis

Übersicht. Vorstellung des OO-Paradigmas

Interaktionsdiagramme in UML

Praxis der Softwareentwicklung WS 2015/16

Praxis der Softwareentwicklung

Inhaltsverzeichnis. Teil 1 Grundlagen der Objektorientierung 29

Integration von Model-Driven Development und formaler Verfikation in den Softwareentwicklungsprozess

Übung 2: Besprechung. Anil Kandrical Reinhard Stoiber. Requirement Engineering 1 HS 08

Formale Verifikation von Software. 10. Juli 2013

Modellierung von Echtzeitsystemen mit UML

Übungsaufgaben UML Zertifizierung Fundamental-Level

Statecharts in UML Grundlagen und Übersetzung in Colored Petri Nets

Einführung in die objektorientierte Programmierung

Transkript:

Testfallgenerierung aus Statecharts und Interaktionsdiagrammen Dehla Sokenou TU Berlin Softwaretechnik Motivation Warum Testen mit Hilfe von UML? UML verbreitete Spezifikationssprache in der Objektorientierung Früher Beginn der Testaktivitäten Nutzung spezifikationsbasierter Testfälle zur Aufdeckung von Fehlern zwischen Modellierung und Implementierung 2

Motivation Interaktionsdiagramme beschreiben (mögliche) Nachrichtenfolgen Scheinbar waren die modellierten Szenarien dem Entwickler besonders wichtig Es fehlt an Sollwerten Semantik (besser in UML 2.0) Aber: Gut geeignet für Integrationstest Kommunikation zwischen Objekten Kombination mit anderen Modellen kann Probleme lösen 3 Testfälle aus Statecharts Einige Ansätze zur Testfallgenerierung aus Statecharts Probleme Statechart beschreiben Objektverhalten Klassentest Meist vollständige Überdeckung angestrebt Meist gleichmäßige Überdeckung Auswahl der Testfälle? 4

Testfälle aus Interaktionsdiagrammen Einige Ansätze zur Testfallgenerierung aus Interaktionsdiagrammen Integrationstest Probleme Vollständigkeit Sollwerte Initialisierung von Szenarien Lösung meist Anreicherung von Diagrammen 5 Lösung Kombination Statechart, Interaktionsdiagramm und OCL-Constraints Grundidee Reihenfolge der Methodenaufrufe aus Interaktionsdiagramm Initialisierung / Fehlerfälle aus Statecharts Sollwerte aus Statecharts und OCL-Constraints 6

Grundlagen Basis ist UML 2.0 Sequenzdiagramme Neue Operatoren (z.b. alt, opt, loop, par) Protocol State Machines OCL-Constraints Zusicherungen (Vor-, Nachbedingungen, Klassenund Zustandsinvarianten) Semantik Kombination Statecharts - OCL-Constraints 7 Ein Beispiel Bankkonto :Bank a:account b:account activate open active blocked block d transfer :Bank :Account 8

Klassentest Am Szenario beteiligte Objekt einzeln betrachtet Methodensequenz hier: Objekt vom Typ Konto Methodensequenz: ; Besondere Bedeutung Operatoren als Methodensequenzspezifikation :Bank :Account 9 Integrationstest Betrachtung Gesamtszenario Provozierung der modellierten Szenarien Szenarien meist nicht vollständig modelliert Initialisierung Jedes Szenarium definiert Menge von Testfällen Einzelne Testfälle unterscheiden sich in Startzuständen der beteiligten Objekte Betrachtung von Normal- und Fehlerfällen 10

Initialisierung von Szenarien Identifikation aller Zustände in Statecharts, in denen Szenario möglich (Normalfälle) open activate active blocked block d :Bank a:account transfer b:account 11 Initialisierung von Szenarien Identifikation aller Zustände in Statecharts, in denen Szenario möglich (Normalfälle) open activate active blocked block d :Bank a:account transfer b:account 12

Initialisierung von Szenarien Initialisierung bei Methodensequenzen Modelchecking (Trap-Property) activate open active blocked block :Bank :Account d 13 Initialisierung von Szenarien Für Szenario Überweisung 2 Testfälle - Initialisierung Objekt a: new; activate Initialisierung Objekt b: new; activate Objekt Bank: transfer - Initialisierung Objekt a: new; activate Initialisierung Objekt b: new; activate; block Bank-Objekt: transfer Für Szenario Schließung 1 Testfall - Initialisierung Account-Objekt a: new; activate; block Bank-Objekt: 14

Fehlerfälle Konstruktion von Zuständen, in denen Szenario nicht möglich ist (Fehlerfälle) activate open active blocked block d :Bank a:account transfer b:account 15 Testorakel Generierung ausführbarer Statecharts (als Object Teams) Eventbasierte Berechnung der Folgezustände Auswertung zur Laufzeit, dadurch keine vorzeitige Sollwertberechnung für einzelnen Testfall nötig Aspektorientierte Einbindung in zu testendes System zu testendes Objekt benachrichtigt kontrolliert Statechart 16

Testorakel Statechart-Eigenschaften Hierarchie, Historie, Parallelität und Nichtdeterminismus unterstützt Kombination mit OCL-Constraints Testorakel unabhängig von Testfallgenerierung Keine Veränderung des zu testenden Systems Keine Änderung Quellcode Kein Neucompilieren 17 Voraussetzungen Modelle müssen vorhanden sein Konsistenz zwischen einzelnen Modellen und zwischen Modell und Implementierung Namen Mapping zwischen abstrakten Statechart-Zuständen und konkreten Objektzuständen (Zustandsinvariante) Beschränkung auf Protocol State Machines 18

Zusammenfassung Informationen aus Statechart erhöhen Testbarkeit von Sequenzdiagrammen Initialisierung Sollwerte Keine Erweiterung der UML nötig Weitere Testfälle leicht zu spezifizieren durch Erstellen neuer Sequenzdiagramme 19 Ausblick Zur Zeit Umsetzung des vorgestellten Ansatzes Statecharts als Testorakel fast abgeschlossen Erweiterung um OCL in Arbeit Anbindung an Modelchecker zur Testfallgenerierung Weitere Modelle einbeziehen Testdaten erzeugen 20