Frage zu "Modifizierter Bedingungsüberdeckungstest"

Moderator: SE - Wartung und Qualitätssicherung

MuldeR
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 131
Registriert: 18. Okt 2005 16:14
Wohnort: (d)armstadt
Kontaktdaten:

Frage zu "Modifizierter Bedingungsüberdeckungstest"

Beitrag von MuldeR » 12. Jul 2011 16:56

Hallo.

Ich versuche gerade das Beispiel (A or B) and C zu "Modifizierter Bedingungsüberdeckungstest" nachzuvollziehen.

Wenn ich dabei „short circuit“-Evaluierung von links nach rechts anwende, dann komme ich auf die folgenden Testfälle:

Code: Alles auswählen

A B C

1 - 0  <= B nicht relevant
1 - 1  <= B nicht relevant
0 1 0
0 1 1
0 0 -  <= C nicht relevant
Laut Skript werden aber nur 4 Testfälle benötigt. Wie genau muss man vorgehen um diese zu erhalten?

Benutzeravatar
saller
Moderator
Moderator
Beiträge: 161
Registriert: 12. Okt 2007 15:14
Wohnort: Darmstadt
Kontaktdaten:

Re: Frage zu "Modifizierter Bedingungsüberdeckungstest"

Beitrag von saller » 13. Jul 2011 20:49

Hallo Mulder,

die minimalen Testfälle wären die Folgenden:

Code: Alles auswählen

(A or B) and C 
1 - 1
1 - 0
0 1 1
0 0 -
Der Testfall 0 1 0 ist schon einmal abgedeckt worden mit 1 - 0.
Im Prinzip kapselst Du die erste Bedingung (A or B) als eigene (atomare) Bedingung zu C ab. Damit wurde der Fall, dass C relevant entscheident ist schon abgedeckt. In dem Beispiel würde man folgendermaßen vorgehen:
- Erste Teilbedingung (A || B) Wahr belassen und C true und false werden lassen
- Nun nimmt man die erste Teilbedingun auseinander und lässt C wahr (bzw. wenn alles in der ersten Teilbedingung false wird, spielt C keine Rolle mehr)
- Wichtig ist es in der ersten Teilbedingung A wahr abzuprüfen und wenn A zu falsch ausgewertet wird, muss B einmal wahr und einmal falsch werden.

Hoffe das hilft ein wenig weiter
Gruß
Karsten

MuldeR
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 131
Registriert: 18. Okt 2005 16:14
Wohnort: (d)armstadt
Kontaktdaten:

Re: Frage zu "Modifizierter Bedingungsüberdeckungstest"

Beitrag von MuldeR » 13. Jul 2011 21:43

Dann verstehe ich nicht, wieso man nicht mit drei Fällen kommt :?:

Wenn ich "A oder B" zunächst als atomar (X) betrachte, dann kommen für "X und C" zunächst drei Fälle in Betracht:

Code: Alles auswählen

1 und 1
1 und 0
0 und -
Für X=0 kommt nur "0 oder 0" in Frage. Für X=1 kommen "1 oder -" und "0 oder 1" in Frage. Das könnte man dann in drei Testfällen unterbringen.

Code: Alles auswählen

(1 oder -) und 1
(0 oder 1) und 0
(0 oder 0) und -

Wie kommt der vierte Testfall zu Stande?

Gruß,
Daniel.

Benutzeravatar
saller
Moderator
Moderator
Beiträge: 161
Registriert: 12. Okt 2007 15:14
Wohnort: Darmstadt
Kontaktdaten:

Re: Frage zu "Modifizierter Bedingungsüberdeckungstest"

Beitrag von saller » 14. Jul 2011 09:18

Hallo Daniel,

ok - hier nboch einmal eine andere herangehensweise, die es vielleicht besser verdeutlicht. Hier wird jetzt die Relevanz der einzelnen Teilbedingungen immer separat betrachtet.

Relevanz um A Überprüfen:
1.) 1 0 1
2.) 0 0 1

Relevanz von B Überprüfen:
3.) 0 1 1
4.) 0 0 1 (entsp. 2.)

Relevanz von C Überprüfen:
5.) 1 0 1 (entsp. 1.)
6.) 1 0 0

Damit kommt man auf 4 Testfälle. Ich persönlich schreibe mir es immer in dieser Art auf, sprich jeden einzelnen Operator für sich betrachten. Das macht zwar etwas mehr arbeit, aber man kann sicher sein, dass man alle Testfälle hat. Hier muss man also einen fehlenden Testfall nicht nachtragen, sondern redundante identifizieren.

In der Literatur wird kein ideales Vorgehensprinzip vorgegeben - jedoch wird zu dem C3-Test (Mod. Bed. Überdeck.) gesagt, dass man bei n Teilbedingungen, n+1 Testfälle hat - was bei uns 4 wären.

Wenn Dir das auch nicht weiterhilft, können wir das hier evtl. an ein paar Beispielenin der Sprechstunde durchrechnen.

Gruß
Karsten

MuldeR
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 131
Registriert: 18. Okt 2005 16:14
Wohnort: (d)armstadt
Kontaktdaten:

Re: Frage zu "Modifizierter Bedingungsüberdeckungstest"

Beitrag von MuldeR » 14. Jul 2011 17:40

Danke, ich denke so hab ich es verstanden.

Bei "Relevanz von C Überprüfen" hätte man theoretisch vorne aber auch "1 1 ..." oder "0 1 ..." anstatt "1 0 ..." wählen können, oder?

("0 1 ..." wurde dort nur gewählt, um die Anzahl der Testfälle zu minimieren)

Benutzeravatar
saller
Moderator
Moderator
Beiträge: 161
Registriert: 12. Okt 2007 15:14
Wohnort: Darmstadt
Kontaktdaten:

Re: Frage zu "Modifizierter Bedingungsüberdeckungstest"

Beitrag von saller » 15. Jul 2011 15:07

Bei "Relevanz von C Überprüfen" hätte man theoretisch vorne aber auch "1 1 ..." oder "0 1 ..." anstatt "1 0 ..." wählen können, oder?
0 1 schon, da dies dann redundant wäre mit dem 3. Testfall. 1 1 Ist in diesem Falle ungünstig, da dieser Testfall für die Oder-Kombination irrelevant ist. (Analog dazu ist eine 0 0 Kombination bei einer Und-Verknüpfung irrelevant.)

Grüße
Karsten

Antworten

Zurück zu „Software Engineering - Wartung und Qualitätssicherung“