Condition Coverage

Benutzeravatar
John
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 167
Registriert: 12. Dez 2008 17:41
Wohnort: E-Pool

Condition Coverage

Beitrag von John »

Um für das if-Statement if(v > 100 && b) 100% Condition-Coverage zu erreichen, werden auf Folie 35, Foliensatz 2009-11-11b die Testfälle
"v = 90, b = true" und
"v = 101, b = false" angegeben.

In dem Fall v = 90 wird allerdings b garnicht erst ausgewertet. Heißt das nicht, dass zusätzlich ein Fall angegeben werden muss, sodass die zweite Bedingung auch einmal als true ausgewertet wird, nachdem sie im zweiten Fall schon false war?

Genau so wird es nämlich erklärt auf Folie 3 der Lösung der 4. Übung, allerdings im Rahmen eines anderen Beispiels.
DON'T PANIC

Benutzeravatar
John
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 167
Registriert: 12. Dez 2008 17:41
Wohnort: E-Pool

Re: Condition Coverage

Beitrag von John »

Gleich noch passend dazu, eine Folie später: Wieso bieten die zwei abgebildeten Bedingungen 100% Basic Block Coverage? Der Block print("if"); wird nie ausgeführt. (Wie auch in der Folie davor angedeutet)
DON'T PANIC

corposano
Erstie
Erstie
Beiträge: 16
Registriert: 17. Nov 2009 17:25

Re: Condition Coverage

Beitrag von corposano »

Hallo !
Zu:
Um für das if-Statement if(v > 100 && b) 100% Condition-Coverage zu erreichen, werden auf Folie 35, Foliensatz 2009-11-11b die Testfälle
"v = 90, b = true" und
"v = 101, b = false" angegeben.

In dem Fall v = 90 wird allerdings b garnicht erst ausgewertet. Heißt das nicht, dass zusätzlich ein Fall angegeben werden muss, sodass die zweite Bedingung auch einmal als true ausgewertet wird, nachdem sie im zweiten Fall schon false war?
Also auf Folie 33 wird "(v > 100 && b)" als compound expression eingeführt...
Condition Coverage soll ja (wenn ich es recht verstehe...auch bei wicki so erklärt...) bedeuten, dass jeder einzelne Ausdruck beim Testen des compounds einmal war und einmal falsch sein muss.
Da ja im ersten Fall b nicht mehr gewertet werden muss, wird mit false-Belegung von b die Coverage erreicht...
...denke dies wird absichtlich so eingeführt , um zu zeigen, dass Cond.Coverage nicht gleich Branch COverage ist (, aber dennoch kann...)

Benutzeravatar
John
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 167
Registriert: 12. Dez 2008 17:41
Wohnort: E-Pool

Re: Condition Coverage

Beitrag von John »

corposano hat geschrieben:Da ja im ersten Fall b nicht mehr gewertet werden muss, wird mit false-Belegung von b die Coverage erreicht...
Die Definition von Condition Coverage ist ja "jede Condition wird einmal als true, und einmal als false ausgewertet." Wenn b also garnicht erst ausgewertet wird, dann ist der Fall b=false also laut Definition mit dem ersten Test nicht abgedeckt.
DON'T PANIC

corposano
Erstie
Erstie
Beiträge: 16
Registriert: 17. Nov 2009 17:25

Re: Condition Coverage

Beitrag von corposano »

Wenn b also garnicht erst ausgewertet wird, dann ist der Fall b=false also laut Definition mit dem ersten Test nicht abgedeckt.
Stimmt ...gut das ich mir des nochmal angeschaut hab...:http://en.wikipedia.org/wiki/Code_coverage

Das gegeben Beispiel zu Cond.Coverage untersteicht deine Position eindeutig.

Gruß
David

Benutzeravatar
John
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 167
Registriert: 12. Dez 2008 17:41
Wohnort: E-Pool

Re: Condition Coverage

Beitrag von John »

Das Beispiel auf Wikipedia unterstreicht leider nicht meine Aussage :) Aber aus einem guten Grund: Beim angegebenen Beispiel handelt es sich um eine Funktion geschrieben in PASCAL - dort werden auch folgende Conditions ausgewertet, wenn eine vorherige bereits false war.

EDIT: Ah, jetzt seh ich, was du meintest: "Condition coverage can be satisfied with tests, which do 'foo(7,1)', 'foo(7,0)' and 'foo(4,0)'." Da hauts dann wieder hin. Oberes Kommentar bezieht sich auf das darauf folgende Beispiel "if a and b then".
DON'T PANIC

corposano
Erstie
Erstie
Beiträge: 16
Registriert: 17. Nov 2009 17:25

Re: Condition Coverage

Beitrag von corposano »

Ok, ok...
kannste mir bitte dein Avatar schicken...aber ohne Brett vorm Kopf...hab ich offensichtlich schon :mrgreen:

robert.n
Nerd
Nerd
Beiträge: 673
Registriert: 29. Sep 2008 19:17

Re: Condition Coverage

Beitrag von robert.n »

Also sind die Beispiele auf Folie 35 und 36 tatsächlich falsch?

Ich verzweifle hier nämlich langsam. Da ist mal etwas "Greifbares" in dem all dem SE-Dunst und dann gibts ausgerechnet da nur noch Widersprüche.

Benutzeravatar
Diablo
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 210
Registriert: 6. Sep 2008 17:43
Wohnort: Kreis Offenbach

Re: Condition Coverage

Beitrag von Diablo »

Geh auf IWork da wurden die Folien mal wieder "berichtigt" ..... :roll: gut dass das SVN als sichere Datenquelle genannt wurde .... (da hat übrigens in lecture der letzte update am 3.02 stattgefunden.... )

tigris
Mausschubser
Mausschubser
Beiträge: 89
Registriert: 2. Okt 2008 13:49

Re: Condition Coverage

Beitrag von tigris »

Das entzieht sich mal wieder meinem Verständnis, dass der Ort, über den es am einfachsten ist sich die Unterlagen zu beziehen, der Ort ist, an dem die fehlerhaften Folien liegen. (Ich hoffe die Kommata sind richtig gesetzt :roll: ...)
Ist nicht gerade das SVN Repository der Ort an dem Änderungen nachvollziehbar wären?
Es wäre auch glaube ich nicht zu viel verlangt einfach einen neuen Ordner zu erstellen in dem halt immer die aktuellen Folien sind. Dann weiß man, dass in jedem Fall die Vorlesungs-Folien alle noch da sind, und hat trotzdem die Möglichkeit eine überarbeitete hoffentlich korrekte Form mit in die kommenden Semester nehmen zu können.

Antworten

Zurück zu „Archiv“