Abstract:
There is no bug-free program because of the complexity of software. It is always challenging for programmers to effectively and efficiently debug program and remove bugs. Software fault location is one of the most expensive activities in program debugging. So there is a high requirement for automatic fault localization techniques that can guide programmers to the locations of faults with minimal or no human intervention. Various techniques have been proposed to meet this requirement. However, the interactions between multi-faults which have not been fully considered in previous studies make the fault location more complicated. In order to solve this problem, a novel neural-network-based multi-faults location model is proposed in this paper. By fault relation analysis, the model calculates the support degree of the input for each fault. And then it learns the relationship between the faults and the candidate locations of faults using the constructed neural network. Constructing an ideal input as the input of learned neural network, the model can calculate the suspicious degree of each candidate location of fault, then obtain the sequence sorting by the suspicious degree, and complete the task of multi-faults location. Experimental results show that compared with traditional methods, the proposed method has strong ability to distinguish fault locations and can improve the efficiency of software debugging for multi-faults.