Lernpfad:Objektorientierte Programmierung mit Java/Systematisch Fehler suchen

Aus Informatik-Box
Zur Navigation springen Zur Suche springen

Jedem Programmierer passieren Fehler. Je größer das Programm wird, desto größer wird sich die Wahrscheinlichkeit, dass sich ein Fehler einschleicht. Einige Fehler bemerkt man schnell, wenn der Compiler beim Übersetzen eine Fehlermeldung ausgibt. Andere Fehler bemerkt man erst, wenn das Programm ausgeführt wird. In der Informatik kennt man sie als Bugs.

Die Suche nach Fehlern ist eine Kunst für sich. Man kann drei Niveaus unterscheiden, wie professionell man dabei vorgeht.

Niveau 1: Versuch und Irrtum

Anfänger gehen zur Fehlersuche häufig nach dem Versuch-und-Irrtum-Prinzip vor. Dafür startest du das Programm und prüfst, ob es das Erwartete Ergebnis produziert. Ist dies nicht der Fall, dann wird im Programm etwas dort geändert, wo der Fehler vermutet wird. Dann wird wieder getestet, ob das Ergebnis nun der Erwartung entspricht.

Dieses Vorgehen ist sehr Zeitaufwändig und oft frustrierend, da du nur rätst, wo der Fehler liegt. Da du als Anfänger noch nicht weißt, wo typische Fehlerquellen liegen, suchst du oft an der falschen Stelle und im schlimmsten Fall baust du neue Fehler ein.

Du solltest möglichst schnell versuchen, auf dem nächsten Niveau zu arbeiten.

Niveau 2: Logging

Etwas gezielter nach Fehlern suchen kannst du, indem du in deinem Programm Ausgaben auf der Kommandozeile machst. In der Informatik nennt man das Logging.

Die einfachste Variante des Loggings in Java erhältst du mit System.out.println(String). Dieser Befehl gibt einen String auf der Kommandozeile (oder Konsole) aus. So kannst du zum Beispiel den Wert einer Variablen zu einem bestimmten Zeitpunkt ausgeben lassen:

for( int i = 100; i != 0; i *= -2 ) {
    i = (i-1) % 5;
    System.out.println("i ist "+i);
}

Niveau 3: Der Debugger

Systematisches Testen

Fragen und Antworten finden