Definition

Debugging

Mitarbeiter: Valerie Silverthorne, Matthew Heusser und Tom Davis

War der mehrstufige Prozess erfolgreich, einen Fehler zu identifizieren, die Ursache einzugrenzen und eine Lösung zu finden, folgt der letzte Schritt des Debuggens. Dabei wird die Korrektur oder der Workaround getestet, um sicherzustellen, dass es auch funktioniert.

In der Softwareentwicklung beinhaltet das Debugging das Auffinden und Korrigieren von Fehlern im Code innerhalb eines Computerprogramms. So ist Debugging Teil des Software-Testprozesses und Bestandteil des gesamten Software-Entwicklungszyklus. So beginnt der Debugging-Prozess, sobald der eigentliche Code geschrieben wird. Bis zur Fertigstellung des gesamten Softwareprodukts, das aus vielen Bestandteilen unterschiedlicher Entwickler bestehen kann, ist das Debugging ein fortlaufender Prozess. Bei großen Programmen mit vielen Tausenden Codezeilen kann man den Debugging-Prozess durch Ansätze wie Paarprogammierung, Code Reviews und Modultests vereinfachen.

Sobald ein Fehler identifiziert wurde, gilt es diesen auch tatsächlich im Code zu finden. Hierbei sind eigenständige Debugger-Tools oder die Debugging-Komponente einer integrierten Entwicklungsumgebung (IDE) hilfreich. Üblicherweise werden die Fehler in den Funktionen, die am meisten genutzt werden, auch zuerst gefunden und behoben. In manchen Fällen ist nicht die einzelne Zeile des Codes das Problem, sondern das Modul stellt das Problem dar. Hier helfen den Entwicklern Komponententests, die es erlauben eine bestimmte Funktion mit bestimmten Eingaben auszuführen. Exemplarisch seien hier xUnit und JUnit erwähnt.

Üblicherweise werden beim Debugging so genannte Haltepunkte eingerichtet. Das Programm wird dann bis zu diesem Haltepunkt (Breakpoint) ausgeführt und dann stoppt die Ausführung. Typischerweise bietet die Debugging-Komponente der Entwicklungsumgebung dem Programmierer die Möglichkeit, entsprechend Speicher und Variablen anzuzeigen. Wahlweise kann dann das Programm bis zum nächsten Haltepunkt ausgeführt werden, oder auch nur die nächste Codezeile ausgeführt werden oder es lassen sich Variablen beziehungsweise Inhalt der auszuführenden Codezeile ändern.

Analysetools für Quellcode, die sich mit den Themen Sicherheit und typischen Fehlern beschäftigen, können auch beim Debugging hilfreiche Dienste leisten. So kann eine Analyse der Komplexität Module aufspüren, die so komplex sind, dass sie schwer zu verstehen und zu testen sind. Einige Tools können einen Testlauf analysieren, um festzustellen, welche Codezeilen nicht ausgeführt wurden. Dies kann beim Debuggen wertvolle Informationen liefern. Andere Debugging-Werkzeuge erlauben es dem Programmierer unterschiedliche Situationen nachzuvollziehen, etwa wie sich eine App auf einem mobilen verhält und angezeigt wird.

Und es existieren natürlich auch Tools und Skriptsprachen, die nicht in integrierten Entwicklungsumgebung laufen. Dann müssen Entwickler zu manuellen Hilfen beim Debuggen greifen. Dabei werden beispielsweise Werte in ein Protokoll ausgegeben und so entsprechende Anweisungen während der Codeausführung hinzugefügt. Oder programmierte „Wait“-Befehle simulieren einen Haltepunkt, in dem sie beispielsweise auf eine Tastatureingabe warten.

Diese Definition wurde zuletzt im Dezember 2019 aktualisiert

Erfahren Sie mehr über Softwareentwicklung

- GOOGLE-ANZEIGEN

File Extensions and File Formats

ComputerWeekly.de

Close