摘要:Coverage-based fault localization techniques are effective to support program debugging. However, these techniques assess the suspiciousness of program entities individually. Such calculation oversimplifies executions and cannot reflect execution contexts. In this paper, we use control flow paths to analyze the execution context, quantify edge profiles to assess how each block contributes to failures and propose the context-aware fault localization approach FP. We use the edge profile to represent the passed and failed executions, calculate the coverage statistics and edge suspiciousness scores, and then by contrasting edge suspiciousness scores of blocks covered by a failed execution, we propose fault proneness to evaluate how each block contributes to the failure. At last, we take the sum of fault proneness as the suspiciousness to assess the probability of containing faults. We construct controlled experiments to compare our technique with a representative technique. The findings are as follows. 1) the FP technique performs well in locating faults if the infected state propagation is complex, 2) but when the fault is easy to locate, the FP technique may be overly complicated, 3) the integration of the two techniques are more effective than any of them.