Locating Faults with Program Slicing: An Empirical Analysis
Statistical fault localization is an easily deployed technique for quickly determining candidates for faulty code locations. If a human programmer has to search the fault beyond the top candidate locations, though, more traditional techniques of following dependencies along dynamic slices may be better suited. In a large study of 457 bugs (369 single faults and 88 multiple faults) in 46 open source C programs, we compare the effectiveness of statistical fault localization against dynamic slicing. For single faults, we find that dynamic slicing was eight percentage points more effective than the best performing statistical debugging formula; for 66% of the bugs, dynamic slicing finds the fault earlier than the best performing statistical debugging formula. In our evaluation, dynamic slicing is more effective for programs with single fault, but statistical debugging performs better on multiple faults. Best results, however, are obtained by a hybrid approach: If programmers first examine at most the top five most suspicious locations from statistical debugging, and then switch to dynamic slices, on average, they will need to examine 15% (30 lines) of the code. These findings hold for 18 most effective statistical debugging formulas and our results are independent of the number of faults (i.e. single or multiple faults) and error type (i.e. artificial or real errors).
Tue 15 NovDisplayed time zone: Beijing, Chongqing, Hong Kong, Urumqi change
10:45 - 12:15 | |||
10:45 15mTalk | Context-Aware Code Change Embedding for Better Patch Correctness Assessment Journal First Bo Lin National University of Defense Technology, Shangwen Wang National University of Defense Technology, Ming Wen Huazhong University of Science and Technology, Xiaoguang Mao National University of Defense Technology Link to publication DOI Pre-print | ||
11:00 15mTalk | BiRD: Race Detection in Software Binaries under Relaxed Memory Models Journal First Ridhi Jain Indraprastha Institute of Information Technology Delhi, Rahul Purandare IIIT-Delhi, Subodh Sharma IIT Delhi Link to publication DOI | ||
11:15 15mTalk | ASTRAEA: Grammar-based Fairness Testing Journal First Ezekiel Soremekun SnT, University of Luxembourg, Sakshi Udeshi Singapore University of Technology and Design, Sudipta Chattopadhyay Singapore University of Technology and Design Link to publication DOI Pre-print | ||
11:30 15mTalk | Exploring Performance Assurance Practices and Challenges in Agile Software Development: An Ethnographic Study Journal First Luca Traini University of L'Aquila Link to publication DOI | ||
11:45 15mTalk | Studying logging practice in test code Journal First Haonan Zhang Concordia University, Yiming Tang Concordia University, Maxime Lamothe Polytechnique Montréal, Heng Li Polytechnique Montréal, Weiyi Shang Concordia University | ||
12:00 15mTalk | Locating Faults with Program Slicing: An Empirical Analysis Journal First Ezekiel Soremekun SnT, University of Luxembourg, Lukas Kirschner Saarland University, Marcel Böhme MPI-SP, Germany and Monash University, Australia, Andreas Zeller CISPA Helmholtz Center for Information Security Link to publication DOI Pre-print |