Dbgbench.github.io
DBGBench Website:
Install / Use
/learn @dbgbench/Dbgbench.github.ioREADME
Summary
How do professional software engineers debug computer programs? In an experiment with 27 real bugs that existed in several widely used programs, we invited 12 professional software engineers, who together spent one month on localizing, explaining, and fixing these bugs. This did not only allow us to study the various tools and strategies used to debug the same set of errors. We could also determine exactly which statements a developer would localize as faults, how a developer would diagnose and explain an error, and how a developer would fix an error – all of which software engineering researchers seek to automate. Until now, it has been difficult to evaluate the effectiveness and utility of automated debugging techniques without a user study. We publish the collected data, called DBGBENCH, to facilitate the effective evaluation of automated fault localization, diagnosis, and repair techniques w.r.t. the judgement of human experts.
<p style="position:fixed; left: 50%; top: 200px; transform: translate(-515px, 0%); width: 170px; padding: 0px"> <a href="#faq">FAQ</a><br/> <a href="#setup">Downloads</a><br/> <a href="#find">Data for find</a><br/> <a href="#grep">Data for grep</a><br/> <a href="patches">Data on patches</a><br/> <a href="docker">Execute w/ Docker</a><br/> <a href="artifact">Use and reproduce</a><br/> <!--a href="artifact/">Use DBGBench</a><br/--> <a href="#cite">Learn more & Cite us</a><br/> <a href="https://mboehme.github.io/paper/FSE17.pdf" target="_blank"><img src="abstract.png" alt="DBGBench Paper" style="width: 170px;"/></a></p> <p align="center"><img src="mainobjective.png" alt="Main Objectives" width="100%" /></p> <br/><a name="faq"></a> FAQ
- <a href="artifact/">I am in the ESEC/FSE'17 AEC. How do I navigate this artifact?</a>
- <a href="artifact/">How can I evaluate my automated fault localization technique?</a>
- <a href="artifact/">How can I evaluate my automated bug diagnosis technique?</a>
- <a href="repair/">How can I evaluate my automated repair technique?</a>
- <a href="docker/">How do I install the virtual infrastructure?</a>
- <a href="patches/">How do I use the virtual infrastructure?</a>
- <a href="#setup">Where do I get more test cases for DBGBench?</a>
- <a href="http://program-repair.org/benchmarks.html" target="_blank">Where do I get more subjects for empirical evaluation of my technique?</a>
- <a href="artifact/">How can I reproduce this study for other subjects or languages?</a>
- <a href="https://help.github.com/articles/creating-a-pull-request-from-a-fork/">How can I contribute? Answer: Create a Pull Request.</a>
- <a href="#learn">How can I learn more about your research?</a>
- <a href="https://www.comp.nus.edu.sg/~release/corebench/" target="_blank">Where does DBGBench come from? Answer: CoREBench.</a>
- <a href="#cite">How do I cite DBGBench?</a>
DBGBench
In the following we provide the complete list of errors and their average debugging time, difficulty, and patch correctness, with human-generated explanations of the runtime actions leading to the error, and examples of correct and incorrect fixes, sorted according to average debugging time. For each error, we also provide the commit introducing the error, the simplified and original bug report, the fault locations, and the submitted and original patches.
<a name="setup"></a>Setup and Infrastructure
-
Download the <a href="dbgbench.summary.pdf" target="_blank">benchmark summary</a> containing the complete list of errors, their average debugging time, difficulty, and patch correctness, human-generated explanations of the runtime actions leading to the error, and examples of correct and incorrect fixes, sorted according to average debugging time.
-
Download the <a href="dbgbench.raw.csv" target="_blank">complete raw data</a> containing for each debugging session (error, participant) the following data:
- Error ID to identify error
- Participant ID to identify participant
- Timestamp to follow participants accross errors
- Fault Locations and Bug diagnosis (Patches here) -- the main artifacts
- Confidence in the correctness of their diagnosis / patch
- Difficulty to diagnose / patch the error
- Time taken to diagnosis / patch the error
- Improvement: What could have helped to reduce the diagnosis / patch time?
- Steps taken to arrive at the diagnosis / patch
- Tools used to arrive at the diagnosis / patch
- Problems if they could not diagnose / patch the error
- Automation: Does he/she believe in automation of diagnosing / patching the error?
- Automation Rationale: Why does the participant believe so?
- Code Familiarity to assess code comprehension of the same code base over time
- Diagnosis Techniques used, such as trace-based, interactive debugging, slicing, ..
- Ensuring Patch Correctness: How did the participant ensure the correctness of the submitted patch?
-
Download the <a href="https://github.com/dbgbench/dbgbench.github.io/archive/master.zip">complete cleaned data</a> (i.e., this repository).
-
Download the <a href="questionnaire.pdf" target="_blank">example questionnaire</a>.
-
Download the <a href="docker/" target="_blank">Docker virtual infrastructure</a>.
-
Download the <a href="https://drive.google.com/open?id=0Bx6dkN27OssKVWJYZGdXcWdWQ0U" target="_blank">tutorial material</a>, including slides, videos, and readme files.
-
Download <a href="https://github.com/thierry-tct/Tests_CPA_ICSE" target="_blank">more test cases</a> for DBGBench.<br/>(Credits: <a href="https://sites.google.com/site/mikepapadakis/ICSE17.pdf?attredirects=0&d=1" target="_blank">Titcheu Chekam Thierry, Mike Papadakis, Yves Le Traon, and Mark Harman</a>)!
-
Read our full paper (@ESEC/FSE'17). Here's how to cite us.
-
Read our extended <a href="abstract.pdf" target="_blank">abstract</a> or <a href="poster.pdf" target="_blank">poster</a> (@ICSE'17) to find out more about DBGBENCH.
-
Contribute by <a href="https://help.github.com/articles/fork-a-repo/" target="_blank">forking</a> DBGBench and creating a <a href="https://help.github.com/articles/creating-a-pull-request-from-a-fork/" target="_blank">pull request</a>.
<a name="find"></a>GNU Findutils
GNU findutils offers basic file searching utilities to search the systems directories of GNU and Unix-based computers.
| Descriptive Statistics | Benchmark Details | | -- | -- | | <a href="dbgbench.summary.pdf" target="_blank">[find.24e2271e]</a><br/>Error Type: Functional Bug<br/>Avg. Debugging Time: 13.8 min<br/>Explanation: Slightly difficult<br/>Patching: Slightly difficult<br/>Patch Correctness: 75% | Regression: <a href="http://git.savannah.gnu.org/cgit/findutils.git/commit/?id=f0759ab8db9cab16699fba45fa6117ef06620194" target="_blank">Developer</a><br/>Bug Report: <a href="find.24e2271e.report.txt" target="_blank">Simple</a>, Original<br/>Fault Locations: <a href="find.24e2271e.faults.txt" target="_blank">Participants</a><br/>Bug Diagnosis: <a href="find.24e2271e.diagnosis.txt" target="_blank">Participants</a><br/>Patches: <a href="https://github.com/dbgbench/dbgbench.github.io/tree/master/patches/find.24e2271e/" target="_blank">Participants</a> <a href="http://git.savannah.gnu.org/cgit/findutils.git/commit/?id=24e2271ec05c9b5a5517a76d3756af417a637e95" target="_blank">Developer</a><br/>Tests: Researcher | | <a href="dbgbench.summary.pdf" target="_blank">[find.dbcb10e9]</a><br/>Error Type: Crash<br/>Avg. Debugging Time: 22.9 min<br/>Explanation: Slightly difficult<br/>Patching: Slightly difficult<br/>Patch Correctness: 81%| Regression: <a href="http://git.savannah.gnu.org/cgit/findutils.git/commit/?id=daf7f100ed3cc056b6cfad04435f8ae879587f67" target="_blank">Developer</a><br/>Bug Report: <a href="find.dbcb10e9.report.txt" target="_blank">Simple</a>, Original<br/>Fault Locations: <a href="find.dbcb10e9.faults.txt" target="_blank">Participants</a><br/>Bug Diagnosis: <a href="find.dbcb10e9.diagnosis.txt" target="_blank">Participants</a><br/>Patches: <a href="https://github.com/dbgbench/dbgbench.github.io/tree/master/patches/find.dbcb10e9/" target="_blank">Participants</a> <a href="http://git.savannah.gnu.org/cgit/findutils.git/commit/?id=dbcb10e9f939a649a7ba99a1fec39eb01e40fde2" target="_blank">Developer</a><br/>Tests: Researcher | | <a href="dbgbench.summary.pdf" target="_blank">[find.07b941b1]</a><br/>Error Type: Crash<br/>Avg. Debugging Time: 23.7 min<br/>Explanation: Slightly difficult<br/>Patching: Slightly difficult<br/>Patch Correctness: 80% | Regression: <a href="http://git.savannah.gnu.org/cgit/findutils.git/commit/?id=84aef0ea1170af8910613c39e98e05505c7c03d0" target="_blank">Developer</a><br/>Bug Report: <a href="find.07b941b1.report.txt" target="_blank">Simple</a>, Original<br/>Fault Locations: <a href="find.07b941b1.faults.txt" target="_blank">Participants</a><br/>Bug Diagnosis: <a href="find.07b941b1.diagnosis.txt" target="_blank">Participants</a><br/>Patches: <a href="https://github.com/dbgbench/dbgbench.github.io/tree/master/patches/find.07b941b1/" target="_blank">Participants</a> <a href="http://git.savannah.gnu.org/cgit/findutils.git/commit/?id=07b941b1e71a2212b8fd2d3a32662aa5dbfdfa8b" target="_blank">Developer</a><br/>*Test
Related Skills
node-connect
352.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.5kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
352.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
352.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
