Fragen zu Übung7

Niko
Erstie
Erstie
Beiträge: 11
Registriert: 27. Mär 2008 00:13

Fragen zu Übung7

Beitrag von Niko » 18. Jul 2012 13:05

Hallo,
ich habe ein Paar fragen bezüglich der Übung7.

Erstens, auf der Webseite wegen Losunghinweise für Übung7 stehen zwei Links, einmal für die "Hinweise Blatt 7" und einmal für die "Slides zu Lösungshinweis", beide leiten aber auf den selben URL: "http://www.es.tu-darmstadt.de/fileadmin ... inweis.pdf"

App. Aufgabe 1:
Teil C)
Als Erklärung für Atomare Bedingugngsüberdeckung steht "Jede Teilbedingung einmal true und einmal false" eingegeben.
Frage: Ist die idee bei dem aufruf "ex7.matrixSum(2,1,3)" das die Bedingung "(if (sum>maxSum) )" einmal als false und einmal als true ausgewertet wird(in verschiedene while Iterationen)? Ist es falsh falls man als Lösung anstatt zwei aufrufe angibt, wobei bei den einen die if-Bedingung nur als false ausgewertet wird und bei den anderen nur als true?
Wie wird den Fall bedeckt wenn wenn die Teilbedingung column>=4 mit true ausgewertet wird?
Teil D)
Frage:
Was ist die Idee vom letzten Aufruf (matrixSum(5,0,2))? So wie ich das verstehe wird er genau wie den zweiten Aufruf(matrixSum(5,1,4)) bei der ersten Bedingung vom ersten while brechen.

Frage: Ich verstehe irgendwie Minimale Mehrfachbedingungsüberdeckung nicht..
Die Erklärung lautet: "Zusätzlich zur atomaren Bedingungs- überdeckung prüfen, ob die Gesamtbedingung einmal true und einmal false".
Was wird mit "Gesamtbedingung " hier gemeint? Wenn "((row >= 0) && (row <= 3) && (stopp == false))" eine Gesamtbedingung ist und z.b. "(row >= 0)" eine Teilbedingung davon, dann haben wir alle Gesamtbedingungen noch bei den atomaren Bedingungsüberdeckungen einmal auf true und einmal auf false geprüft, oder?

Das was ich von der Lösung verstehe ist:
Der erste Aufruf matrixSum(0,5,50) bricht an der ersten Teilbedingung vom ersten While. Der zweite Aufruf (matrixSum(5,1,4)) bricht an der zweiten Teilbedingung vom selben while. Der dritte Aufruf geht zuerst durch alle Prädikaten und bricht nachher bei der dritten Teilbedingung vom ersten while.


Ganz allgemein, das was auf die Webseite steht sind immer die Lösungshinweise und keine Lösungen... Zum Beispiel bei Aufgabe1 in Übung7 sind auch Kontrollflussgraphen gefragt, die nicht in der Lösungshinweise existieren. Wird es von uns erwartet, eventuell auf einer ähnlichen Klausuraufgabe etwas mehr zu schreiben als das was in der Lösungshinweise steht?

Es kommen sehr wahrscheinlich noch weitere Fragen von mir wegen Übung7.
Vielen Dank im Voraus.

Benutzeravatar
Tigger
Kernelcompilierer
Kernelcompilierer
Beiträge: 404
Registriert: 26. Okt 2007 17:35
Wohnort: Hofheim
Kontaktdaten:

Re: Fragen zu Übung7

Beitrag von Tigger » 19. Jul 2012 14:27

Ich bin mir bei diesen Überdeckungsaufgaben auch eher unsicher. Ist es nicht so, dass wir die Minimale Mehrfachbedinungsüberdeckung haben, wenn die Atomare Bedingungsüberdeckung durch die Testfälle gegeben ist und wir zusätzlich noch die Zweigüberdeckung garantieren. Dann wäre Aufgabe c (3 Testfälle) ja bereits minimal Mehrachbedingt Überdeckt, denn der 1. Testfall stammt ja aus Aufgabenteil b wo die Zweigüberdeckung garantiert ist. Und Aufgabe d wäre dann mit 4 Testfällen nicht mininmal.

Michael Z
Erstie
Erstie
Beiträge: 12
Registriert: 18. Apr 2011 13:53

Re: Fragen zu Übung7

Beitrag von Michael Z » 21. Jul 2012 22:12

Ich hab die U7, A1 c) und d) mal mit EclEmma und print statements ausprobiert, und wenn ich keinen Fehler gemacht habe, ist der Lösungsvorschlag falsch.

Der Aufruf matrixSum(0, 5, 50) sollte wohl eher matrixSum(1, 5, 50) lauten und matrixSum(2,1,2) wohl eher matrixSum(1,2,2).

Aber würden hier nicht auch 3 Methodenaufrufe genügen? Die Minimale Mehrfachbedingungsüberdeckung fordert ja im Vergleich zur Atomaren Bedingungsüberdeckung nur, dass auch auch die gesamte Bedingung einmal true und einmal false sein muss. Das würde hier die beiden while schleifen betreffen, bei dem if gibt es nur eine Teilbedingung. Die gesamten Bedingungen der while-Schleifen waren bereits bei der c) erst true (damit das If überhaupt ausgeführt wird), dann false, sonst würde es ja eine Endlosschleife geben.

Antworten

Zurück zu „Archiv“