Proceedings of the 7th Joint Meeting of the European Software
Engineering Conference and the
ACM SIGSOFT International Symposium on Foundation of Software Engineering (ESEC '09/FSE-17), ACM Press, New York, NY, pp. 43-52 (2009) |
Zhenyu Zhang 2 , W.K. Chan 3 , T.H. Tse 2 , Bo Jiang 2 , and Xinming Wang 4
ABSTRACT |
Coverage-based fault-localization techniques find the fault-related positions in programs by comparing the execution statistics of passed executions and failed executions.
They assess the fault suspiciousness of individual program entities and rank the statements in descending order of their suspiciousness scores to help identify faults in programs.
However, many such techniques focus on assessing the suspiciousness of individual program entities but ignore the propagation of infected program states among them.
In this paper, we use edge profiles to represent passed executions and failed executions, contrast them to model how each basic block contributes to failures by abstractly propagating infected program states to its adjacent basic blocks through control flow edges.
We assess the suspiciousness of the infected program states propagated through each edge, associate basic blocks with edges via such propagation of infected program states, calculate suspiciousness scores for each basic block, and finally synthesize a ranked list of statements to facilitate the identification of program faults.
We conduct a controlled experiment to compare the effectiveness of existing representative techniques with ours using standard benchmarks.
The results are promising.
Keywords: Fault localization, edge profile, basic block, control flow edge |
|
EVERY VISITOR COUNTS: |