Publication Type
Journal Article
Version
acceptedVersion
Publication Date
10-2019
Abstract
Regression faults, which make working code stop functioning, are often introduced when developers make changes to the software. Many regression fault localization techniques have been proposed. However, issues like inaccuracy and lack of explanation are still obstacles for their practical application. In this work, we propose a trace-based approach to identifying not only where the root cause of a regression bug lies, but also how the defect is propagated to its manifestation as the explanation. In our approach, we keep the trace of original correct version as reference and infer the faulty steps on the trace of regression version so that we can build a causality graph of how the defect is propagated. To this end, we overcomes two technical challenges. First, we align two traces derived from two program versions by extending state-of-the-art trace alignment technique for regression fault with novel relaxation technique. Second, we construct causality graph (i.e., explanation) by adopting a technique called alignment slicing and mending to isolate the failure-inducing changes and explain the failure. Our comparative experiment with the state-of-the-art techniques including dynamic slicing, delta-debugging, and symbolic execution on 24 real-world regressions shows that (1) our approach is more accurate on isolating the failure-inducing changes, (2) the generated explanation requires acceptable manual effort to inspect, and (3) our approach requires lower runtime overhead. In addition, we also conduct an applicability experiment based on Defects4J bug repository, showing the potential limitations of our trace-based approach and providing guidance for its practical use.
Keywords
Regression bug, trace alignment, alignment slicing and mending, fault localization
Discipline
Computer Engineering | Software Engineering
Research Areas
Software and Cyber-Physical Systems
Publication
IEEE Transactions on Software Engineering
Volume
14
Issue
8
First Page
1
Last Page
17
ISSN
0098-5589
Identifier
10.1109/TSE.2019.2949568
Publisher
Institute of Electrical and Electronics Engineers (IEEE)
Citation
WANG, Haijun; LIN, Yun; YANG, Zijiang; SUN, Jun; LIU, Yang; DONG, Jinsong; ZHENG, Qinghua; and LIU, Ting.
Explaining regressions via alignment slicing and mending. (2019). IEEE Transactions on Software Engineering. 14, (8), 1-17.
Available at: https://ink.library.smu.edu.sg/sis_research/4759
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-No Derivative Works 4.0 International License.
Additional URL
https://doi.org/10.1109/TSE.2019.2949568