An important issue on software reliability is the investigation of fault behaviors of programs. However, due to that the set of fault manifestations is infinite, it is necessary to reduce the fault behavior space to a manageable level for promoting efficiency in reliability estimation. The hypothesis that programs having similar attributes being considered to have similar fault and failure behaviors provides a good basis for fault behavior space reduction. But this hypothesis has not been verified, which is our core work in this paper. Firstly, we characterize program executions in order to model runtime behaviors, including baseline behaviors, fault behaviors and failure behaviors. Then, a typical fuzzy technique with our improved method is proposed. After that, an experimental method of fault injection is used to verify the aforementioned hypothesis. For the CPU-bound benchmarks (SPEC CPU2000 and SPEC CPU2006 suites of benchmarks)and I/O-bound benchmarks (IOZONE, DEBENCH, etc.), our results show two things: (1)the method of program characterization and clustering shows its effectiveness; (2)it is able to examine and cluster fault and failure behaviors based on their baseline behaviors, which verifies the aforementioned hypothesis.
Read full abstract