Abstract:
Program spectrum-based software fault localization (PS-SFL) has become one of the hottest research directions due to its high efficiency of localizing faults. It usually localizes program faults by computing the suspiciousness of program statements according to the test coverage information. However, the efficiency of this technology will decrease with the increase of the number of faults in the program. One reason is that the suspiciousness of program statement is computed by counting the number of failed tests and passed tests, but the failed tests that covered the program statement may be caused by different faults. This paper proposes a multiple fault localization (CESS-MFL) technique, which is based on conditioned execution slicing spectrum to alleviate the above problem and improve the efficiency of localizing multiple faults. The CESS-MFL technique firstly constructs a spectrum matrix of fault-related conditioned execution slice according to the predicates of input variables, then computes the suspiciousness of elements (statements or blocks of statements) in fault-related conditioned execution slice and generates a suspiciousness report. The experiment shows that the CESS-MFL technique has higher efficiency than the popular program spectrum-based Tarantula technique, program slicing-based Intersection technique and Union technique in the multiple-fault program, and can be implemented in effective space and time complexity.