Journal of Systems and Software 84 (6): 885-905 (2011) |
Zhenyu Zhang 2 , W.K. Chan 3 , T.H. Tse 4 , Y.Y. Yu 3 , and Peifeng Hu 5
ABSTRACT |
Fault localization is a major activity in program debugging.
To automate this time-consuming task, many
existing fault-localization techniques compare passed executions and
failed executions, and suggest suspicious program elements, such as
predicates or statements, to facilitate the identification of faults.
To do that, these techniques propose statistical models and
use hypothesis testing methods to test the similarity or dissimilarity
of proposed program features between passed
and failed executions.
Furthermore, when applying their models, these techniques presume that
the feature spectra come from populations with specific distributions.
The accuracy of using a model to describe feature spectra is related
to and may be affected by the underlying distribution of the feature
spectra, and the use of a (sound) model on inapplicable circumstances to
describe real-life feature spectra may lower the effectiveness of these
fault-localization techniques.
In this paper, we make use of hypothesis testing methods as the core
concept in developing a predicate-based fault-localization framework.
We report a controlled experiment to compare, within our framework,
the efficacy, scalability, and efficiency of applying three categories
of hypothesis testing methods, namely, standard non-parametric
hypothesis testing methods, standard parametric hypothesis testing
methods, and debugging-specific parametric testing methods.
We also conduct a case study to compare the effectiveness of the winner
of these three categories with the effectiveness of 33 existing
statement-level fault-localization techniques.
The experimental results show that the use of non-parametric hypothesis
testing methods in our proposed predicate-based fault-localization
model is the most promising.
Keywords: Fault localization, hypothesis testing, parametric method, non-parametric method |
|
EVERY VISITOR COUNTS: |