Kontrollflussgraph (zB Übung 12)

dschneid
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 271
Registriert: 14. Dez 2009 00:56

Re: Kontrollflussgraph (zB Übung 12)

Beitrag von dschneid »

Wie macht ihr das denn in eurer Argumentation mit der Schleife, wenn es um Path Coverage geht? Die habt ihr jetzt nicht betrachtet, oder?

tud
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 117
Registriert: 9. Mär 2011 14:07

Re: Kontrollflussgraph (zB Übung 12)

Beitrag von tud »

dschneid hat geschrieben:Wie macht ihr das denn in eurer Argumentation mit der Schleife, wenn es um Path Coverage geht? Die habt ihr jetzt nicht betrachtet, oder?
Jetzt bemerke ich, was hier abgeht. Ich habe in Aufgabe c immer branch coverage gelesen. Dort ist aber nach path coverage gefragt. Ja eigentlich hängt die Anzahl der Paths von dem Datentyp von n ab, der ist aber angegeben, es ist ein int. Damit kann n maximal 2.147.483.647 groß sein. Folglich ist auch die Anzahl der Paths endlich. Könnt ihr ja jetzt ausrechnen, ich mache das nur maximal einmal und das will ich mir für morgen zwischen 5 und 7 aufheben :mrgreen:

dschneid
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 271
Registriert: 14. Dez 2009 00:56

Re: Kontrollflussgraph (zB Übung 12)

Beitrag von dschneid »

Ich glaube, es dürfte noch ein Faktor dazukommen, weil es ja noch Variationen im Pfad durch den Code vor der Schleife gibt. So oder so ist das alles hässlich. :roll:

jno
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 144
Registriert: 18. Mai 2007 09:41

Re: Kontrollflussgraph (zB Übung 12)

Beitrag von jno »

Vielleicht muss man die Fälle, wo alles bis auf die Anzahl, wie oft durch die Schleife iteriert wird, auch nicht als unterschiedliche Pfade betrachten... Fänd ich sinnvoller. Aber streng genommen habt ihr schon recht.

jack_90
Mausschubser
Mausschubser
Beiträge: 75
Registriert: 29. Sep 2009 22:38
Wohnort: Darmstadt
Kontaktdaten:

Re: Kontrollflussgraph (zB Übung 12)

Beitrag von jack_90 »

Mit dem Control-Flow Diagram kann man doch ganz einfach die Paths für 100% Path Coverage ablesen.
Das ergibt bei mir 9 Pfade. Einmal der Pfad mit a=b -> return 0.
Ohne Schleifendurchlauf gibt es nun 4 weitere Pfade. (false, false; false, true; true, false; true, true) für die if Anweisungen im else Zweig.
Nimmt man nun den Schleifendurchlauf hinzu, was stets als ein Pfad zählt (war jdf in der Übung so), ergibt das 4 weitere Pfade.
Also 1+4+4 = 9 Pfade
EiSE Tutor WS 12/13

samsok
Erstie
Erstie
Beiträge: 22
Registriert: 8. Mai 2009 15:05

Re: Kontrollflussgraph (zB Übung 12)

Beitrag von samsok »

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Mit dem Control-Flow Diagram kann man doch ganz einfach die Paths für 100% Path Coverage ablesen.
Das ergibt bei mir 9 Pfade. Einmal der Pfad mit a=b -> return 0.
Ohne Schleifendurchlauf gibt es nun 4 weitere Pfade. (false, false; false, true; true, false; true, true) für die if Anweisungen im else Zweig.
Nimmt man nun den Schleifendurchlauf hinzu, was stets als ein Pfad zählt (war jdf in der Übung so), ergibt das 4 weitere Pfade.
Also 1+4+4 = 9 Pfade

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

Wie meinst du denn so: was meinst du mit Nimmt man den Schleifendurchlauf? IF oder WHILE Schleife? Oder meinst du IF Schleife am Anfang. Also einmal am Anfang IF-Schleife (True) Dann (false, false; false, true; true, false; true, true) UND einmal am Anfang IF-Schleife (False) Dann (false, false; false, true; true, false; true, true)

Weil nach dieser Theorie sollte erstmal auch erste if als true und false bewertet werden. Dann macht das insgesamt 10! ?

tud
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 117
Registriert: 9. Mär 2011 14:07

Re: Kontrollflussgraph (zB Übung 12)

Beitrag von tud »

If-Schleife? :shock:

Benutzeravatar
AlexPi11
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 154
Registriert: 18. Apr 2009 15:32

Re: Kontrollflussgraph (zB Übung 12)

Beitrag von AlexPi11 »

Also ich sehe das so wie jst.
Es gibt \(2^{3} + 1 = 9\) Pfade im Graphen; davon sind aber nur 7 ausführbar (- zum Beispiel mit Testdaten). Ich würde dann einfach mal behaupten, dass diese 7 Pfade alle Programmpfade darstellen, da man ansonsten nie 100% path-coverage erreichen könnte. Also Antwort 7 oder man müsste argumentieren, dass 100% einfach nicht drin sind.

Christian_
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 178
Registriert: 10. Apr 2009 16:30

Re: Kontrollflussgraph (zB Übung 12)

Beitrag von Christian_ »

"100% path Coverage ist nicht erreichber" ist keine antwort auf die Frage hier

wenn du 100% Path Coverage erreichen willst musst du 9 Pfade durchlaufen.
Dass dies praktisch nicht möglich ist ist eine andere Frage/Problem
Omnium rerum principia parva sunt. -Cicero

tud
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 117
Registriert: 9. Mär 2011 14:07

Re: Kontrollflussgraph (zB Übung 12)

Beitrag von tud »

Wenn ignoriert was nun tatsächlich möglich ist, und einfach von der Struktur her geht und dabei eine while-Schleife als nur zwei Möglichkeiten ansieht (entweder sie wird durchlaufen oder nicht), dann komme ich auf 10 Möglichkeiten. Die Frage ist nun, was tatsächlich mit path coverage gemeint ist.

Benutzeravatar
JanM
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 157
Registriert: 24. Aug 2010 10:58

Re: Kontrollflussgraph (zB Übung 12)

Beitrag von JanM »

eigentlich ist wie schon gesagt pathcoverage zu 100% eigentlich nie zu erreichen, sobald eine schleife drin ist, da ich ja alle unendlich vielen möglichkeiten von schleifendurchläufen testen müsste. Daher nimmt man beim pathcoverage an, dass es ein Pfad ist, wenn ich in die schleife reingehe und ein pfad, falls ich gar nicht erst in die schleife reingehe. So hab ich das verstanden

tud
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 117
Registriert: 9. Mär 2011 14:07

Re: Kontrollflussgraph (zB Übung 12)

Beitrag von tud »

Ja meine Frage ist nun, unter der Annahme, dass man so die Schleifen betrachtet: Muss ich nun alle Pfade, die theoretisch möglich sind, oder nur alle, die praktisch möglich, sind zählen?

Kleines Beispiel: Wir haben einen Code, der sieht so aus:

Code: Alles auswählen

if(a>0){
    b++;
}
b++;
if(a>10){
   b++;
}
b++;
Hier gibt es theoretisch 4 Pfade, praktisch aber nur 3. Schlägt nämlich die erste If-Bedinung fehl, so wird dies mit Sicherheit auch die zweite tun.

Was wäre hier also die richtige Antwort?

jack_90
Mausschubser
Mausschubser
Beiträge: 75
Registriert: 29. Sep 2009 22:38
Wohnort: Darmstadt
Kontaktdaten:

Re: Kontrollflussgraph (zB Übung 12)

Beitrag von jack_90 »

Du brauchst 4 Pfade um 100% Path Coverage zu errreichen. Ob du auch alle mit Testfällen abdecken kannst, spielt hier doch keine Rolle.
Eine kleine Bemerkung bzgl. der theoretisch und praktisch möglichen Testfälle wird aber denke ich nicht schaden.
EiSE Tutor WS 12/13

tud
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 117
Registriert: 9. Mär 2011 14:07

Re: Kontrollflussgraph (zB Übung 12)

Beitrag von tud »

jack_90 hat geschrieben:Du brauchst 4 Pfade um 100% Path Coverage zu errreichen. Ob du auch alle mit Testfällen abdecken kannst, spielt hier doch keine Rolle.
Eine kleine Bemerkung bzgl. der theoretisch und praktisch möglichen Testfälle wird aber denke ich nicht schaden.
Dann sind es in der Übung aber 10 (wenn man eine while-Schleife wie ein if ließt).

Christian_
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 178
Registriert: 10. Apr 2009 16:30

Re: Kontrollflussgraph (zB Übung 12)

Beitrag von Christian_ »

zuerst hat den Pfad direkt zu return 0 in Zeile 2. => 1 Pfad
dann hat man 3 If/While Bedingungn in die true oder false sein können => 2^3 Pfade = 8 Pfade
=> 9 Pfade

welchen Pfad hast du zusätzlich?
Omnium rerum principia parva sunt. -Cicero

Antworten

Zurück zu „Archiv“