Jürgen Lindner/JL	D 45149 Essen, 09.05.2004

E:\VRR\JL\HOMEPAGE\allgemei\V1090504.WPD	fon: +49 201 871 59 55

fax: +49 201 871 59 56

mail@lindner-essen.de

Vermerk

Betreff:.

Flinke Testroutinen ...

Nach etwas Übung und Erfahrung weiß man, daß man Makroprozeduren sinnvollerweise in ablauffähige Module gliedert. Dies sind Einzelbausteine begrenzten und abgegrenzten Umfangs, die man übersichtlich, zunächst separat, nach und nach schrittweise kombiniert, testen kann. Beim Abspeichern einer Befehlsfolge tritt der Makro-Compiler in Tätigkeit: Er überprüft die gesamte Befehlsfolge auf formale Richtigkeit der Einzel-Befehle, etwa auf korrekte Schreibweise, aber auch auf Konsistenz von Sprachkonstrukten und des Programmablaufes ( ... "vergessene" EndIF's oder schließende Klammern ... )

Erst wenn man eine Makroprozedur einmal "fehlerfrei" abspeichern konnte, läßt sich auch deren korrekte Ausführung überprüfen: Ob nämlich das Makro - wenn überhaupt - mehr oder weniger optimal das tut, was man sich beim Programmentwurf gedacht hat.

Erst bei solchen Testläufen treten oft logische Schnitzer zutage, die der Programmierer nicht bedacht hat, auch solche, die ein Compiler nicht erkennen kann. Dann gilt es, den oder die Fehler durch sinnvolle Eingriffe in den Programmablauf einzugrenzen und auszumerzen.

Dies kann bedeuten, daß man Zwischenzustände der Verarbeitung erkennbar anzeigen muß, dazu ist es meist notwendig, das Programm in überschaubaren kurzen Phasen oder sogar in Einzelschritten abarbeiten zu lassen.

WordPerfect kennt dazu zwei Handhabungen: Der Makro-Befehl "Prompt" hält den Ablauf an dafür vorgesehenen Meilensteinen an, erlaubt so Anzeige, Betrachtung und Analyse der Situation bis zur Fortsetzung durch den Abschlußbefehl "EndPrompt".

Der Makrobefehl "Step(On!)" erlaubt, den Programmablauf in Einzelschritten mit dem selben Ziel, "Step(Off!)" beendet diesen Zustand. In der Betriebsfirm "Step(On!)" bieten alle WordPerfect-Versionen 6.1 und höher einen Debug-Modus, der insbesondere Auskunft über Werte von Programmvariablen gibt.

Die "Prompt"-Anweisung ist ein Schnipsel von fünf Programmzeilen (Statements): In den ersten beiden werden die Anzeigeinformationen festgelegt, indem man sie Variablen zuweist. Der darauf folgende eigentliche Prompt-Befehl hält das Programm an und macht die vorgegebenen Informationszustände am Bildschirm sichtbar. Der Befehl "EndPrompt" beendet diesen Ruhezustand.

Dazwischen liegt entweder ein Befehl "Wait(x) mit Angabe der Wartezeit in Zehntelsekunden oder "Pause", bei dem der Benutzer das Pausenende per Tastatureingabe selber bestimmt.

Diese Test-Einträge - einschließlich Kommentarzeilen - leistet das Dienstmakro "JLPROMPT.WCM", die der Programmierer auf diese Weise in aller Schnelle (per Tastatur-Makro1 wie etwa Alt-Ctrl-P) an beliebiger Stelle des Programmcode einfügen und durch Eingaben der Werte "x" und "y" der Anzeigevariablen vervollständigen kann:

// ============x=============

xxprotit:= "x"

xxpromel:= "y"

Prompt(xxprotit ; xxpromel ; 4; 150; 250)

PAUSE

// Wait(11)

EndPrompt

// ========== JLPROMPT.WCM =============

Die enthaltenen Zahlenwerte kennzeichnen die Art des angezeigten Ikon-Symbols und die Bildschirmkoordinaten des Prompt. Wahlweise kommentiert man die Anweisung "Wait" oder "Pause" durch das Kommentar-Zeichen Doppel-Slash (//) aus. Zur deutlichen Kennzeichnung ist der Schrifttyp auf Courier New2 gesetzt, begrenzende Kommentarzeilen, erleichtern nach dem Gebrauch schnelles Entfernen der Testhilfe.

Ähnlich funktioniert das Dienstmakro "JLSTEPON.WCM", es leistet ebenso schnell auch gute Dienste, insbesondere wenn man es durch ein Tastatur-Makro startet.

//

// TEST-Eintrag - Step & Display - On|Off

Step(On!)

// Step(Off!)

// Display(On!)

// Display(Off!)

//

Hierin kann der Programmierer durch Wahl der Kommentarzeichen // den Makroablauf in Einzelschritten ebenso wie die Aktualisierung der Bildschirmanzeige für häufige Tests ohne nennenswerte Zeitverluste ein- oder ausschalten.

Die Beispieldateien dieser vergleichsweise einfachen Dienstmakros stehen gebrauchsfertig zum Download bereit. Darüber hinaus werden wir später für anspruchsvollere Aufgaben auch dementsprechend umfangreichere und komplexere Exemplare kennenlernen. Bereits an dieser Stelle sei gesagt, daß sich der Programmieraufwand für die Erstellung solch technischer Hilfen, damit jede Mühe und Sorgfalt, auf lange Sicht immer vielfach bezahlt macht.