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.[1]
Vorgehensweise
[Bearbeiten | Quelltext 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.[2]
Abgeleitete Entwicklungen
[Bearbeiten | Quelltext bearbeiten]Weblinks
[Bearbeiten | Quelltext bearbeiten]Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ Andreas Zeller, Holger Cleve, Stephan Neuhaus: About Delta Debugging. In: Delta Debugging. Universität des Saarlandes, 23. März 2014, archiviert vom am 28. August 2014; abgerufen am 14. Juni 2026 (englisch).
- ↑ Andreas Zeller, Holger Cleve: Locating Causes of Program Failures. St. Louis, Missouri, USA März 2005, S. 3 (englisch, st.cs.uni-saarland.de [PDF]).
- ↑ Peng Liang, Qiong Feng, Wei Song, Xiaotian Ma, Yongqiang Tian: DRReduce: Enhancing Syntax-Guided Program Reduction with Dependency Reconstruction. In: arXiv. 19. Mai 2026, archiviert vom am 14. Juni 2026; abgerufen am 14. Juni 2026 (englisch).
- ↑ Dongxia Wang, Haonan Zhang, Jun Sun, Peixin Zhang, Qinyan Zhou: DDOR: Delta Debugging for Explainable Overrefusal Testing and Repair. In: Cornel University. arXiv, 2. Juni 2026, archiviert vom am 6. Juni 2026; abgerufen am 14. Juni 2026 (englisch).