





Ähnlich wie die Online-Hilfe, die häufig verwendet werden sollte, um die Syntax von Befehlen nachzuschauen oder die Eigenschaften und Methoden von Steuerelementen zu erforschen, so sollten auch die Programm-Testwerkzeuge häufig benutzt werden, um zur Quelle eines Fehlers vorzustoßen, wenn ein Programm sich nicht so verhält, wie es eigentlich sollte.
Beim Schreiben von VB-Anwendungen können drei Arten von Fehlern auftreten:
Syntaxfehler (Kompilierungs-Fehler)
Laufzeitfehler
Logische Fehler
Dies sind grammatikalische Fehler in der Formulierung von Befehlen, und werden nach dem Abschließen einer Programmzeile sofort angemerkt (wenn die Automatische Syntaxüberprüfung - im Untermenü Optionen des Menü Extras - mit einem Häkchen versehen ist). Im folgenden Beispiel ist die Syntax nicht korrekt - die Eigenschaft von Label1 fehlt (die Zeile sollte korrekt lauten Label1.Caption = Größe). Visual Basic hat diesen Fehler zur Entwurfszeit signalisiert, indem die Programmzeile rot dargestellt und der Cursor an die betreffende Stelle des Fehlers gesetzt wird, und eine Dialogbox mit dem entsprechenden Hinweis erscheint.

Diese Fehler können erst zur Laufzeit des Programms entdeckt werden. Die Syntax der Befehle ist korrekt, aber bei der Ausführung verursachen Sie eine Situation, bei der das Programm auf einen undefinierten Wert stößt oder zum Absturz gebracht wird. Fehlerbehandlungs-Routinen können eingesetzt werden, um solche Fehler aufzufangen und zu behandeln (diese Dinge gehen über den Rahmen dieses Kurses hinaus).
Beispiele für Laufzeitfehler sind beispielsweise eine versuchte Division durch 0, oder der Versuch, auf ein nicht vorhandenes Objekt zuzugreifen, wie im nachfolgenden Beispiel (wo ein Steuerelement Label2 nicht existiert).


Diese Fehler bewirken, daß sich das Programm falsch verhält. Hauptsächlich entstehen solche Fehler, wenn der Programmierer nicht den richtigen Befehlsablauf für die Lösung einer Aufgabe einrichtet. Typische Probleme können falsch angeordnete Befehle, nicht initialisierte oder reinitialisierte Variablen, Zuweisung eines Ergebnisses zu einer falschen Variable, Verwendung von '<' statt '<=', Verwendung von 'And' anstelle von 'Or', oder Auslassung eines wichtigen Schritts in einer Prozedur sein. Logische Fehler können immer in einem Programm schlummern, selbst wenn es scheinbar anstandslos läuft - sie treten nur unter ganz bestimmten Bedingungen zutage. Deswegen ist penibles und sorgfältiges Testen der Programme so wichtig.
Anmerkung: Auch solche Situationen, in denen der Benutzer unsinnige oder falsche Eingaben gemacht hat, sollten durchgespielt werden, um das Verhalten des Programms in solchen Fällen zu testen.
Die Test-Werkzeuge wurden entwickelt, um bei folgenden Problemen zu helfen:
Aufspüren von Laufzeit- und logischen Fehlern
Nachvollziehen des Verhaltens von fehlerfreiem Programmcode
Es kann sehr verzwickt sein, Programmfehler zu isolieren. Manchmal treten sie am Ende langer Berechnungsketten oder nach vielzahligem Durchlaufen von Schleifen auf. Programme laufen in der Regel so schnell ab, daß man keine Möglichkeit hat, nachzuvollziehen, was im einzelnen passiert, es sei denn, man fügt Diagnose-Schritte ein (wie beispielsweise Print-Befehle an bestimmten Stellen, um dem Programmablauf nachzugehen, oder nach Rechenprozeduren, um Zwischenergebnisse anzuzeigen).
VB verfügt über Werkzeuge, um die Fehlersuche und -behebung einfacher zu gestalten:
| Symbol | Test-Werkzeug | Zweck |
|---|---|---|
![]() |
Haltepunkt ein/aus | Schaltet den Haltepunkt (eine markierte Stelle im Programm, an der die Ausführung automatisch angehalten wird) in der aktuellen Zeile ein oder aus. |
![]() |
Aktuellen Wert anzeigen | Zeigt den Wert der aktuellen Auswahl im Codefenster an. |
![]() |
Abfolge | Zeigt die Struktur der aktiven Aufrufe an. |
![]() |
Einzelschritt | Führt eine Codezeile einzeln aus und verzweigt in aufgerufene Prozeduren. |
![]() |
Prozedurschritt | Führt eine Codezeile im Codefenster einzeln aus, wobei aufgerufene Prozeduren als Einheit ausgeführt werden. |
Sie können Haltepunkte zur Entwurfszeit (oder im Haltemodus) verwenden, die anderen Werkzeuge können nur im Haltemodus benutzt werden.
Setzen oder Entfernen eines Haltepunkts:
Clicken sie im Code-Fenstern auf den Beginn jener Zeile, in der Sie die Ausführung anhalten möchten.
Wählen Sie 'Haltepunkt ein/aus' im Menü Extras (oder drücken Sie die Funktionstaste F9).
Änderung der Modi mit der Symbolleiste
| Symbol | Modus | Verfügbarkeit |
|---|---|---|
![]() |
Starten/Fortsetzen | Entwurfszeit |
![]() |
Unterbrechen | Laufzeit |
![]() |
Beenden | Laufzeit oder Haltemodus |
Die dritte Spalte (Verfügbarkeit) zeigt an, wann (in welchem Modus) dieses Symbol verwendet werden kann.
Zur Entwurfszeit kann man die Oberfläche oder den Programmcode ändern, doch den Effekt auf das Programm stellt man erst zur Laufzeit fest. Zur Laufzeit kann man zwar das Verhalten des Programms beobachten, aber keine Änderungen vornehmen.
Der Haltemodus unterbricht die Ausführung des Programms und gewährt einen Einblick zu einem bestimmten Zeitpunkt. Variablen und Eigenschaften-Einstellungen bleiben erhalten und können untersucht werden. Im Haltemodus ist es möglich:
Manchmal benötigt die Fehlersuche eine Analyse, was mit bestimmten Daten passiert. Ein Problem könnte bei der Zuweisung eines Wertes zu einer besimmten Variable oder Eigenschaft aufgetreten sein, aber man möchte feststellen, wo genau dies passiert ist. Das Testfenster ermöglicht die Anzeige der Werte von Variablen sowohl während dem Laufen eines Programms als auch nach einer Unterbrechung. Das Fenster besteht aus zwei Teilen:
Beobachtungs-Bereich
Dieser Bereich liegt unmittelbar unter der Titelzeile, und ist nur dann sichtbar, wenn ein Ausdruck ausgewählt worden ist, der während der Code-Ausführung beobachtet werden soll. Die angezeigten Informationen beinhalten den Kontext des zu beobachtenden Ausdrucks, den Ausdruck an sich, und seinen Wert im Moment einer Programmunterbrechung. Wenn der Kontext nicht innerhalb der Reichweite des Ausdrucks liegt, wird der momentane Wert des Ausdrucks im Moment der Programmunterbrechung nicht angezeigt
Unmittelbarer Bereich
Dieser Bereich liegt unmittelbar unter der Titelzeile, oder unterhalb des Beobachtungs-Bereichs, wenn dieser angezeigt wird. Im unmittelbaren Bereich kann Code eingegeben werden, der sofort ausgeführt wird. Während man sich im unmittelbaren Bereich befindet, kann man:

Das Testfenster kann verschiedene Dinge tun, abhängig von dem Modus, in dem Visual Basic gerade läuft:
Wenn die Ausführung einer Anwendung unterbrochen worden ist und VB sich im Haltmodus befindet kann das Testfenster benutzt werden, um dort Einzelzeilenbefehle einzugeben und ausführen zu lassen. Beispielsweise kann der Benutzer das Testfenster anclicken, dort 'Print Time$' eintippen und die RETURN-Taste drücken. Als Ergebnis wird die aktuelle Zeit im Testfenster angezeigt. Nahezu jede Codezeile kann im Testfenster ausgeführt werden. Das Testfenster kann auch benutzt werden, um den Inhalt von Variablen der Anwendung abzurufen.
Zur Laufzeit kann man zwar keine Einträge im Testfenster vornehmen, man kann sich aber Variableninhalte in diesem anzeigen lassen. Das Testfenster ist ein Objekt welches über eine einzige Print-Methode verfügt. Zum Beispiel sendet die folgende Codezeile den Namen der Schriftart, die im Bezeichnungsfeld 'Label1' benutzt wird, zur Laufzeit an das Testfenster:
Debug.Print Label1.FontName
Variablen oder Konstanten können in der gleichen Weise ausgedruckt werden:
Debug.Print AktuellerTag Debug.Print "An dieser Stelle im Code der Schaltfläche cmdBerechnen_Click angekommen."
Anmerkung: Das VB-Programm, das gerade läuft, verdeckt möglicherweise das Testfenster, daher ist es ratsam, die Fenster so anzuordnen, daß das Testfenster eingesehen werden kann.
Das Debugging ist ein Prozeß, mit dem Sie Fehler in Ihrem Code finden und beheben können. Berücksichtigen Sie die folgenden Anregungen, um Programmcode in VB zu testen.
Drucken Sie den Code aus, wenn Sie sich mit dem Lesen von Code auf Papier leichter tun als am Bildschirm.
Starten Sie die Anwendung, um Problemstellen zu finden:
Benutzen Sie die Testwerkzeuge und -techniken, um Fehler zu isolieren und um den Programmfluß anzuzeigen:
Testen Sie vorgenommene Fehlerkorrekturen:
Hauptseite