Seite 2 von 3

Re: Kontrollflussgraph (zB Übung 12)

Verfasst: 14. Mär 2011 16:35
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?

Re: Kontrollflussgraph (zB Übung 12)

Verfasst: 14. Mär 2011 16:46
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:

Re: Kontrollflussgraph (zB Übung 12)

Verfasst: 14. Mär 2011 17:04
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:

Re: Kontrollflussgraph (zB Übung 12)

Verfasst: 14. Mär 2011 17:16
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.

Re: Kontrollflussgraph (zB Übung 12)

Verfasst: 14. Mär 2011 20:51
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

Re: Kontrollflussgraph (zB Übung 12)

Verfasst: 14. Mär 2011 21:20
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! ?

Re: Kontrollflussgraph (zB Übung 12)

Verfasst: 14. Mär 2011 21:37
von tud
If-Schleife? :shock:

Re: Kontrollflussgraph (zB Übung 12)

Verfasst: 14. Mär 2011 22:27
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.

Re: Kontrollflussgraph (zB Übung 12)

Verfasst: 15. Mär 2011 00:15
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

Re: Kontrollflussgraph (zB Übung 12)

Verfasst: 15. Mär 2011 01:16
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.

Re: Kontrollflussgraph (zB Übung 12)

Verfasst: 15. Mär 2011 07:48
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

Re: Kontrollflussgraph (zB Übung 12)

Verfasst: 15. Mär 2011 09:18
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?

Re: Kontrollflussgraph (zB Übung 12)

Verfasst: 15. Mär 2011 11:34
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.

Re: Kontrollflussgraph (zB Übung 12)

Verfasst: 15. Mär 2011 11:47
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).

Re: Kontrollflussgraph (zB Übung 12)

Verfasst: 15. Mär 2011 11:53
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?