Übung 5.1

Benutzeravatar
Domac
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 160
Registriert: 4. Okt 2010 16:11

Übung 5.1

Beitrag von Domac » 22. Nov 2012 20:31

Hallo,

ich wollte mal nachfragen, ob man für die Basic Block Coverage jetzt entweder die Bilder oder den Byte Code angeben soll?

Des Weiteren frage ich mich wo jetzt genau der Unterschied zwischen Branch und Path Coverage liegt? Abgesehen von der Tatsache, dass ich das gleiche Bild wie bei Branch Coverage benutze und sonst die insgesamte Anzahl der Pfade hinschreibe, kann ich keinen Unterschied erkennen. Soll die Anzahl der insgesamten Pfade auch über diese Tabelle sichergestellt werden?

Gruß
Extend my dropbox space (here).
Thanks!

Hentschel
Mausschubser
Mausschubser
Beiträge: 62
Registriert: 1. Okt 2012 16:15

Re: Übung 5.1

Beitrag von Hentschel » 22. Nov 2012 21:39

Hallo,

es sollen bei allen Coverages ein Testplan angeben. Das heißt mit welchen Parameter wird die Methode aufgerufen, was ist jeweils das erwartete Ergebnis und eine kurze Erklärung zum aktuellen Aufruf.
Als Erklärung bietet sich bei der Basic Block Coverage an, ein Bild mit den Blöcken im Byte Code anzufertigen, diese eindeutig zu benennen und anschließend je Aufruf die ausgeführten anzugeben.

De Branch Coverage verlangt, das alle Kanten im Kontrollflussgraph mindestens einmal genutzt werden. Path Coverage verlangt, das alle möglichen Pfade vom Methodenaufruf zum Methodenende getestet werden.
Sprich mit jedem Aufruf kannst du nur einen Pfad, aber mehrere Kanten testen. Der Pfad sollte in der Erklärung beschrieben werden. Bei Branch Coverage sollten je Aufruf die genutzten Kanten in der Erklärung dokumentiert werden.

Mfg

Martin

Benutzeravatar
Domac
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 160
Registriert: 4. Okt 2010 16:11

Re: Übung 5.1

Beitrag von Domac » 22. Nov 2012 23:21

Hallo.

Vielen Dank für die schnelle Antwort! :-)
Wie schaut es eigentlich bei Aufgabe 5.3 aus… für die Statement, sowie für die Branch Coverage erfüllt mein einer Test beide Coverage's. Kann ich nun den einen Test zweimal verwenden? Die Aufgabe wäre damit meiner Meinung nach erfüllt.

Gruß

PS.: Dann werde ich mal ein paar Coverages nachtragen… war etwas verwundert mit der Tabelle bei dem Basic Block.
Extend my dropbox space (here).
Thanks!

Hentschel
Mausschubser
Mausschubser
Beiträge: 62
Registriert: 1. Okt 2012 16:15

Re: Übung 5.1

Beitrag von Hentschel » 23. Nov 2012 08:10

Es geht darum einen Test zu schreiben, der minimal ist.
Sprich die zu testenden Methoden sollen möglichst wenig aufgerufen werden.

bafnai
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 126
Registriert: 13. Apr 2011 06:36

Re: Übung 5.1

Beitrag von bafnai » 29. Nov 2012 16:08

Hallo,
ich habe auch eine Frage.

In Aufgabe 5.1 g) heißt es „Formen Sie die Bedingungen wenn nötig um, ...“
Darf man hier tatsächlich nur die Conditions umformen?
Diese sind ja schon direkt boolesche Werte bzw. nur eine Funktion, die einen booleschen Wert zurückgibt.

DanielK
Erstie
Erstie
Beiträge: 12
Registriert: 3. Dez 2010 14:41

Re: Übung 5.1

Beitrag von DanielK » 29. Nov 2012 22:41

Hallo,

ich frage mich, was mit "Bedingungen umformen" bei Aufgabe 5.1 g) gemeint ist.

Soll im Code die Reihenfolge der Ausdrücke in den if-Statements bspw. vertauscht werden, sprich eine kommutative Umformung vorgenommen werden, damit zu prüfende Conditions drankommen können?

Danke,
Daniel

Hentschel
Mausschubser
Mausschubser
Beiträge: 62
Registriert: 1. Okt 2012 16:15

Re: Übung 5.1

Beitrag von Hentschel » 30. Nov 2012 09:49

Hi,

schaut euch die Definition der Modified Condition-Decision Coverage bezüglich des mehrfachen Vorkommens von Conditions in einer Decision auf den Folien an.
Dann sollte klar werden was zu tun ist um möglichst 100 % Coverage zu erreichen.

Mfg

Martin

studypad
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 158
Registriert: 30. Mär 2011 11:46

Re: Übung 5.1

Beitrag von studypad » 30. Nov 2012 18:01

MCC
Ich bin irgendwie nicht sicher wie das zu verstehen ist? Es handelt sich doch iwie nur um alle true-false-Möglichkeiten. Wie kann es da etwas nicht minimales geben?
Danke

simonkadel
Neuling
Neuling
Beiträge: 6
Registriert: 12. Okt 2011 18:03

Re: Übung 5.1

Beitrag von simonkadel » 4. Dez 2012 11:30

Ich hab eine Frage zum Condition-Coverage-Kriterium. Wie man am Bytecode erkennen kann, wird bei einem logischen Oder, wenn die erste Condition wahr ist, die zweite garnicht geprüft. Das gleiche beim Und, wenn die erste Condition false ist.

Sollen wir das für unsere Testfälle beachten?

Hentschel
Mausschubser
Mausschubser
Beiträge: 62
Registriert: 1. Okt 2012 16:15

Re: Übung 5.1

Beitrag von Hentschel » 4. Dez 2012 17:28

Unbedingt! Das Conditions nicht mehr ausgewertet werden wenn die Decision bereits fest steht, ist von zentraler Bedeutung. Also in allen Coverages berücksichtigen!

Pflücker
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 129
Registriert: 21. Sep 2010 14:27

Re: Übung 5.1

Beitrag von Pflücker » 4. Dez 2012 19:59

Hentschel hat geschrieben:Unbedingt! Das Conditions nicht mehr ausgewertet werden wenn die Decision bereits fest steht, ist von zentraler Bedeutung. Also in allen Coverages berücksichtigen!
Wenn wir dies berücksichtigen sollen, ist Folie 30 insofern falsch, weil dann hier keine Condition Coverage erfüllt ist.
Die zweite Condition wird nur zu false ausgewertet, niemals zu true.

Nun, wie wird damit bei der Bewertung umgegangen?

AlexanderF
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 140
Registriert: 2. Mai 2010 17:55

Re: Übung 5.1

Beitrag von AlexanderF » 4. Dez 2012 21:50

hallo
Hentschel hat geschrieben:Unbedingt! Das Conditions nicht mehr ausgewertet werden wenn die Decision bereits fest steht, ist von zentraler Bedeutung. Also in allen Coverages berücksichtigen!
soll Short-circuit evaluation wirklich bei allen coverages berüksichtigt werden?

(Ich fände es ja generell sinnvoll, weil es bei Java, zumindest bei && und || nun mal so implementiert ist, und EclEmma berücksichtigt es ja offenbar auch.)

Allerding wurde in der Vorlesung zum Unterschied zwischen Statement Coverage und Basic Block Coverage gesagt, dass dieser (u.a.?) eben bei der Short-circuit evaluation liegt.
Aufgabe 5.1 b) (Basic Block Coverage) würde auch ihren Sinn verlieren, weil genau die Testfälle volle Testabdeckung erreichen, die auch bei a) (Statemet Coverage und Basic Block) volle Testabdeckung erreichen, wenn schon bei a) von Short-circuit evaluation ausgegangen wird.

Und bei dem Condition Coverage widersprechen sich meiner Meinung nach die Folien,
per Definition auf Folie 30 muss jede condition einmal zu true und einmal zu false ausgewertet! werden,
was aber bei der 2. Testsuite auf Folie 30, wie im letzten Forumsbeitrag schon geschrieben, bei der Berücksichtigung von Short-circuit evaluation nicht gegeben ist.

Ich bitte daher auch noch einmal um eine eindeutige Vorgabe, ob und wenn ja, bei welchen Coverages Short-circuit evaluation berücksichtigt werden soll.

mit freundlichen Grüßen,
Alexander

Hentschel
Mausschubser
Mausschubser
Beiträge: 62
Registriert: 1. Okt 2012 16:15

Re: Übung 5.1

Beitrag von Hentschel » 5. Dez 2012 10:54

Hallo,

ja Short-circuit evaluation soll bei allen Coverages berücksichtigt werden, da diese in Java bei den Operatoren && bzw. || verwendet wird.
Folie 30 ist richtig, denn dort wird der Java-Operator & anstelle von && verwendet und somit werden beide Conditions ausgewertet.

Basic Block Coverage und Statement Coverage sind nicht identisch, betrachte folgendes Java-Beispiel:
if (a || b) {
System.out.printlnt("test");
}

Statement-Coverage wird z.B. mit a = true erreicht.
Für Block-Coverage ist es zusätzlich erforderlich auch b auszuwerten, also z.B. mit a = false, b = true.
Natürlich gibt es Testpläne, die mehrere Coverages abdecken. Aufgabe 5.1b verliert ihren Sinn nicht, denn es kommt auch auf die Erklärungen an.

Mit freundlichen Grüßen

Martin

AlexanderF
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 140
Registriert: 2. Mai 2010 17:55

Re: Übung 5.1

Beitrag von AlexanderF » 5. Dez 2012 13:23

hallo,

danke für die Hilfe!


Ich habe mir Folie 30 wohl nicht gut genug angesehen.
und bei 1 a) statements mit consditions verwechselt.

danke für die Abhilfe! :-)

mit freundlichen Grüßen,
Alexander

Hentschel
Mausschubser
Mausschubser
Beiträge: 62
Registriert: 1. Okt 2012 16:15

Re: Übung 5.1

Beitrag von Hentschel » 5. Dez 2012 14:37

Hi,

gebt bitte den Testplan zusammen mit den erstellten Grafiken ab. Vergebt sinnvolle Bezeichner für die Elementen in den Grafiken und verwendet diese in der Spalte Erklärung des Testplans.

Ja, sowohl Branch Coverage (jede Kante mindestens einmal) als auch Path Coverage (jeder Pfad vom Start- zu einem möglichen Endknoten mindestens einmal) beziehen sich auf den Kontrollflussgraphen.
Als Lösung soll die Tabelle mit dem Testplan gefüllt werden, so dass mit möglichst wenigen Aufrufen die jeweilige Coverage bestmöglich erfüllt wird.

Mfg

Martin

Antworten

Zurück zu „Archiv“