Qualit¨atssicherung in der Softwareentwicklung
Sandra Fruhmann und Stefan Tiran
Institut f¨ur Softwaretechnologie TU Graz
8. Mai 2012
Inhalt
1 Versionschaos?
2 Beispiel
3 Workflow JMLUnitNG
Versionschaos?
3 verschiedene JML-Versionen Was sind die Unterschiede?
Es folgt eine kleine Gegen¨uberstellung
Common JML Tools
Vorteile
Unterst¨utzt verschachtelte Quantoren Unterst¨utzt Interface-Spezifikation mit Modell-Variablen
Unterst¨utzt Testdatengenerierung (JMLUnitNG)
Nachteile
Installationsprogramm unterst¨utzt nur Java 1.4 H¨andische Installation unter Java >1.4
Unterst¨utzt keine Generics Eclipse-Plugin nur f¨ur Eclipse 3.0
JML4c
Vorteile
Keine Installation erforderlich Unterst¨utzt Generics
Unterst¨utzt Testdatengenerierung (JMLUnitNG)
Nachteile
Unterst¨utzt nur bedingt verschachtelte Quantoren Unterst¨utzt keine Interface-Spezifikation mit Modell-Variablen
Probleme bei Fehlerausgabe
OpenJML
Vorteile
Keine Installation erforderlich Unterst¨utzt Java 7
Unterst¨utzt Generics
Unterst¨utzt Spezifikation abstrakter Klassen mit Modell-Variablen
Eclipse-Plugin verf¨ugbar
Nachteile
Unterst¨utzt keine verschachtelte Quantoren Unterst¨utzt keine Testdatengenerierung
Beispiel Car-Alarm System
T¨ur ¨offnen T¨ur schließen Aufsperren Zusperren
Zustandsdiagramm
Ausf¨ uhrung von JMLUnitNG mit jml4c
java -jar jml4c.jar -cp ”jml4c.jar;.” *.java java -jar jmlunitng.jar TestClass.java Anpassung der Strategien
javac -cp ”jml4c.jar;jmlunitng.jar;..\.” *.java java -cp ”jmlunitng.jar;jml4rt.jar;..\.”
OurClass JML Test