Delta Debugging
Delta Debugging (auch Δ-Debugging oder kurz DD) automatisiert die Methode zur Suche nach Fehlerursachen in Programmen nach dem Versuch-und-Irrtum-Prinzip. Auch beim manuellen Debugging wird dieses Prinzip eingesetzt. Ein DD-Algorithmus automatisiert die Aufstellung der Hypothese, die Definition der erforderlichen Parameter, den Programmaufruf und die Auswertung des Programmverhaltens. Durch die Anwendung von DD kann die gesamte Kausalkette isoliert werden, die zu einem Fehler oder allgemeiner zu einem bestimmten Programmverhalten führt.
Entwickelt wurde DD von Andreas Zeller am Lehrstuhl für Softwaretechnik der Universität des Saarlandes.<ref>Andreas Zeller, Holger Cleve, Stephan Neuhaus: [Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Universität des Saarlandes, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am 2014-08-28 (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref>
Vorgehensweise[Bearbeiten]
- Der Algorithmus lokalisiert den Übergang zwischen dem letzten Programmschritt im zu analysierenden Programm, bei dem der Fehler noch nicht auftritt und den ersten Programmschritt, bei dem der Fehler sichtbar wird
- Innerhalb dieses Übergangs werden alle Parameter und alle enthaltenen Programmschritte eingesammelt.
- Jeder enthaltene Programmschritt wird, sowohl im fehlerfreien Zustand als auch im fehlerhaften Zustand, mit allen erforderlichen Parametern aufgerufen.
- Der erste Programmschritt, der eine Verhaltensänderung zeigt, beschreibt den nächsten Übergang.
- Innerhalb des aktuellen Programmschrittes wird der Ist-Zustand gespeichert und erneut eine Analyse wie in Punkt 2 unter Berücksichtigung sämtlicher Parameter durchgeführt.
- Der Algorithmus hat die auslösende Stelle lokalisiert, wenn es keine weiteren Programmschritte innerhalb des aktuellen Programmschrittes gibt, oder wenn keiner dieser Schritte eine Änderung des Verhaltens bewirkt.
Durch den beschriebenen Ablauf wird automatisch eine Kausalkette erstellt, die zum gesuchten Fehler im Programm führt.<ref>Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.</ref>
Abgeleitete Entwicklungen[Bearbeiten]
- Durch eine Erweiterung von DD um eine Wiederherstellungsfunktion für interne Abhängigkeiten entsteht DRReduce.<ref>Peng Liang, Qiong Feng, Wei Song, Xiaotian Ma, Yongqiang Tian: [Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am 2026-06-14 (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref>
- DD bildet die Basis für die Analyse von LLMs durch DDOR.<ref>Dongxia Wang, Haonan Zhang, Jun Sun, Peixin Zhang, Qinyan Zhou: [Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. arXiv, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am 2026-06-06 (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref>
Weblinks[Bearbeiten]
- Delta Debugging project at Software Engineering Chair, Saarland University
- Seminar: Qualitätssicherung in der Softwareentwicklung, Uni-Münster
- Interview mit Andreas Zeller über Delta Debugging
Einzelnachweise[Bearbeiten]
<references />