Java Kompaktkurs

Download Report

Transcript Java Kompaktkurs

© 2007, Rainer Schmidberger, ISTE
MOTES 2007
Bremen, 27.09.2007
Testresultatsvergleich mit
UML-Analysemodellen
und OCL-Ausdrücken
Rainer Schmidberger, Sascha Biermann
Universität Stuttgart
Institut für Softwaretechnologie, Abt. Software Engineering
[email protected]
se
© 2007, Rainer Schmidberger, ISTE
MOTES 2007, Bremen
17.07.2015
Testresultatsvergleich mit UML-Analysemodellen und OCL-Ausdrücken
se
Motivation anhand eines Beispiels
Kurzbeschreibung der Methode
Kurze OCL-Einführung
Beschreibung der Methode und des Werkzeugs
Grundidee: Sollresultat als OCL-Ausdruck
Systemarchitektur
Eclipse-Plugin zur Testdurchführung
Bewertung
 Durchgeführte Evaluation
 Zusammenfassung




Folie 2 / 12
MOTES 2007, Bremen
17.07.2015
© 2007, Rainer Schmidberger, ISTE
Motivation anhand eines Beispiels
se
 Es soll ein Seminarverwaltungssystem getestet
werden:
Testfallnr.:
4711
Beschreibung:
Prüfung auf korrektes Nachrücken aus
der Warteliste
Vorbedingung:
„Liese Testperson“ ist bei mehreren „Excel
Grundkurs“-Veranstaltungen auf
Warteliste gebucht.
Aktion:
Ein Platz wird für die Veranstaltung am
17.10.2007 frei; „Liese Testperson“ rückt
nach.
Sollresultat:
„Liese Testperson“ ist in dieser
Veranstaltung auf der Teilnehmerliste und
in allen anderen Veranstaltungen des
Typs von der Warteliste entfernt worden.
 Die Prüfung derartiger Sollresultate ist aufwändig, da innerhalb
der Anwendung an mehreren Stellen geprüft werden muss!
Folie 3 / 12
MOTES 2007, Bremen
17.07.2015
© 2007, Rainer Schmidberger, ISTE
Kurzbeschreibung der Methode
se
Anwendungsbereich
Systemtest bei Systemen, die mit UML-Klassendiagrammen modelliert wurden
Modell
UML-Klassendiagramm (z.B. Domänenmodell der
Spezifikation), OCL-Ausdrücke
Modellautor
Fachexperte (aber: es sind OCL-Kenntnisse erforderlich!)
Aufwand
 Je Testfall wird das Sollresultat durch einen OCLAusdruck beschrieben
 Erweiterung des SUT um einen Konnektor
Einsatzbereich
und Nutzen
Testdurchführung, automatischer Resultatsvergleich
Schwächen
 Veränderung des SUT ist erforderlich
 Keine vollständige Automatisierung, da die
Benutzeraktion nicht behandelt wird
Gesuchte
Fehlerwirkung
Falsch abgespeicherte Daten
Evaluation
Implementierung als Eclipse-Plugin, Einsatz in einem
kommerziellen J2EE System, Befragung von drei
Fachexperten
Folie 4 / 12
MOTES 2007, Bremen
17.07.2015
© 2007, Rainer Schmidberger, ISTE
OCL
 Die Object Constraint Language ist Teil von UML 2.0
 OCL ist eine formale, prädikatenlogikbasierte Sprache
zur Ergänzung von UML-Modellen
 OCL Ausdrücke sind deklarativ, d.h. sie ändern den
Systemzustand nicht
 OCL dient zur Formulierung von Zusicherungen
Invarianten von Klassen
Vor- und Nachbedingungen von Methoden
 OCL ist recht mächtig:
Auswertung von Attributen und Assoziationen
(Kollektionen)
Es stehen viele Funktionen — insbesondere zur
Auswertung der Kollektionen — zur Verfügung.
 Aber: OCL ist in der Praxis wenig verbreitet
se
Folie 5 / 12
 Ausgangspunkt: Das Klassendiagramm der Analyse
Person
id
name
vorname
MOTES 2007, Bremen
Anmeldung
1
0..*
status
1
0..*
Veranstaltung
datum
maxTln
1
0..*
Typ
nummer
titel
 OCL-Sollresultat zum Testfall:
17.07.2015
© 2007, Rainer Schmidberger, ISTE
Sollresultat als OCL-Ausdruck
se
context Veranstaltung
inv: typ.titel = 'Excel Grundkurs' and
datum = '17.10.2007' and
anmeldung->exists(
person.name ='Testperson' and
person.vorname = 'Liese' and
status = EINGELADEN) and
not typ.veranstaltung.anmeldung->exists(
person.name = 'Testperson' and
person.vorname = 'Liese' and
status = AUF_WARTELISTE)
 Kontextueller Bezug
 Person ist auf der
Teilnehmerliste
 Weitere
Wartelistenplätze
der Person sind
entfernt
Folie 6 / 12
Systemarchitektur
MOTES 2007, Bremen
17.07.2015
© 2007, Rainer Schmidberger, ISTE
Konnektor
-Implantat
OCLParser
OCLAuswertung
SUT
Konnektor
Dresden OCL Toolkit
Eclpse-Plugin
RMI
 Parser und Auswertung stammen aus dem Dresden
OCL Toolkit
 Der Konnektor bildet die Objekte des Domänenmodells auf physische Repräsentationen im SUT ab.
 Für den Zugriff in das Domänenmodell des SUT wird
ein Implantat, also für den Test zusätzlich benötigter
Programmcode, eingefügt.
se
Folie 7 / 12
 Es wurde ein Eclipse-Plugin implementiert, das die
Testfälle verwaltet
 Direkte Ausführung des Sollresultat-OCL-Ausdrucks
MOTES 2007, Bremen
17.07.2015
© 2007, Rainer Schmidberger, ISTE
Testdurchführung
se
1
Vorbedingung
herbeiführen
2
Aktion
durchführen
3
Sollresultate
prüfen
manuell
automatisch
Folie 8 / 12
MOTES 2007, Bremen
17.07.2015
© 2007, Rainer Schmidberger, ISTE
Bewertung
 Sollresultate müssen sich als gespeicherte Daten
manifestieren.
 Ein UML-Klassendiagramm des Domänenmodells muss
vorliegen.
 In der Architektur des SUT muss das Domänenmodell
präsent und durch einfache Mittel erreichbar sein.
 Die zu prüfenden Datenmengen dürfen nicht zu groß
werden.
 Die Sollresultate der Testfälle eines Hochschulprojekts
konnten etwa zu 30% als OCL-Ausdruck beschrieben
werden.
 Auch recht komplexe Ausdrücke können vergleichsweise anschaulich formuliert werden (z.B. paarweiser
Vergleich).
se
Folie 9 / 12
MOTES 2007, Bremen
17.07.2015
© 2007, Rainer Schmidberger, ISTE
Evaluation
 Betrachtet wurde ein kommerzielles Informationssystem,
das in Java implementiert war und
dessen internes Domänenmodell nahezu vollständig
über Reflektion erreichbar war.
 Bei etwa zehn Testfällen wurden die Sollresultate als
OCL-Ausdruck formuliert.
 Drei Fachexperten wurden zur Praxistauglichkeit der
Methode befragt.
Die Fachexperten kannten das Domänenmodell,
aber hatten keinerlei Kenntnis von OCL.
Den Fachexperten wurden die Testfälle präsentiert,
deren Sollresultate einmal natürlichsprachlich und
einmal mit OCL beschrieben waren.
se
Folie 10 / 12
MOTES 2007, Bremen
17.07.2015
© 2007, Rainer Schmidberger, ISTE
Resultate der Evaluation
 Der Aufwand zur Implementierung des KonnektorImplantats war akzeptabel (etwa ein Tag).
 Insgesamt wurden die OCL-Ausdrücke als
„verständlich“ und überprüfbar bezeichnet.
 Positiv wurde bewertet, dass die Attribute und
Assoziationsbezeichner genau der Begriffswelt der
Domäne entsprechen.
 Ein weiterer Vorteil wurde darin gesehen, dass die
formale Beschreibung der Resultate zu mehr Präzision
und Systematik beim Erstellen der Testfälle führt.
 Als Mangel wurde genannt, dass die Benutzeraktion
noch von Hand ausgeführt werden musste, da ja nur
die Prüfung der Vorbedingung und der
Resultatsvergleich automatisiert waren.
se
Folie 11 / 12
MOTES 2007, Bremen
17.07.2015
© 2007, Rainer Schmidberger, ISTE
Zusammenfassung
 OCL eignet sich zur automatischen Prüfung von
Sollresultaten, die auf gespeicherten Daten basieren.
Für ein Hochschulprojekt konnten etwa 30% der
Sollresultate als OCL-Ausdruck formuliert werden.
Die Bezeichner in den OCL-Ausdrücken stammen
aus der Anwendungsdomäne.
 Ein Prototyp wurde als Eclipse-Plugin implementiert
und an einem kommerziellen SUT evaluiert.
 Die freien OCL-Werkzeuge haben eine hohe Reife und
können verwendet werden.
 Das Verfahren lässt sich in bestehende Testprozesse
integrieren.
se
 Vielen Dank für Ihre Aufmerksamkeit!
Folie 12 / 12