Übung 7

Moderator: SE - Wartung und Qualitätssicherung

Benutzeravatar
~usz
Mausschubser
Mausschubser
Beiträge: 69
Registriert: 18. Okt 2007 10:46

Übung 7

Beitrag von ~usz » 27. Jun 2011 15:56

Hallo,

eine Frage zur Aufgabe 2: Warum gibt es eine Kante im Datenflussgraphen von Knoten 3 bis 8? In Knoten 3 wird für r doch gar kein Wert definiert? Auch wenn dort ein Wert definiert werden würde (was die 1. Bedingung ist) wird in 8 der Wert auch gar nicht gelesen (was die 2. Bedingung ist)?

Könnte es sein, dass es sich um den Graphen für den fehlerfreien Code handelt (wie im Kommentar)? ;)

Benutzeravatar
saller
Moderator
Moderator
Beiträge: 161
Registriert: 12. Okt 2007 15:14
Wohnort: Darmstadt
Kontaktdaten:

Re: Übung 7

Beitrag von saller » 27. Jun 2011 16:52

Hi,

da war noch ein kleiner Fehler im Code als Relikt aus dem letzten Jahr :roll: . Sorry - habe ich ausgebessert und aktualisiert - jetzt passt der Graph auch wieder zum Code.

Grüße
Karsten

MuldeR
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 131
Registriert: 18. Okt 2005 16:14
Wohnort: (d)armstadt
Kontaktdaten:

Re: Übung 7

Beitrag von MuldeR » 28. Jun 2011 16:07

Hallo.

Ich habe Blatt #7 gerade eben noch einmal neu runter geladen, aber im Datenfluss-Graphen gibt es immer noch Kanten von 3 nach 8 :?:

Auch müsste die Kante von 3 nach 15 meiner Meinung nach weg. Ebenfalls mit der Begründung, dass in 3 ja ein nur ein u(r) und kein d(r) statt findet.

(Laut Skript gibt es eine Kante von n1 nach n2, wenn in n1 d(x) und in n2 r(x) gilt und der Pfad zwischen n1 und n2 definitionsfrei ist)

[EDIT]

Okay, ich sehe gerade, dass nicht der Graph an den Code, sondern der Code an den Graphen angepasst wurde :wink:

Benutzeravatar
saller
Moderator
Moderator
Beiträge: 161
Registriert: 12. Okt 2007 15:14
Wohnort: Darmstadt
Kontaktdaten:

Re: Übung 7

Beitrag von saller » 28. Jun 2011 16:15

Hallo Mulder,

bist Du sicher, dass Du die gestern aktualisierte Version dir runter geladen hast (die ich kurz nach meinem obigen Post aktualisiert habe)?

In dem Codebeispiel wird in Zeile 3 r mit 0 definiert und in Zeile 8 wieder neu definiert. Das waren die entsprechenden Änderungen.

Code: Alles auswählen

01	/** berechne die Gaußsche Summe brute force*/
02 public int littleGauss(int s, int e) {
03		int r=0;
04		// are the numbers positive?
05		if (e > 0) {
06			// calculate
07			while (e != s) {
08				r += s + e;
09				e--;
10			}
11			System.out.println("Der Gaußsche Summe ist " + r);
12		} else {
13			r = 0;
14		}
15		return r;
16	}
(Copy Paste aus dem verlinkten PDF http://www.es.tu-darmstadt.de/fileadmin ... Blatt7.pdf)

Gruß
Karsten

Edit
Hehe - ok dann hat sich das wohl erledigt :)

MuldeR
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 131
Registriert: 18. Okt 2005 16:14
Wohnort: (d)armstadt
Kontaktdaten:

Re: Übung 7

Beitrag von MuldeR » 28. Jun 2011 17:17

saller hat geschrieben:Edit
Hehe - ok dann hat sich das wohl erledigt :)
Sorry.

Ich habe aber noch eine Frage zu:
All-c-uses = für JEDE Definitionsstelle (d(var)) EIN definitionsfreier Pfad zu ALLEN ereichbaren berechnenden Benutzungen (c(var))

Da heißt, ich muss für jedes d(var) genau einen Pfad finden, der alle (auf irgend einem Pfad) erreichbaren c(var)'s abdeckt. Wenn es für ein d(var) verschiedene c(var)'s gibt, die über verschiedene Pfade/Testfälle erreichbar sind, aber eben nicht gleichzeitig über einen einzigen Pfad/Testfall, dann ist All-c-uses nicht erfüllbar.

Damit wäre All-c-uses hier nicht erfüllbar, da man für d(r) in Zeile 3 nur entweder einen definitionsfreien Pfad nach Zeile 8 oder nach Zeile 11 findet, aber keinen definitionsfreien Pfad, der beide gleichzeitig abdeckt. Entweder ich betrete die While-Schleife um Zeile 8 abzudecken und überschreibe damit r, womit Zeile 11 nicht mehr definitionsfrei erreicht werden kann, oder aber ich betretet die While-Schleife nicht und habe damit Zeile 11 aber nicht 8 abgedeckt...

Versteh ich das so richtig?

Benutzeravatar
saller
Moderator
Moderator
Beiträge: 161
Registriert: 12. Okt 2007 15:14
Wohnort: Darmstadt
Kontaktdaten:

Re: Übung 7

Beitrag von saller » 28. Jun 2011 17:39

Die Definitionsfreien-Pfade können getrennt voneinander betrachtet werden. Das ist dann abhängig von dem Testfall, in einem wird 3 nach 8 abgedeckt im anderen 3 nach 11. Wichtig ist hier, dass für jede Definitionsstelle, alle ihre c-lesenden Stellen überprüft werden.
Mit einem Pfad ist gemeint, dass nicht alle Pfade von einer Def- zu einem spezifischen c überprüft werden. Das bedeutet, wenn wir mehrere Pfade von der Defintionsstelle zu einer bestimtmen c-lese-Stelle haben, muss nur einer davon überprüft werden. Die ganzen Pfadabdeckungen erschlagen wir ja mit den Kontrollflüssen ;)

Hoffe das Hilft Dir ein wenig,
Gruß
Karsten

MuldeR
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 131
Registriert: 18. Okt 2005 16:14
Wohnort: (d)armstadt
Kontaktdaten:

Re: Übung 7

Beitrag von MuldeR » 28. Jun 2011 19:17

saller hat geschrieben:Die Definitionsfreien-Pfade können getrennt voneinander betrachtet werden. Das ist dann abhängig von dem Testfall, in einem wird 3 nach 8 abgedeckt im anderen 3 nach 11. Wichtig ist hier, dass für jede Definitionsstelle, alle ihre c-lesenden Stellen überprüft werden. Mit einem Pfad ist gemeint, dass nicht alle Pfade von einer Def- zu einem spezifischen c überprüft werden.
Ah, so ist das zu verstehen. Danke für die Erläuterung.

Benutzeravatar
infinity_dev
Mausschubser
Mausschubser
Beiträge: 44
Registriert: 16. Okt 2006 01:32

Re: Übung 7

Beitrag von infinity_dev » 2. Jul 2011 18:03

Der Graph bei Aufgabe 2 stimmt immer noch nicht. Es fehlt eine Kante von 8 nach 8, da dort ja d(r) und c(r) gilt und das gesetzte r im nächsten Schleifendurchlauf wieder genutzt werden kann.

Edith hat noch eine Frage zur Aufgabe 3b:
Wählen Sie aus dem Kontextmenü der Pakete „src.ij“ und „src.ij.gui“ die Funktion „use
for Coverage Messurement“ aus.
Wenn ich das für das Package ij mache, dann werden automatisch alle Unterpakete auch markiert. Ist das so beabsichtigt? Oder muss ich alle Unterpakete außer ij.gui wieder demarkieren, sodass nur das Haupt- und das GUI-Package markiert sind?

Benutzeravatar
saller
Moderator
Moderator
Beiträge: 161
Registriert: 12. Okt 2007 15:14
Wohnort: Darmstadt
Kontaktdaten:

Re: Übung 7

Beitrag von saller » 3. Jul 2011 20:34

Es fehlt eine Kante von 8 nach 8
Verdammt - da hast Du recht und dass muss ich auf meine Kappe nehmen :oops: - Euch wird da natürlich kein entsprechender Fehler angerechnet, wenn ihr diese Kante nicht beachtet habt.
Wenn ich das für das Package ij mache, dann werden automatisch alle Unterpakete auch markiert. Ist das so beabsichtigt? Oder muss ich alle Unterpakete außer ij.gui wieder demarkieren, sodass nur das Haupt- und das GUI-Package markiert sind?
Hmmm - bei mir wird entsprechend der Anleitung nur alle Klassen ausgewählt die direkt im Paket enthalten sind, weshalb das gui-Package nochmal einzeln ausgewählt werden muss. CodeCover sollte also nur alle Klassen direkt in ij und ij.gui analysieren. Falls Du jetzt schon mit allen Sub-Packages und entsprechenden Klassen die Überdeckung gemacht hast, brauchst Du diese nicht zu wiederholen. An dem Screenshot sehen wir ja, dass Du mit dem Tool gearbeitet hast.

Gruß
Karsten

Benutzeravatar
oren78
BSc Spammer
BSc Spammer
Beiträge: 1373
Registriert: 17. Nov 2006 17:47
Wohnort: Darmstadt

Re: Übung 7

Beitrag von oren78 » 4. Jul 2011 10:09

Ich hätte da eine Frage zu der Aufgabe 3.a.)
Geben Sie die Testfallbeschreibung als Lösung dieses Aufgabenpunktes ab.
Was genau ist da mit "Testfallbeschreibung" gemeint? Etwa diese test-session-container XML-Datei ?
Oder sind hier etwa die Stichpunkte unseres Testszenarios gemeint?

und noch 'ne Frage, in der Übung steht oben:
Abgabe: Mittwoch, 07.07.2011, 08.00 Uhr
Warum Mittwoch und nicht wie gewohnt Donnerstag, hast das einen besonderen Grund?
"Unter allen menschlichen Entdeckungen sollte die Entdeckung der Fehler die wichtigste sein.", Stanisław Jerzy Lec

Benutzeravatar
Katrin
Erstie
Erstie
Beiträge: 13
Registriert: 20. Nov 2005 15:27

Re: Übung 7

Beitrag von Katrin » 4. Jul 2011 10:32

Hallo,

müsste es bei Aufgabe 2 nicht auch einen Datenpfad r von 3 nach 13 geben?

Viele Grüße ...

katrin (o:

Benutzeravatar
saller
Moderator
Moderator
Beiträge: 161
Registriert: 12. Okt 2007 15:14
Wohnort: Darmstadt
Kontaktdaten:

Re: Übung 7

Beitrag von saller » 4. Jul 2011 10:38

Hi,
Definieren Sie nun Ihr eigenes Testszenario indem Sie sich an dem beispielhaft vorgegebenen Szenario orientieren. Listen Sie jeden Schritt stichpunktartig auf, so dass eine dritte Person Ihr Szenario genauso abarbeiten könnte wie Sie. Beachten Sie hierbei auch besondere Mausklicks! Geben Sie die Testfallbeschreibung als Lösung dieses Aufgabenpunktes ab.
Die Sätze gehören zusammen - Die Testfallbeschreibung entspricht im Prinzip den Stichpzunkten des Eingabeverhaltens.
Warum Mittwoch
07.07 ist ein Donnerstag und der Mittwoch gehört da nicht hin. Bleibt also alles beim Alten.

Beste Grüße
Karsten

Benutzeravatar
saller
Moderator
Moderator
Beiträge: 161
Registriert: 12. Okt 2007 15:14
Wohnort: Darmstadt
Kontaktdaten:

Re: Übung 7

Beitrag von saller » 4. Jul 2011 10:41

Hallo Katrin,
müsste es bei Aufgabe 2 nicht auch einen Datenpfad r von 3 nach 13 geben?
Nein - da existiert keine Kante. Da r in 3 zwar definiert aber in 13 aber nicht gelesen wird (sondern nur neu definiert). Es "fließen" somit keine Daten zwischen den Knoten.

Gruß
Karsten

Benutzeravatar
oren78
BSc Spammer
BSc Spammer
Beiträge: 1373
Registriert: 17. Nov 2006 17:47
Wohnort: Darmstadt

Re: Übung 7

Beitrag von oren78 » 4. Jul 2011 10:54

saller hat geschrieben:Die Sätze gehören zusammen - Die Testfallbeschreibung entspricht im Prinzip den Stichpzunkten des Eingabeverhaltens.
Nice, dann wäre das schon mal geklärt...
saller hat geschrieben:07.07 ist ein Donnerstag und der Mittwoch gehört da nicht hin. Bleibt also alles beim Alten.
Na dann \(\rightarrow\) Muchas Gracias ;-)
"Unter allen menschlichen Entdeckungen sollte die Entdeckung der Fehler die wichtigste sein.", Stanisław Jerzy Lec

Antworten

Zurück zu „Software Engineering - Wartung und Qualitätssicherung“