Abstract:
Fault localization is an important task of program debugging. The statistical fault localization techniques, based on slice spectrum, can reduce the effort of fault localization by analyzing the program slices. However, the effectiveness of these techniques depends on slice selection criteria and suspiciousness computing formulas. Thus, we propose a fault localization framework to evaluate the influence on the effectiveness of fault localization by the above two factors. Firstly, we compute the full slices of failed runs and the execution slices of passed runs, respectively. Secondly, we give a definition of the similarity between slice spectrums, and develop a set of slices selection criteria to construct a hybrid slice spectrum. Finally, we choose a suspiciousness evaluation formula and then generate a fault location report. To investigate the impact of the two factors (i.e., the similarity between slices, and the evaluation formulas) on the effectiveness of fault localization, we conduct empirical study on several classical Java benchmarks consisting of more than 90 faults. The experimental result suggests that the performance of Wong, Russel&Rao, and Binary cannot be influenced by the similarity of slice spectrum. However, our proposed formula (HSS), Tarantula, DStar, Naish1, and Naish2 can perform better on slice spectrum of lower similarity.