Litcius/Paper detail

Explainable automated debugging via large language model-driven scientific debugging

Sungmin Kang, Bei Chen, Shin Yoo, Jian–Guang Lou

2024Empirical Software Engineering39 citationsDOIOpen Access PDF

Abstract

Abstract Automated debugging techniques have the potential to reduce developer effort in debugging. However, while developers want rationales for the provided automatic debugging results, existing techniques are ill-suited to provide them, as their deduction process differs significantly froof human developers. Inspired by the way developers interact with code when debugging, we propose Automated Scientific Debugging ( AutoSD ), a technique that prompts large language models to automatically generate hypotheses, uses debuggers to interact with buggy code, and thus automatically reach conclusions prior to patch generation. In doing so, we aim to produce explanations of how a specific patch has been generated, with the hope that these explanations will lead to enhanced developer decision-making. Our empirical analysis on three program repair benchmarks shows that AutoSD performs competitively with other program repair baselines, and that it can indicate when it is confident in its results. Furthermore, we perform a human study with 20 participants to evaluate AutoSD -generated explanations. Participants with access to explanations judged patch correctness more accurately in five out of six real-world bugs studied. Furthermore, 70% of participants answered that they wanted explanations when using repair tools, and 55% answered that they were satisfied with the Scientific Debugging presentation.

Topics & Concepts

DebuggingComputer scienceCorrectnessAlgorithmic program debuggingProgramming languageSoftware engineeringProcess (computing)Code (set theory)Software bugHuman–computer interactionSoftwareSet (abstract data type)Software Engineering ResearchSoftware Testing and Debugging TechniquesSoftware Reliability and Analysis Research
Explainable automated debugging via large language model-driven scientific debugging | Litcius