Debuggen vor dem Vorhandensein von Bugs
Untersuchungen haben gezeigt, dass gute Codierpraktiken (Einrücken, Kommentare, Benennungskonventionen usw.) automatisch die Anzahl von Fehlern im Code verringern. Des Weiteren gibt es einige Vorkehrungen zur Vereinfachung des späteren Testens und Debuggens, die bereits früh im Entwicklungsprozess getroffen werden können. Zu diesen zählen das Erstellen einer Testumgebung, das Festlegen von Zusicherungen und das Überwachen von Ereignisfolgen.
Erstellen einer Testumgebung
Die Systemumgebung, in der eine Anwendung ausgeführt werden soll, ist ebenso wichtig wie die Datenumgebung, die Sie für die Anwendung selbst festgelegt haben. Um die Portabilität zu gewährleisten und einen angemessenen Kontext für das Testen und Debuggen herzustellen, muss Folgendes berücksichtigt werden: Hardware und Software, Systempfade und Dateieigenschaften sowie Verzeichnisstruktur und Dateispeicherorte.
Hardware und Software
Zur Gewährleistung einer höchstmöglichen Portabilität sollten Sie Anwendungen auf der niedrigsten Plattform entwickeln, auf der die Anwendung ausgeführt werden soll. Eine solche Grundplattform richten Sie folgendermaßen ein:
- Entwickeln Sie Ihre Anwendungen mit dem niedrigsten Videomodus, den die Anwendung unterstützen soll.
- Legen Sie die grundlegenden Anforderungen für RAM (Random Access Memory, Arbeitsspeicher) und für den Medienspeicherplatz fest, einschließlich aller erforderlichen Treiber oder gleichzeitig ausgeführter Software.
- Berücksichtigen Sie die Unterschiede, die sich bei Speicherverwaltung, Dateizugriff und beim Sperren von Datensätzen zwischen Netzwerkversionen und eigenständigen Versionen einer Anwendung ergeben.
Systempfade und Eigenschaften von Dateien
Zur Sicherstellung, dass alle erforderlichen Programmdateien auf allen Computern, auf denen die Anwendung ausgeführt werden soll, zur Verfügung stehen, sollten Sie u. U. eine Grunddateikonfiguration definieren. Die folgenden Fragen helfen Ihnen beim Definieren einer solchen Grundkonfiguration:
- Sind für die Anwendung gemeinsam genutzte Systempfade erforderlich?
- Haben Sie die Eigenschaften der Dateien für den Dateizugriff richtig festgelegt?
- Sind die Zugriffsberechtigungen im Netzwerk für alle Benutzer richtig festgelegt?
Verzeichnisstruktur und Speicherorte von Dateien
Enthält der Quellcode Verweise auf absolute Pfad- oder Dateinamen, müssen genau diese Pfade und Dateien vorhanden sein, wenn die Anwendung auf einem anderen Computer installiert werden soll. Dieses Problem können Sie mit Hilfe der folgenden Hinweise vermeiden:
- Visual FoxPro-Konfigurationsdateien. Weitere Informationen zur Verwendung von Konfigurationsdateien finden Sie unter Konfigurieren von Visual FoxPro.
- Erstellen Sie ein eigenes Verzeichnis oder eine eigene Verzeichnisstruktur, um die Quelldateien getrennt von den generierten Anwendungsdateien speichern zu können. So können Sie die Verweise der fertigen Anwendung testen und ermitteln, welche Dateien als Teil der Anwendung verteilt werden.
- Verwenden Sie relative Pfadangaben.
Festlegen von Zusicherungen
Sie können in den Code Zusicherungen aufnehmen, um Ihre Annahmen über die Laufzeitumgebung des Codes zu überprüfen.
So legen Sie eine Zusicherung fest
Identifizieren Sie mit Hilfe des Befehls ASSERT Zusicherungen im Programm.
Wenn die im Befehl ASSERT festgelegte Bedingung den Wert Falsch (.F.) hat, wird ein Zusicherungsmeldungsfeld angezeigt und in das Debug-Ausgabefenster geschrieben.
So könnten Sie z. B. eine Funktion schreiben, die einen Parameterwert ungleich Null erwartet. Die folgende Codezeile in der Funktion bewirkt dann eine Meldung, wenn der Wert des Parameters 0 ist:
ASSERT nParm != 0 MESSAGE "Received a parameter of 0"
Mit Hilfe des Befehls SET ASSERTS können Sie angeben, ob Zusicherungsmeldungen angezeigt werden. Standardmäßig werden Zusicherungsmeldungen nicht angezeigt.
Überwachen von Ereignisfolgen
Wenn Sie das Auftreten von Ereignissen in Relation zu anderen Ereignissen setzen, können Sie einen optimalen Platz für den Code bestimmen.
So überwachen Sie Ereignisse
Wählen Sie im Menü Extras des Debugger-Fensters das Dialogfeld Ereignisüberwachung.
- Oder -
Verwenden Sie den Befehl SET EVENTTRACKING.
Das Dialogfeld Ereignisüberwachung ermöglicht Ihnen die Auswahl der zu überwachenden Ereignisse.
Anmerkung In diesem Beispiel wurden aus der Liste Zu überwachende Ereignisse die Ereignisse MouseMove und Paint entfernt, da diese Ereignisse so häufig auftreten, dass sie die Überwachung der anderen Ereignisfolgen erschweren.
Bei aktivierter Ereignisüberwachung wird bei jedem Auftreten eines Systemereignisses aus der Liste Zu überwachende Ereignisse der Name dieses Ereignisses im Fenster Debug-Ausgabe angezeigt oder in eine Datei geschrieben. Werden Ereignisse im Fenster Debug-Ausgabe angezeigt, können diese trotzdem in einer Datei gespeichert werden, wie unter Ausgabeanzeige beschrieben wird.
Anmerkung Ist das Fenster Debug-Ausgabe nicht geöffnet, so werden keine Ereignisse aufgelistet, selbst wenn das Kontrollkästchen Debugger-Ausgabefenster aktiviert ist.
Siehe auch
Festlegen von Zusicherungen | Isolieren von Problemen | Testen und Debuggen von Anwendungen | Debugger | Anzeigen von gespeicherten Werten | Verwenden des automatisierten Eingabehilfentests