Debugging ist die systematische Suche nach der Ursache eines Softwarefehlers und dessen Behebung. Der Name geht auf die frühe Rechnertechnik zurück, in der Fehler tatsächlich durch Insekten in der Hardware entstehen konnten; heute ist ein Bug jede Abweichung zwischen erwartetem und tatsächlichem Verhalten.
Der Ablauf folgt einem festen Muster: den Fehler zuverlässig reproduzieren, den betroffenen Bereich eingrenzen, die Ursache bestimmen, sie beheben und anschließend prüfen, dass nichts anderes bricht. Werkzeuge dafür sind der Debugger, der ein Programm anhält und den Zustand aller Werte einsehbar macht, sowie Protokollausgaben und die Entwicklerkonsole des Browsers.
Der Aufwand ist notorisch schwer zu schätzen, weil die Suche nach der Ursache je nach Fall Minuten oder Tage dauern kann, während die eigentliche Korrektur oft aus einer Zeile besteht. Besonders zäh sind Fehler, die nur sporadisch, nur unter Last oder nur in der produktiven Umgebung auftreten. Für Auftraggeber ist die Reproduzierbarkeit der wirksamste Beitrag: Eine Meldung mit konkreten Schritten, Zeitpunkt, verwendetem Browser und Bildschirmfoto verkürzt die Suche erheblich gegenüber dem Hinweis, dass etwas nicht funktioniert.