06.08.2013 Aufrufe

PDF-Datei (ca. 1 MByte)

PDF-Datei (ca. 1 MByte)

PDF-Datei (ca. 1 MByte)

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

150 KAPITEL 12. PROGRAMMENTWURF<br />

Losungsweg gestellt wurden, eingehalten werden. Vollstandig bedeutet, da das Programm fur<br />

alle zulassigen Anfangsgro en korrekt arbeitet. Dabei ist es im allgemeinen allerdings nicht<br />

moglich, Testlaufe fur alle moglichen Anfangsgro en durchzufuhren, in der Regel gibt es namlich<br />

unendlich viele mogliche Anfangszustande. Daher besteht eine wesentliche Aufgabe der Testphase<br />

darin, sogenannte Testmengen zu bilden. Testmengen werden derart gebildet, da die Menge<br />

der zulassigen Anfangsgro en in (disjunkte) Teilmengen zerlegt wird, wobei alle Elemente einer<br />

Teilmenge jeweils gewisse Gemeinsamkeiten bzw. gleichartige Charakteristiken aufweisen. Aus<br />

jeder dieser Teilmengen wird ein Vertreter gewahlt und in die Testmenge eingefugt. Hat man<br />

eine korrekte Zerlegung der Menge der zulassigen Anfangsgro en gewahlt, d.h. eine korrekte<br />

Testmenge bebildet, und arbeitet das Programm fur alle Elemente der Testmenge korrekt, dann<br />

kann man ruckschlie en, da das Programm vollstandig korrekt ist. Allerdings ist die Art und<br />

Weise einer Teilmengenzerlegung der Menge der Anfangsgro en aufgabenspezi sch und erfordert<br />

vom Programmierer Erfahrung und Intuition.<br />

Leider wird die Testphase nicht nur von Programmieranfangern hau g vernachlassigt. Man la t<br />

sein Programm ein- oder zweimal laufen, alles lauft glatt ab, das Programm scheint also korrekt<br />

zu sein. Hierbei handelt es sich um ein psychologisches Problem; niemand gesteht sich selbst<br />

gerne Fehler ein, also ist man auch gar nicht daran interessiert, Fehler zu nden. Daher der<br />

dringende Appell: Widmen Sie insbesondere der Testphase viel Aufmerksamkeit, und lassen Sie<br />

das Programm eventuell auch mal von anderen Personen testen.<br />

In Kapitel 3.1.4 wurden einige Teststrategien vorgestellt, die im folgenden nun am obigen Beispiel<br />

demonstriert werden. Von besonderer Bedeutung ist dabei wie bereits erwahnt die Konstruktion<br />

von Testmengen, wobei insbesondere Grenzwerte zu bercksichtigen sind.<br />

Notieren Sie sich beim Zusammenstellen der Testmengen nicht nur die Ausgangsgro en, sondern<br />

jeweils auch das erwartete Ergebnis, und uberprufen Sie nach Beendigung des Programms, ob<br />

das tatsachliche Ergebnis mit dem erwarteten ubereinstimmt.<br />

Im Umfeld der Hamsterprogramme bestehen Testmengen immer aus moglichen Hamster-Territorien,<br />

auf denen das zu testende Hamsterprogramm gestartet werden konnte. Abbildung 12.2<br />

enthalt eine typische Testmenge fur das obige Beispiel. Teil (a) der Abbildung zeigt eine " normale\<br />

Hamsterlandschaft, Teil (b) skizziert den Grenzfall, da der Hamster bereits anfangs direkt<br />

vor dem Berg steht und in Teil (c) ist der Berg nur eine einzige Stufe hoch.<br />

Bei der Konstruktion von Testmengen fur Ihre Hamsterprogramme ist es wichtig zu wissen,<br />

da Sie naturlich nur Situationen berucksichtigen mussen, die auch mit der Aufgabenstellung<br />

konform sind. Wird Ihr Programm mit nicht-zulassigen Ausgangsgro en gestartet, kommt es<br />

zwangslau g zu Fehlern; aber das sind nicht Ihre Fehler, sondern die Fehler desjenigen, der das<br />

Programm gestartet hat.<br />

Lassen Sie nun das Hamsterprogramm fur alle Elemente der Testmenge laufen. Kontrollieren<br />

Sie dabei sowohl den Zustand der Landschaft bei Beendigung des Programmes (auf jeder Stufe<br />

einschlie lich dem Gipfel { und nur dort { liegt genau ein Korn; der Hamster be ndet sich auf<br />

dem Gipfel) als auch den Weg des Hamsters (der Hamster darf nicht in " Absturzgefahr\ kommen).<br />

Sie werden feststellen, da das Beispielprogramm fur alle Elemente der Testmenge korrekt<br />

ablauft und korrekte Ergebnisse liefert. Das Programm scheint also in der Tat die Problemstellung<br />

korrekt und { unter der Voraussetzungen, da die Testmenge korrekt gebildet wurde {<br />

vollstandig zu losen.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!