Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
22 KAPITEL 3. PROGRAMMENTWICKLUNG<br />
3.1.4 Test<br />
In der Testphase mu uberpruft werden, ob das entwickelte Programm die Problemstellung korrekt<br />
und vollstandig lost. Dazu wird das Programm mit verschiedenen Initialzustanden bzw.<br />
Eingabewerten ausgefuhrt und uberpruft, ob es die erwarteten Ergebnisse liefert. Man kann eigentlich<br />
immer davon ausgehen, da Programme nicht auf Anhieb korrekt sind, was zum einen<br />
an der hohen Komplexitat des Programmentwicklungsprozesses und zum anderen an der hohen<br />
Prazision liegt, die die Formulierung von Programmen erfordert. Insbesondere die Einbeziehung<br />
von Randbedingungen wird von Programmieranfangern hau g vernachlassigt, so da das Programm<br />
im Normalfall zwar korrekte Ergebnisse liefert, in Ausnahmefallen jedoch versagt.<br />
Genauso wie der Algorithmusentwurf ist auch das Testen eine kreative Tatigkeit, die viel Erfahrung<br />
voraussetzt und daruber hinaus ausgesprochen zeitaufwendig ist. Im Durchschnitt werden<br />
<strong>ca</strong>. 40 % der Programmentwicklungszeit zum Testen und Korrigieren verwendet.<br />
Auch durch noch so systematisches Testen ist es in der Regel nicht moglich, die Abwesenheit<br />
von Fehlern zu beweisen. Es kann nur die Existenz von Fehlern nachgewiesen werden. Aus<br />
der Korrektheit des Programms fur bestimmte uberprufte Initialzustande bzw. Eingabewerte<br />
kann nicht auf die Korrektheit fur alle moglichen Initialzustande bzw. Eingabewerte geschlossen<br />
werden.<br />
Im folgenden werden ein paar Teststrategien vorgestellt:<br />
Das Testen sollte aus psychologischen Grunden moglichst nicht nur vom Programmierer<br />
selbst bzw. allein durchgefuhrt werden. Hau g werten Programmierer das Entdecken von<br />
Fehlern als personlichen Mi erfolg und sind daher gar nicht daran interessiert, Fehler zu<br />
nden. Sie lassen daher die erforderliche Sorgfalt vermissen.<br />
Konstruieren Sie sogenannte Testmengen, das sind Mengen von moglichen Initialzustanden<br />
bzw. Eingabewerten fur das Programm. Die Testmengen sollten dabei typische und untypische<br />
Initialzustande bzw. Eingabewerte enthalten. Auf jeden Fall mussen Grenzwerte<br />
berucksichtigt werden, das sind Werte, die gerade noch als Eingabewerte zugelassen sind,<br />
wie bspw. der kleinst- oder gro tmogliche Wert bei Zahlen oder der leere Text bei Texteingaben.<br />
Uberlegen Sie sich vor der Durchfuhrung eines Testlaufs des Programms genau, welche<br />
Ergebnisse Sie erwarten.<br />
Uberprufen Sie nicht nur, ob das Programm das tut, was es soll, sondern auch, ob es etwas<br />
tut, was es nicht soll.<br />
Gehen Sie nach dem Finden und Korrigieren eines Fehlers nie davon aus, da nun alle<br />
Fehler beseitigt sind.<br />
Wenn Sie einen Fehler gefunden und beseitigt haben, mussen alle vorherigen Testlaufe<br />
nochmal wiederholt werden, um sich zuvergewissern, da sich durch die Korrektur nicht<br />
neue Fehler ins Programm geschlichen haben.<br />
Es werden drei Klassen von Fehlern, die im Programmentwicklungsproze auftreten konnen,<br />
unterschieden: syntaktische, logische und sogenannte Laufzeitfehler. Syntaktische Fehler werden