BugsInPy: A Database of Existing Bugs in Python Programs to Enable Controlled Testing and Debugging Studies
arXiv:2401.15481 · doi:10.1145/3368089.3417943
Abstract
The 2019 edition of Stack Overflow developer survey highlights that, for the first time, Python outperformed Java in terms of popularity. The gap between Python and Java further widened in the 2020 edition of the survey. Unfortunately, despite the rapid increase in Python's popularity, there are not many testing and debugging tools that are designed for Python. This is in stark contrast with the abundance of testing and debugging tools for Java. Thus, there is a need to push research on tools that can help Python developers. One factor that contributed to the rapid growth of Java testing and debugging tools is the availability of benchmarks. A popular benchmark is the Defects4J benchmark; its initial version contained 357 real bugs from 5 real-world Java programs. Each bug comes with a test suite that can expose the bug. Defects4J has been used by hundreds of testing and debugging studies and has helped to push the frontier of research in these directions. In this project, inspired by Defects4J, we create another benchmark database and tool that contain 493 real bugs from 17 real-world Python programs. We hope our benchmark can help catalyze future work on testing and debugging tools that work on Python programs.
References in corpus (1)
Cited by in corpus (12)
- A Quantitative and Qualitative Evaluation of LLM-Based Explainable Fault Localization
- CoverUp: Effective High Coverage Test Generation for Python
- An Empirical Study of Fault Localization in Python Programs
- T5APR: Empowering Automated Program Repair across Languages through Checkpoint Ensemble
- A Survey of the Metrics, Uses, and Subjects of Diversity-Based Techniques in Software Testing
- DyPyBench: A Benchmark of Executable Python Software
- ROBUST: 221 Bugs in the Robot Operating System
- Scalable Language Agnostic Taint Tracking using Explicit Data Dependencies
- Hierarchical Knowledge Injection for Improving LLM-based Program Repair
- Demystifying Regular Expression Bugs: A comprehensive study on regular expression bug causes, fixes, and testing
- MultiMend: Multilingual Program Repair with Context Augmentation and Multi-Hunk Patch Generation
- Out of Context: How important is Local Context in Neural Program Repair?