IPSETFUL: an iterative process of selecting test cases for effective fault localization by exploring concept lattice of program spectra

X Sun, X Peng, B Li, B Li, W Wen - Frontiers of Computer Science, 2016 - Springer
X Sun, X Peng, B Li, B Li, W Wen
Frontiers of Computer Science, 2016Springer
Fault localization is an important and challenging task during software testing. Among
techniques studied in this field, program spectrum based fault localization is a promising
approach. To perform spectrum based fault localization, a set of test oracles should be
provided, and the effectiveness of fault localization depends highly on the quality of test
oracles. Moreover, their effectiveness is usually affected when multiple simultaneous faults
are present. Faced with multiple faults it is difficult for developers to determine when to stop …
Abstract
Fault localization is an important and challenging task during software testing. Among techniques studied in this field, program spectrum based fault localization is a promising approach. To perform spectrum based fault localization, a set of test oracles should be provided, and the effectiveness of fault localization depends highly on the quality of test oracles. Moreover, their effectiveness is usually affected when multiple simultaneous faults are present. Faced with multiple faults it is difficult for developers to determine when to stop the fault localization process. To address these issues, we propose an iterative fault localization process, i.e., an iterative process of selecting test cases for effective fault localization (IPSETFUL), to identify as many faults as possible in the program until the stopping criterion is satisfied. It is performed based on a concept lattice of program spectrum (CLPS) proposed in our previous work. Based on the labeling approach of CLPS, program statements are categorized as dangerous statements, safe statements, and sensitive statements. To identify the faults, developers need to check the dangerous statements. Meantime, developers need to select a set of test cases covering the dangerous or sensitive statements from the original test suite, and a new CLPS is generated for the next iteration. The same process is proceeded in the same way. This iterative process ends until there are no failing tests in the test suite and all statements on the CLPS become safe statements. We conduct an empirical study on several subject programs, and the results show that IPSETFUL can help identifymost of the faults in the program with the given test suite. Moreover, it can save much effort in inspecting unfaulty program statements compared with the existing spectrum based fault localization techniques and the relevant state of the art technique.
Springer