Abstract
Most Studie of software failures and faults have done little more than
classfying failures and faults collected from long-term projects. We believe
that results of the failures and faults analysis can benefit the debugging
process. We thus propose a model for such analysis. In our model, we define
failure modes and failure types to identify the existence of program failures
and the nature of the program failures, respectively. The goal of the
research is to achieve a systematic process model to localize faults in
debugging. The process is summarized as follows: (1) identify a failure as
belonging to one of the failure modes; (2) find failure types that possibly
caused the failure based on the relationships between the failure modes and
failure types; and (3) employ heuristics according to different situations
for fault localization.
In this paper, we first examine properties of the proposed model from
a theoretical point of view. We then use the trityp program as a simple
example to illustrate the possible usage of the model for debugging. In the
example, the proposed failure analysis helps us eliminate irrelevant test
case sets in program failures. In addition, it helps us achieve one of our
purposes, which is to identify as few test case sets as possible but still
hold enough information for debuggingafter a thorough testing. Based on
the select test case sets, we can apply heuristics (eg. slicing heuristics)
for fault localization. Further study on the failure mode, a pilot
experiment of applying the proposed model, and the way to employ heuristics
according to different situations for fault localization are areas of future
work.