Zum Inhalt springen

Informatik · Klasse 5–10 · aktualisiert

Debugging: Fehler systematisch finden und beheben

Du lernst, wie Testen und Debuggen zusammenhängen, welche Fehlerarten es gibt und wie du Fehler Schritt für Schritt findest.

0 von 11 Aufgaben gelöst

Debugging: Fehler systematisch finden und beheben

Kurz gesagt

Debuggen heißt, Fehler in einem Programm zu finden und zu beheben. Testen prüft dagegen, ob das Ergebnis stimmt. Du stellst den Fehler zuerst nach, grenzt ihn mit Zwischenausgaben oder Haltepunkten ein und wiederholst danach die Tests.

Dein Spiel stürzt ab oder zählt falsche Punkte. Solche Fehler heißen Bugs. Die Suche nach Bugs nimmt einen großen Teil der Entwicklungszeit in Anspruch. Hier lernst du, wie du dabei ordentlich vorgehst.

Deine Lernziele

Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Mela das Ziel für dich ab.

4 Abschnitte

Ein Programm kann Fehler haben, sogenannte Bugs. Zwei Tätigkeiten helfen dir dabei: Testen und Debuggen.

Beim Testen prüft und bewertet man ein Programm. Man vergleicht das Ist-Ergebnis mit dem Soll-Ergebnis. Das Ist-Ergebnis ist das, was das Programm wirklich liefert. Das Soll-Ergebnis ist das, was herauskommen soll. Danach steht fest: ok oder Fehler. Ein Test zeigt dir also, dass etwas nicht stimmt.

Beim Debuggen geht es um den nächsten Schritt. Man diagnostiziert den Fehler oder das unerwartete Verhalten, man sucht also die Ursache, und man behebt den Fehler. Das deutsche Wort dafür ist „entwanzen“. Beides gehört zusammen: Ein Test zeigt eine Abweichung, dann wird debuggt, danach wird wieder getestet.

Definition

Debuggen

Debuggen (auch Fehlerbehebung) heißt, in einem Computerprogramm Fehler oder unerwartetes Verhalten zu diagnostizieren und zu beheben.

Beispiel: Ausgedachtes Beispiel: Münzen im Spiel

  1. 1Test: Du sammelst 3 Münzen. Soll-Ergebnis: 3 Punkte. Das Spiel zeigt 30 Punkte.
  2. 2Das Testen zeigt: Ist und Soll sind verschieden, also gibt es einen Fehler.
  3. 3Debuggen: Du suchst die Stelle, an der die Punkte falsch berechnet werden, und behebst den Fehler.
  4. 4Danach testest du noch einmal.

Merke: Testen vergleicht Ist- und Soll-Ergebnis. Debuggen sucht die Ursache eines Fehlers und behebt ihn.

Teste dich

LeichtWas passiert beim Testen?

Alles auf einen Blick

Debugging

  • Testen

    Man vergleicht Ist- und Soll-Ergebnis und entscheidet: ok oder Fehler.

  • Debuggen

    Man diagnostiziert Fehler und behebt sie.

  • Fehlerarten

    Syntaxfehler brechen die Regeln der Sprache, Laufzeitfehler treten beim Ablauf auf, Logikfehler liefern bei vollständigem Lauf ein falsches Ergebnis.

  • Vorgehen

    Erst den Fehler nachstellen, dann mit Zwischenausgaben, Haltepunkten oder Zeile für Zeile eingrenzen.

  • Testfall

    Eingabedaten und erwartetes Ergebnis.

  • Grenze

    Tests sind Stichproben und beweisen keine Fehlerfreiheit. Nach Änderungen wiederholt man sie.

Musteraufgabe · Schritt für Schritt

Ausgedachtes Beispiel: Alter in fünf Jahren

  1. 1Aufgabe (ausgedacht): Ein Programm soll zum Alter 5 addieren und das Alter in fünf Jahren ausgeben.
  2. 2Testfall: Eingabe 12, erwartetes Ergebnis 17.
  3. 3Test ausführen: Das Programm gibt 7 aus. Ist-Ergebnis 7 und Soll-Ergebnis 17 sind verschieden, also gibt es einen Fehler.
  4. 4Nachstellen: Auch beim zweiten Versuch gibt Eingabe 12 den Wert 7 aus.
  5. 5Eingrenzen: Eine Zwischenausgabe vor der Rechnung zeigt 12. Die Eingabe stimmt, der Fehler liegt in der Rechnung.
  6. 6Ursache: Dort steht alter − 5 statt alter + 5. Das ist ein Logikfehler (minus statt plus).
  7. 7Beheben: Du änderst die Zeile auf alter + 5.
  8. 8Tests wiederholen: Eingabe 12 gibt 17. Der alte Testfall Eingabe 0 mit erwartetem Ergebnis 5 gibt ebenfalls 5. Beide sind ok.
  9. 9Das heißt nur: Diese zwei Testfälle waren erfolgreich. Fehlerfreiheit ist damit nicht bewiesen.

Fehler finden

Prüfe die Aussagen zu Tests und Fehlersuche In einer Zeile steckt ein Fehler. Tippe sie an.

Lückentext

Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.

Fehlt in einem Programm eine Klammer, ist das ein . Mit einem hält der Debugger das Programm an einer gewählten Stelle an. Nach einer Änderung führt man die Tests aus, denn die Änderung kann andere Funktionen stören.

Karteikasten

Erst selbst überlegen, dann umdrehen.

Übung mit Feedback

Abschluss-Check: Debugging

LeichtWas bedeutet Debuggen?
MittelDu willst ein Programm an einer gewählten Stelle anhalten und dort Variablen ansehen. Was setzt du im Debugger?
SchwerNach einer Reparatur in Funktion A geht Funktion B nicht mehr. Welche Erklärung ist möglich?

Weiterlesen in Informatik