Automated Patch Extraction via Syntax- and Semantics-Aware Delta Debugging on Source Code Changes
Delta debugging (DD) is an approach to automating debugging activities based on systematic testing. DD algorithms find the cause of a regression of a program by minimizing changes between a working version and a faulty version of the program. However, it is still an open problem to minimize a huge set of changes while avoiding any invalid subsets that do not result in testable programs, especially in case that no software configuration management system is available. In this paper, we propose a rule-based approach to syntactic and semantic decomposition of changes into independent components to facilitate DD on source code changes, and hence to extract patches automatically. For analyzing changes, we make use of tree differencing on abstract syntax trees instead of common differencing on plain texts. We have developed an experimental implementation for Java programs and applied it to 194 bug fixes from Defects4J and 8 real-life regression bugs from 6 open source Java projects. Compared to a DD tool based on plain text differencing, it extracted patches whose size is reduced by 50% at the cost of 5% more test executions for the former dataset and by 73% at the cost of 40% more test executions for the latter, both on average.
Thu 8 NovDisplayed time zone: Guadalajara, Mexico City, Monterrey change
13:30 - 15:00 | Debugging and Bug LocalizationResearch Papers at Horizons 6-9F Chair(s): Earlence Fernandes University of Michigan | ||
13:30 22mTalk | Automated Patch Extraction via Syntax- and Semantics-Aware Delta Debugging on Source Code Changes Research Papers Masatomo Hashimoto Chiba Institute of Technology, Japan, Akira Mori National Institute of Advanced Industrial Science and Technology, Japan, Tomonori Izumida IIJ Innovation Institute, Japan Link to publication DOI Authorizer link | ||
13:52 22mTalk | Feedback-Directed Differential Testing of Interactive Debuggers Research Papers | ||
14:15 22mTalk | Improving IR-Based Bug Localization with Context-Aware Query Reformulation Research Papers Pre-print | ||
14:37 22mTalk | How Should Compilers Explain Problems to Developers? Research Papers Titus Barik Microsoft, Denae Ford North Carolina State University, Emerson Murphy-Hill North Carolina State University, Chris Parnin NCSU Pre-print |