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