PHP.de Wissenssammlung

Was ist Debugging?

Debugging
Was ist das?

Begriffserklärung

Das Debugging bezeichnet im Prozess der Softwareentwicklung die gezielte Fehlersuche in einem vorhandenen Code. Das Wort leitet sich aus der Negation des Wortes Bug ab, das im Programmiererjargon einen Programmfehler bezeichnet.

Debugging umfasst eine Vielzahl von Methoden, die zunehmend auch durch technische Mittel von Codeeditoren oder IDEs (Integrated development environment, Entwicklungsumgebungen für Programmierer) unterstützt werden. Zu nennende Methoden sind:

  • Ausgabe von systemgenerierten und eigenen Fehlermeldungen
  • Ausgabe von Informationen zur Festellung durchlaufener Codezweige
  • Ausgabe aktueller Variablenwerte
  • Ausgabe eines Backtrace (Liste von durchlaufenen verschachtelten Prozeduren)
  • Logging verschiedener Informationen
  • schrittweise Abarbeitung des Programmcodes durch softwareunterstützte Breakpoints
  • Einzelschrittanalyse des Programmzustands

Debugging in der Webentwicklung kann ein komplexer Prozess sein, weil sich Fehler in verschiedenen Quellcode-Bestandteilen der Applikation ereignen können, bspw. serverseitig durch einen Fehler in PHP Code oder eine ungültige Datenbankabfrage, aber auch auf Clientseite durch logische Fehler in der Auszeichnung oder in einem JavaScript. Somit ist es sehr wichtig, dass man die Zusammenhänge zwischen den eigenen Sprachen sowie die Client-Server-Interaktion verinnerlicht hat.

Die zunehmende Verbreitung von Ajax und JavaScript-erzeugten, dynamischen Inhalten erhöht die Komplexität der Seitengenerierung weiter; und damit auch den Aufwand der Fehlersuche. Eine größere Anzahl von Schichten, welche Inhalt verarbeiten und darstellen, steht der beschränkten Wahrnehmung entgegen, wie eine Ausgabe im Fehlerkontext erkannt werden kann. Es gilt, sich von der reinen (fehlerhaften) Browserdarstellung zur Ursache des Problems ‘durchzuhangeln’.

Nicht zuletzt ist einfaches Debugging ein gutes Argument dafür, seine Applikation in voneinander weitgehend unabhängigen Schichten anzulegen. Das betrifft sowohl die Programmierung selbst, als auch die Abstraktion der oben genannten Darstellungskomponenten.

Dieser Beitrag ist fertiggestellt und wurde zuletzt von hausl bearbeitet.

An diesem Beitrag waren bisher beteiligt: nikosch, Manko10, hausl