Foliensatz 3.1
Bedingungsbasiertes Testen
Bedingungsüberdeckung
Bedingungsbasiertes Testen
Bedingungsüberdeckung
Einfache (oder atomare) Bedingungsüberdeckung ( C2-Überdeckung)
Idee:Zusammengesetzte Bedingungen nur einmal zu True und False auswerten ist nicht ausreichend.
( wie bsp. Zweigüberdeckung)
Teilbedingungen(atomare Prädikatterme) variieren.
Beispiel:
● if A>1 and (B=2 or C>1) and D then ... else …
●Entscheidungsprädikat: A>1 and (B=2 or C>1) and D
●Atomare Prädikatterme: A>1, B=2, C>1, D
Anderes Beispiel:
Vergleich der Zweigüberdeckung von if (a AND b AND c) {...} einer äquivalenten Konstruktion if a {if b {if c {...}}}
Einfache Bedingungsüberdeckung (C2-Test):
●Testdatenmenge T erfüllt C2-Überdeckung g.d.w. es:
−für jede Verzweigung im Programm mit zwei Ausgängen und
−für jeden Prädikatterm pdes zur Verzweigung gehörenden
Booleschen Ausdrucks
−zu jedem Wahrheitswert von p ein Testdatum t aus T gibt.
bei dessen Ausführung p diesen Wahrheitswert annimmt.
●Hinweis: Verzweigungen mit mehr als zwei Ausgängen in
äquivalentes Konstrukt mit zwei Ausgängen umformbar.
●Garantiert keine Zweigüberdeckung.
Testen beider Wahrheitswerte kompletter (zusammengesetzter) Boolescher Ausdrücke nicht garantiert.
Kann es einen C2-Testfall geben, der nicht alle Zweige testet ?
Zweig-/Bedingungsüberdeckung:
Testdatenmenge erfüllt Zweig-/ Bedingungsüberdeckung
gdw. sie C2-Überdeckung(atomare Bedingungsüberdeckung) und C1-Überdeckung(Zweigüberdeckung) erfüllt.
dadurch werden aber nicht unbedingt alle Zweigkombinationen überdeckt.
Mehrfachbedingungsüberdeckung (C3-Überdeckung)
Testdatenmenge erfüllt Mehrfachbedingungsüberdeckung g.d.w.
●für jede Verzweigung im Programm mit zwei Ausgängen und
●für zur Verzweigung gehörenden Booleschen Ausdruck
●jede mögliche Kombination der Wahrheitswerte atomarer Prädikatterme ausgeführt wird.
Also: für 2 Ausdrücke 4 Testfälle, ,3 Ausdrücke 8 Testfälle ...
()
Kombinationen aller atomarer Prädikate, bei einigermaßen komplizierten Prädikaten nicht mehr handhabbar
Minimale Mehrfachbedingungsüberdeckung
alle bis auf erste testen:
X (A>1) Y (B=0) X and Y
false false false
false true false
true false false
true true true
alle bis auf letzte testen
X (A=2) Y (C>1) X or Y
false false false
false true true
true false true
true true true
Testdatenmenge erfüllt Minimale Mehrfachbedingungsüberdeckung (C2(mM)-Überdeckung, =minimal bestimmende Mehrfachbedingungsüberdeckung ) g.d.w.:
●für jede Verzweigung im Programm mit zwei Ausgängen und
●für zur Verzweigung gehörenden Booleschen Ausdruck
●folgende Kombinationen der Wahrheitswerte der enthaltenen
atomaren Prädikatterme ausgeführt werden:
−Jede Kombination von Wahrheitswerten, für die Änderung des Wahrheitswertes eines Terms den gesamten Wahrheitswert ändert.
Man nimmt einfach ALLE Terme bei der die Änderung eines Prädikats eine Änderung des gesamten Ergebnisses zufolge hat.
Vgl. früheres Beispiel:
mit Testdaten
A=3 B=0 C=3
A=2 B=1 C=0
A=1 B=0 C=2
alle Zweige geprüft
Kompromiss zwischen C2 und C3
jedes Prädikat (egal ob atomar oder zusammengesetzt) zu True und False ausgewertet
weniger als kombinatorische Abdeckung
Idee:Zusammengesetzte Bedingungen nur einmal zu True und False auswerten ist nicht ausreichend.
( wie bsp. Zweigüberdeckung)
Teilbedingungen(atomare Prädikatterme) variieren.
Beispiel:
● if A>1 and (B=2 or C>1) and D then ... else …
●Entscheidungsprädikat: A>1 and (B=2 or C>1) and D
●Atomare Prädikatterme: A>1, B=2, C>1, D
Anderes Beispiel:
Vergleich der Zweigüberdeckung von if (a AND b AND c) {...} einer äquivalenten Konstruktion if a {if b {if c {...}}}
Einfache Bedingungsüberdeckung (C2-Test):
●Testdatenmenge T erfüllt C2-Überdeckung g.d.w. es:
−für jede Verzweigung im Programm mit zwei Ausgängen und
−für jeden Prädikatterm pdes zur Verzweigung gehörenden
Booleschen Ausdrucks
−zu jedem Wahrheitswert von p ein Testdatum t aus T gibt.
bei dessen Ausführung p diesen Wahrheitswert annimmt.
●Hinweis: Verzweigungen mit mehr als zwei Ausgängen in
äquivalentes Konstrukt mit zwei Ausgängen umformbar.
●Garantiert keine Zweigüberdeckung.
Testen beider Wahrheitswerte kompletter (zusammengesetzter) Boolescher Ausdrücke nicht garantiert.
Kann es einen C2-Testfall geben, der nicht alle Zweige testet ?
Zweig-/Bedingungsüberdeckung:
Testdatenmenge erfüllt Zweig-/ Bedingungsüberdeckung
gdw. sie C2-Überdeckung(atomare Bedingungsüberdeckung) und C1-Überdeckung(Zweigüberdeckung) erfüllt.
dadurch werden aber nicht unbedingt alle Zweigkombinationen überdeckt.
Mehrfachbedingungsüberdeckung (C3-Überdeckung)
Testdatenmenge erfüllt Mehrfachbedingungsüberdeckung g.d.w.
●für jede Verzweigung im Programm mit zwei Ausgängen und
●für zur Verzweigung gehörenden Booleschen Ausdruck
●jede mögliche Kombination der Wahrheitswerte atomarer Prädikatterme ausgeführt wird.
Also: für 2 Ausdrücke 4 Testfälle, ,3 Ausdrücke 8 Testfälle ...
()
Kombinationen aller atomarer Prädikate, bei einigermaßen komplizierten Prädikaten nicht mehr handhabbar
Minimale Mehrfachbedingungsüberdeckung
alle bis auf erste testen:
X (A>1) Y (B=0) X and Y
false false false
false true false
true false false
true true true
alle bis auf letzte testen
X (A=2) Y (C>1) X or Y
false false false
false true true
true false true
true true true
Testdatenmenge erfüllt Minimale Mehrfachbedingungsüberdeckung (C2(mM)-Überdeckung, =minimal bestimmende Mehrfachbedingungsüberdeckung ) g.d.w.:
●für jede Verzweigung im Programm mit zwei Ausgängen und
●für zur Verzweigung gehörenden Booleschen Ausdruck
●folgende Kombinationen der Wahrheitswerte der enthaltenen
atomaren Prädikatterme ausgeführt werden:
−Jede Kombination von Wahrheitswerten, für die Änderung des Wahrheitswertes eines Terms den gesamten Wahrheitswert ändert.
Man nimmt einfach ALLE Terme bei der die Änderung eines Prädikats eine Änderung des gesamten Ergebnisses zufolge hat.
Vgl. früheres Beispiel:
mit Testdaten
A=3 B=0 C=3
A=2 B=1 C=0
A=1 B=0 C=2
alle Zweige geprüft
Kompromiss zwischen C2 und C3
jedes Prädikat (egal ob atomar oder zusammengesetzt) zu True und False ausgewertet
weniger als kombinatorische Abdeckung
Tags: Bedingungsüberdeckung
Quelle:
Quelle:
Foliensatz 3.1
Bewertung der Bedingungstestentwurfsverfahren und
lazy evaluation
Bewertung der Bedingungstestentwurfsverfahren und
lazy evaluation
●Programmiersprachen und Compiler verkürzen Auswertung von
booleschen Ausdrücken, sobald Ergebnis feststeht.
●Beispiel:
AND-Verknüpfung: eine Teilbedingung »false«
-> Gesamtbedingung: »false« (egal welcher zweite Wert).
●Compiler ändern Reihenfolge der Auswertungin Abhängigkeit von booleschen Operatoren („lazy evaluation“, s. nächste Folie) aus Effizienzgründen.
●Wegen Verkürzung der Auswertung Überdeckung oft nicht
nachweisbar.
Bedingungs-Testverfahren: Anzahl Tests
Anweisungs- und Entscheidungsüberdeckung für objektorientierte Software nicht ausreichend:
●Komplexität objektorientierter Systemen in Beziehungen zwischen Klassen bzw. Interaktionen zwischen Objekten verborgen.
●Methoden in Klassen oft von geringer Komplexität.
Anweisungs- und/oder Zweigüberdeckung leicht erreichbar, aber wenig aussagekräftig (trotzdem notwendig, aber nicht hinreichend).
Datenflussbasiertes Testen (nächster Abschnitt), insbesondere Interprocedural Data Flow Testing
booleschen Ausdrücken, sobald Ergebnis feststeht.
●Beispiel:
AND-Verknüpfung: eine Teilbedingung »false«
-> Gesamtbedingung: »false« (egal welcher zweite Wert).
●Compiler ändern Reihenfolge der Auswertungin Abhängigkeit von booleschen Operatoren („lazy evaluation“, s. nächste Folie) aus Effizienzgründen.
●Wegen Verkürzung der Auswertung Überdeckung oft nicht
nachweisbar.
Bedingungs-Testverfahren: Anzahl Tests
Anweisungs- und Entscheidungsüberdeckung für objektorientierte Software nicht ausreichend:
●Komplexität objektorientierter Systemen in Beziehungen zwischen Klassen bzw. Interaktionen zwischen Objekten verborgen.
●Methoden in Klassen oft von geringer Komplexität.
Anweisungs- und/oder Zweigüberdeckung leicht erreichbar, aber wenig aussagekräftig (trotzdem notwendig, aber nicht hinreichend).
Datenflussbasiertes Testen (nächster Abschnitt), insbesondere Interprocedural Data Flow Testing
Tags: bedingungsüberdeckung, bewertung, lazy evaluation
Quelle:
Quelle:
Kartensatzinfo:
Autor: Annika
Oberthema: Informatik
Thema: Softwarekonstruktion
Schule / Uni: TU Dortmund
Veröffentlicht: 19.03.2014
Tags: Prof Dr Jürjens
Schlagwörter Karten:
Alle Karten (68)
Abnahmetest (1)
algebraische (2)
Ansatz (1)
bedingungsüberdeckung (1)
bewertung (2)
blackbox (1)
CMMI (1)
Code (1)
Diagrammtypen (1)
einschränkung (1)
emf (3)
Erweiterung (1)
evolution (1)
fehler (1)
fehlerhandlung (1)
fehlerzustand (1)
gef (3)
generieren (1)
gmf (1)
Grenzwertanalyse (1)
grundidee (1)
integrationstest (1)
Invariante (2)
iso9000 (1)
komplexität (2)
Komplexität (2)
Komponententest (1)
kreis (1)
kriterien (1)
kritik (1)
lazy evaluation (1)
lebenszyklus (1)
MDA (1)
mda (2)
Meta (1)
meta (1)
Metamodell (1)
metrik (1)
modell (1)
mvc (1)
nachbedingung (1)
negativ (1)
ocl (1)
omg (1)
positiv (1)
Probleme (2)
qualität (2)
qualitätslenkung (1)
qualitätsprüfung (1)
robust (1)
software (4)
spezifikation (3)
standards (1)
Standards (1)
suite (1)
Systemtest (1)
testen (2)
testprozess (1)
Testprozess (1)
überblick (1)
übung3 (1)
UML (2)
UMl (1)
ursache (1)
v-modell (1)
validierung (2)
verifizierung (1)
verifzierung (1)
vorbedingung (1)
white-box (2)
zentral (1)
ziele (1)
zyklomatisch (3)