Spectrum-based fault localization (SBFL) techniques are widely studied and have been evaluated to be effective in locating faults. Recent studies also showed that developers from industry value automated SBFL techniques. However, their effectiveness is still limited by two main reasons. First, the test coverage information leveraged to construct the spectrum does not reflect the root cause directly. Second, SBFL suffers from the tie issue so that the buggy code entities can not be well differentiated from non-buggy ones. To address these challenges, we propose to leverage the information of version histories in fault localization based on the following two intuitions. First, version histories record how bugs are introduced to software projects and this information reflects the root cause of bugs directly. Second, the evolution histories of code can help differentiate those suspicious code entities ranked in tie by SBFL. Our intuitions are also inspired by the observations on debugging practices from large open source projects and industry.
Based on the intuitions, we propose a novel technique HSFL (historical spectrum based fault localization). Specifically, HSFL identifies bug-inducing commits from the version history in the first step. It then constructs historical spectrum (denoted as Histrum) based on bug-inducing commits, which is another dimension of spectrum orthogonal to the coverage based spectrum used in SBFL. HSFL finally ranks the suspicious code elements based on our proposed Histrum and the conventional spectrum. HSFL outperforms the state-of-the-art SBFL techniques significantly on the Defects4J benchmark. Specifically, it locates and ranks the buggy statement at Top-1 for $77.8%$ more bugs as compared with SBFL, and $33.9%$ more bugs at Top-5. Besides, for the metrics MAP and MRR, HSFL achieves an average improvement of $28.3%$ and $40.8%$ over all bugs, respectively. Moreover, HSFL can also outperform other six families of fault localization techniques, and our proposed Histrum model can be integrated with different families of techniques and boost their performance.
Wed 8 JulDisplayed time zone: (UTC) Coordinated Universal Time change
01:05 - 02:05
|Debugging Crashes using Continuous Contrast Set MiningSEIP|
Software Engineering in Practice
|Automatic Abnormal Log Detection by Analyzing Log History for Providing Debugging InsightSEIP|
Software Engineering in Practice
Jinhan Kim , Valeriy Savchenko Ivannikov Institute for System Programming of the RAS, Kihyuck Shin Samsung Electronics, Konstantin Sorokin Ivannikov Institute for System Programming of the RAS, Hyunseok Jeon Samsung Electronics, Georgiy Pankratenko Ivannikov Institute for System Programming of the RAS, Sergey Markov Ivannikov Institute for System Programming of the RAS, Chul-Joo Kim Samsung Electronics
|Explaining Regressions via Alignment Slicing and MendingJ1|
Haijun Wang Ant Financial Services Group, China; CSSE, Shenzhen University, China, Yun Lin National University of Singapore, Zijiang Yang Western Michigan University, Jun Sun Singapore Management University, Yang Liu Nanyang Technological University, Singapore, Jin Song Dong National University of Singapore, Qinghua Zheng Xi'an Jiaotong University, Ting Liu Xi'an Jiaotong University
|Historical Spectrum based Fault LocalizationJ1|
Ming Wen Huazhong University of Science and Technology, China, Junjie Chen Tianjin University, China, Yongqiang TIAN The Hong Kong University of Science and Technology, Rongxin Wu Department of Cyber Space Security, Xiamen University, Dan Hao Peking University, Shi Han Microsoft Research Asia, Shing-Chi Cheung Department of Computer Science and Engineering, The Hong Kong University of Science and Technology
|Visualizing distributed system executionsJ1|
Ivan Beschastnikh Computer Science, University of British Columbia, Perry Liu University of British Columbia, Albert Xing University of British Columbia, Patty Wang University of British Columbia, Yuriy Brun University of Massachusetts Amherst, Michael D. Ernst University of Washington, USADOI Pre-print
|An Integration Test Order Strategy to Consider Control CouplingJ1|