Die Testhilfe

Ein Programm, das Fehler enthält, wird mit dem Debugger getestet. Sinn eines solchen Vorgehens ist es, das Programm an bestimmten Stellen anzuhalten und ausgesuchte Variablen einzusehen. Dieses Verfahren ist besonders dann sinnvoll, wenn schwerwiegende Fehler den Ablauf eines Programms stören oder zu Abbrüchen führen.

Adressierfehler, die beispielsweise durch falsche Indizierung von Arrays hervorgerufen werden, führen zu solchen Störungen. Eine Sitzung mit dem Debugger schafft dann meistens Abhilfe.

Was aber ist, wenn der Fehler lange vor dem Abbruch sein Unwesen treibt und ein Array nach dem anderen mit unsinnigen Zeichen füllt, bis der dafür verantwortliche Index schließlich in geschützte Bereiche greift. Der Abbruch ist dann fällig; das Programm hinterlässt geradezu ein Trümmerfeld von Variableninhalten. Es ist noch nicht eimal sicher, ob in einer solchen Hauptspeicherlandschaft der schuldhafte Index erkennbar ist.

Haltepunkte für den Debugger, die weit vor dem Abbruch das Programm anhalten und eine Variableneinsicht gestatten, sind im Allgemeinen der Weg, ungewünschte oder fehlerhafte Operationen im Programm früzeitig zu erkennen.

Herkömmliche Debugger haben allerdings einen Nachteil: sie gestatten am Haltepunkt die Einsicht Variablen, am nächsten Haltepunkt aber ist diese Einsicht nicht mehr gegeben; die angezeigten Inhalte sind nämlich durch neue ersetzt.

Die Testhilfe weist einen Ausweg: In das Quellprogramm werden Aufrufe eingelegt, die eine Identifikation und eine Variablenangabe enthalten. Bei Ausführung dieses Aufrufes werden Identifikation und Variableninhalt in einer Ausgabedatei protokolliert; besondere Aufrufe zeigen die letzten Protokollinhalte in einem Bildschirmfenster an. Damit sind verschiedene Inhalte einer Variablen, die sich aus verschiedenen Aufrufen ergeben, gleichzeitig erkennbar. Nach Programmende lassen sich Variableninhalte und die dazugehörigen Identifikationen in einem Fenster eines Texteditors analysieren. Mit der Testhilfe sind Abläufe in Schleifendurchgängen gut zu verfolgen. Ein Beispiel in C soll das verdeutlichen.

Das Programm und seine Beschreibung sowie ein Beispiel in der Programmiersprache C sind Textdateien oder Dateien zum Downloaden. Die Textdateien lassen sich durch den Browser problemlos anzeigen und originalgetreu abspeichern. Die DLL- und die LIB-Datei bilden den Kern, für die Einbindung der Testhilfe in das auzutestende Programm.

Folgende Downloads und Textdateien sind verfügbar:

testdoc.txt:         Programmbeschreibung                   Hier
test.lib:               LIB-Datei für den Linker                 Hier
test.dll:               DLL-Datei für die Aufrufe               Hier
TEST.TXT:       Protokoll-Datei der Demonstration   Hier
htest.cpp:           C-Programm zur Demonstration       Hier
htest.exe:           EXE-Datei zu htest.cpp                   Hier
all.zip:               Alle Dateien im ZIP-Format             Hier