BugForge: Constructing and Utilizing DBMS Bug Repository to Enhance DBMS Testing
Dawei Li, Qifan Liu, Yuxiao Guo, Jie Liang, Zhiyong Wu, Chi Zhang, Jingzhou Fu, Haogang Mao, Zhenyu Guan, Yu Jiang

TL;DR
BugForge is a framework that constructs standardized DBMS bug repositories from diverse reports and uses them to generate high-quality test cases, improving automated testing and bug discovery in database systems.
Contribution
It introduces a novel approach to build and leverage unified bug repositories for DBMS testing, including techniques for syntax-aware processing and semantic-guided test case refinement.
Findings
Constructed a repository with 37,632 bug reports across four DBMSs.
Uncovered 35 previously unknown bugs, with 22 confirmed by developers.
Enhanced DBMS testing methods like fuzzing and regression testing using the repository.
Abstract
DBMSs are complex systems prone to bugs that may lead to system failures or compromise data integrity. Establishing unified DBMS bug repositories is crucial for systematically organizing bug-related data, enabling code improvement, and supporting automated testing. In particular, bug reports often contain valuable test inputs and bug-triggering clues that help explore rare execution paths and expose critical buggy behavior, thereby guiding automated DBMS testing. However, the heterogeneity of bug reports, along with their incomplete or inaccurate content, makes it challenging to build unified repositories and convert them into high-quality test cases. In this paper, we propose BugForge, a framework that constructs standardized DBMS bug repositories and leverages them to generate high-quality test cases to enhance DBMS testing. Specifically, BugForge progressively collects bug reports,…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
