evaluierung von verifikations- strategien für produktlinien · evaluierung von...
Post on 24-Aug-2019
224 Views
Preview:
TRANSCRIPT
Evaluierung von Verifikations-Strategien für Produktlinien
Alexander von Rhein Universität Passau
in Kooperation mit:
Sven Apel, Philipp Wendler, Hendrik Speidel, Armin Größlinger, Dirk Beyer und Franco Raimondi
Alexander von Rhein Evaluierung von Produktlinien Verifikations-Strategien
Folie - 2 FOSD Treffen 2012
Übersicht
Verifikation von Produktlinien Entspricht das Verhalten aller Produkte ihrer Spezifikation? Ansatz: Model Checking
Verifikation der gesamten Produktlinie (3 Strategien)
Produkt-basiert, Auswahl-basiert, Familien-basiert
3 Fallstudien E-mail Elevator Mine pump
Alexander von Rhein Evaluierung von Produktlinien Verifikations-Strategien
Folie - 3 FOSD Treffen 2012
Strategien: Produkt-basiert
Alexander von Rhein Evaluierung von Produktlinien Verifikations-Strategien
Folie - 4 FOSD Treffen 2012
Strategien: Auswahl-basiert
Alexander von Rhein Evaluierung von Produktlinien Verifikations-Strategien
Folie - 5 FOSD Treffen 2012
Details: Auswahl Verfahren
Single-wise Für jedes Feature: Nimm eines der kleinsten Produkte,
welches das Feature enthält Pair-wise
Für jede Kombination aus 2 Features: Nimm eines der kleinsten Produkte, welches die Kombination enthält
Three-wise Für jede Kombination aus 3 Features: Nimm eines der
kleinsten Produkte, welches die Kombination enthält
Alexander von Rhein Evaluierung von Produktlinien Verifikations-Strategien
Folie - 6 FOSD Treffen 2012
Strategien: Familien-basiert
Alexander von Rhein Evaluierung von Produktlinien Verifikations-Strategien
Folie - 7 FOSD Treffen 2012
Details: BDD-Optimierung für Familien-basierte Verifikation
[Encryption]
[Forward] [¬ Forward]
[¬ Encryption]
[Forward] [¬ Forward]
... ...
... ...
[Encryption]
[Forward] [¬ Forward]
[¬ Encryption]
[Forward] [¬ Forward]
... ...
... ...
[Encryption]
[Forward]
[¬ Encryption]
[Enc ˄ ¬Forward ˅ ¬Enc ˄ Forward]
[¬ Forward]
... ...
...
Effekt: durchschnittlich 4 mal schneller als ohne Optimierung (Speedup=alt/neu, gemessen für die Fallstudien)
Auf Basis von [Classen, ICSE 2011]
Alexander von Rhein Evaluierung von Produktlinien Verifikations-Strategien
Folie - 8 FOSD Treffen 2012
Experimente
Vergleich der Strategien auf unseren Produktlinien Welche ist die Beste?
Welche findet die meisten Defekte? Welche ist am schnellsten?
System Sprache LOC Features Spezifikationen
Produkte
E-mail Java 1233 9 9 40
C 258 9 9 40
Elevator Java 1046 6 9 20
C 877 6 6 20
Mine pump
Java 580 7 5 64
C 279 7 5 64
Testsystem
CPU Intel i7-2600 @ 3.40 GHz
Arbeitsspeicher 15 GB
OS Ubuntu 11.10
Alexander von Rhein Evaluierung von Produktlinien Verifikations-Strategien
Folie - 9 FOSD Treffen 2012
Verifikationszeit
Produkt-basiert = 100% Familien-basiert und Auswahl-basiert sind schneller als
Produkt-basiert Aber: Auswahl findet nicht alle Defekte (nächste Folie)
Alexander von Rhein Evaluierung von Produktlinien Verifikations-Strategien
Folie - 10 FOSD Treffen 2012
Verifikationszeit vs. Detektionsrate
Detektionsrate := gefundene Defekte / tatsächliche Defekte Optimal wäre: Detektionsrate > Zeit-Anteil
“Triple-wise” ist am Besten (auf diesen Fallstudien)
Alexander von Rhein Evaluierung von Produktlinien Verifikations-Strategien
Folie - 11 FOSD Treffen 2012
Effizienzfaktor
Effizienzfaktor := Detektionsrate / Zeitrate Produkt-basiert als Berechnungsbasis Effizienzfaktor = 1 => wie Produkt-basiert Effizienzfaktor > 1 => besser als Produkt-basiert
Ähnlichkeitsfaktor
Alexander von Rhein Evaluierung von Produktlinien Verifikations-Strategien
Folie - 12 FOSD Treffen 2012
Future work
Produkt
Produkt Sim
Produkt Sim
Produkt Sim
Produkt Sim
Modulgröße
Familiengröße
Auswahl- strategie
Alexander von Rhein Evaluierung von Produktlinien Verifikations-Strategien
Folie - 13 FOSD Treffen 2012
Familien-basiert ist fast immer überlegen hängt aber von der Produktlinie ab (Ähnlichkeitsgrad)
Auswahl-basiert ist zwar schneller, aber nicht effizienter!
Alexander von Rhein Evaluierung von Produktlinien Verifikations-Strategien
Folie - 14 FOSD Treffen 2012
Ähnlichkeitsgrad
Die Effizienz von Familien-basierte Verifikation schwankt je nach Produktlinie Warum ist das so? Gibt es eine “Metrik”?
Anzahl der Programmzustände hat einen großen Einfluss. Ansatz:
1. Zählen der Kernvariablen im Programmcode 2. Schätzung der Zustände für Produkte und Produktsimulator
3. 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 𝑑𝑑𝑑𝑠𝑑𝑑 = 1 − 𝑍𝑍𝑍𝑍𝑍𝑍𝑍𝑍 𝑃𝑃𝑃𝑍𝑍𝑃𝑍𝑍𝑃𝑃𝑍𝑃𝑃𝑍𝑃𝑃∑ 𝑍𝑍𝑍𝑍𝑍𝑍𝑍𝑍 𝑃𝑃𝑃𝑍𝑍𝑃𝑍𝑍
top related