This flashcard is just one of a free flashcard set. See all flashcards!
100
98. [Prof. Ebert zeigt ein Aktivitätsdiagramm, das x einliest, und wenn x>0 ist, dies um 1 dekrementiert]. Was macht dieses Programm? Was ist die Überdeckung, die man eigentlich immer haben will? Wie würden Sie dies an diesem Beispiel machen? Wie trifft man die Auswahl für Testparameter automatisch?
Es zählt x bis Null herunter. Man möchte in der Regel die Überdeckung aller Kanten, dies erreicht man mit zwei Testfällen (x > 0 und x = 0). Zur automatischen Auswahl der Testparameter verwendet man die symbolische Ausführung.
while (x > 0) do
x- -;
* Bei diesem Programmbeispiel geht man mit der Symbolischen Ausführung folgendermaßen vor.
o Für eine Kantenüberdeckung soll die Bedingung x>0 zunächst erfüllt sein, so dass auch die Anweisung x- - ausgeführt wird.
+ Bei der zweiten Iteration soll die Bedingung x>0 jedoch nicht mehr erfüllt sein, so dass die Schleife nicht mehr durchlaufen wird.
+ Die Variable x wird dazu zunächstmit dem Symbol a gleichgesetzt.
+ Da x>0 bei der ersten Iteration erfüllt sein soll, gilt folglich auch a > 0.
+ Nun wird in der Schleife die Anweisung x- - ausgeführt, so dass nun x = a-1 ist.
o Die Anweisung ist beendet und es wird die Bedingung der Schleife erneut geprüft.
o Nun soll die Schleife nicht mehr durchlaufen werden, also wollen wir, dass x <= 0 gilt.
o Damit gilt aber auch a - 1 = 0 (wir erinnern uns, dass x = a - 1).
* Für eine Kantenüberdeckung muss also gelten a > 0 ? (a - 1) = 0, also a = 1.
o Mit x=1 als Eingabe haben wir also einen Testfall mit Kantenüberdeckung.
while (x > 0) do
x- -;
* Bei diesem Programmbeispiel geht man mit der Symbolischen Ausführung folgendermaßen vor.
o Für eine Kantenüberdeckung soll die Bedingung x>0 zunächst erfüllt sein, so dass auch die Anweisung x- - ausgeführt wird.
+ Bei der zweiten Iteration soll die Bedingung x>0 jedoch nicht mehr erfüllt sein, so dass die Schleife nicht mehr durchlaufen wird.
+ Die Variable x wird dazu zunächstmit dem Symbol a gleichgesetzt.
+ Da x>0 bei der ersten Iteration erfüllt sein soll, gilt folglich auch a > 0.
+ Nun wird in der Schleife die Anweisung x- - ausgeführt, so dass nun x = a-1 ist.
o Die Anweisung ist beendet und es wird die Bedingung der Schleife erneut geprüft.
o Nun soll die Schleife nicht mehr durchlaufen werden, also wollen wir, dass x <= 0 gilt.
o Damit gilt aber auch a - 1 = 0 (wir erinnern uns, dass x = a - 1).
* Für eine Kantenüberdeckung muss also gelten a > 0 ? (a - 1) = 0, also a = 1.
o Mit x=1 als Eingabe haben wir also einen Testfall mit Kantenüberdeckung.