TY - JOUR
T1 - Interactive Fault Localization Using Test Information
AU - Hao, Dan
AU - Zhang, Lu
AU - Xie, Tao
AU - Mei, Hong
AU - Sun, Jia Su
N1 - Funding Information:
Regular Paper ∗Corresponding Author A preliminary version of this paper appeared in “Hao D, Zhang L, Mei H, Sun J. Towards interactive fault localization using test information. In Proc. 13th Asia Pacific Software Engineering Conference, 2006, pp.277–284.” This work is supported by the National Basic Research Program of China under Grant No. 2009CB320703, the National High-Tech Research and Development 863 Program of China under Grant No. 2007AA010301, the Science Fund for Creative Research Groups of China under Grant No. 60821003, the National Natural Science Foundation of China under Grant No. 60803012, and the China Postdoctoral Science Foundation Project under Grant No. 20080440254.
PY - 2009/9
Y1 - 2009/9
N2 - Debugging is a time-consuming task in software development. Although various automated approaches have been proposed, they are not effective enough. On the other hand, in manual debugging, developers have difficulty in choosing breakpoints. To address these problems and help developers locate faults effectively, we propose an interactive fault-localization framework, combining the benefits of automated approaches and manual debugging. Before the fault is found, this framework continuously recommends checking points based on statements' suspicions, which are calculated according to the execution information of test cases and the feedback information from the developer at earlier checking points. Then we propose a naive approach, which is an initial implementation of this framework. However, with this naive approach or manual debugging, developers' wrong estimation of whether the faulty statement is executed before the checking point (breakpoint) may make the debugging process fail. So we propose another robust approach based on this framework, handling cases where developers make mistakes during the fault-localization process. We performed two experimental studies and the results show that the two interactive approaches are quite effective compared with existing fault-localization approaches. Moreover, the robust approach can help developers find faults when they make wrong estimation at some checking points.
AB - Debugging is a time-consuming task in software development. Although various automated approaches have been proposed, they are not effective enough. On the other hand, in manual debugging, developers have difficulty in choosing breakpoints. To address these problems and help developers locate faults effectively, we propose an interactive fault-localization framework, combining the benefits of automated approaches and manual debugging. Before the fault is found, this framework continuously recommends checking points based on statements' suspicions, which are calculated according to the execution information of test cases and the feedback information from the developer at earlier checking points. Then we propose a naive approach, which is an initial implementation of this framework. However, with this naive approach or manual debugging, developers' wrong estimation of whether the faulty statement is executed before the checking point (breakpoint) may make the debugging process fail. So we propose another robust approach based on this framework, handling cases where developers make mistakes during the fault-localization process. We performed two experimental studies and the results show that the two interactive approaches are quite effective compared with existing fault-localization approaches. Moreover, the robust approach can help developers find faults when they make wrong estimation at some checking points.
KW - Debugging
KW - Fault localization
KW - Interactive approach
UR - http://www.scopus.com/inward/record.url?scp=70349606642&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=70349606642&partnerID=8YFLogxK
U2 - 10.1007/s11390-009-9270-z
DO - 10.1007/s11390-009-9270-z
M3 - Article
AN - SCOPUS:70349606642
SN - 1000-9000
VL - 24
SP - 962
EP - 974
JO - Journal of Computer Science and Technology
JF - Journal of Computer Science and Technology
IS - 5
ER -