9. Softwareentwicklung
alle syntaktischen Fehler beseitigt haben, kann Ihr Programm simuliert oder in die
C-Control II übertragen werden.
9.5 Simulation und Debugging
9.5.1 Test und Fehlersuche
Nachdem ein Programm syntaktisch korrekt compiliert wurde, muß die funktionelle
Fehlerfreiheit überprüft werden. Es ist nicht ratsam, die C-Control II Unit mit einem
Programm zu laden, dessen prinzipielle Funktion nicht im Simulator der Integrierten
Entwicklungsumgebung getestet wurde. Schätzen Sie selbst ab, welche Folgen eine
Programmfehlfunktion beim Betrieb Ihrer Applikation haben kann.
Von einfachsten Anwendungen abgesehen, wird ein Programm selten auf Anhieb so
funktionieren, wie es im Detail gewünscht ist. Manche Fehlfunktion ist offensichtlich und
reproduzierbar ("Immer wenn ich die Taste drücke, dann ..."). Die Ursache kann meist
leicht gefunden und beseitigt werden. Schwieriger ist das Finden von Fehlern, die nur in
der Verkettung mehrerer, zum Teil seltener Bedingungen auftreten. ("Wochenlang läuft alles
einwandfrei, dann ...").
Einige Empfehlungen zum Test und zur Fehlersuche:
· Es gilt der Grundsatz: alles, was nicht getestet wurde, wird früher oder später
Fehlfunktionen zeigen -niemals glauben, daß etwas funktioniert, sondern testen und
wissen.
· Testen Sie ein Programm nicht erst im vollen Ausbau. Stellen Sie zunächst die Korrektheit
aller einzelnen Unterprogramme (Threads, Funktionen) sicher, fügen Sie die Bestandteile
stückweise zusammen, und führen Sie immer wieder Zwischentests durch.
· "Füttern" Sie Ihre Funktionen zum Test mit allen möglichen Eingabedaten, nicht nur mit
den für Ihre Anwendung "normalen" Werten. Früher oder später kommt es zu
"unnormalen" Situationen, an die Sie im Moment vielleicht nicht denken.
· Bauen Sie in Ihr Programm Statusausgaben auf das LCD ein, auch wenn Ihre
Anwendung das LCD nicht benötigt, nutzen Sie freie LEDs zur Ausgabe von
Statussignalen. Beobachten Sie das Programmverhalten anhand der Statusausgaben
und -signale.
· Kreisen Sie Fehler durch gezieltes Auskommentieren von Programmzeilen ein. Nutzen Sie
Breakpoints, Einzelschrittbetrieb und die Überwachung und Anzeige von Variablen.
89