| During the process of software debugging,fault location represents the most arduous and expensive step.The efficiency of software fault location is particularly noticeable in the face of the rapid increase in software scale and complexity.The utilization of automated fault location technology can assist developers in identifying faults swiftly and precisely,leading to a reduction in development costs and an improvement in software development efficiency.Consequently,the exploration of more effective automated fault location methods holds significant importance for enhancing software development efficiency and lowering debugging costs.Currently,using program spectra for fault location is a practical and effective method.However,traditional spectrum-based methods have fixed parameters and are unable to adaptively adjust the algorithm according to the different distribution of spectrum data.This can make it difficult to obtain accurate results.To address this problem,deep learning techniques have been introduced.Compared with traditional fault localization methods,deep learning techniques can adaptively adjust parameters,fully exploit the characteristics of program spectrum data,and improve the accuracy of fault location.However,existing deep learning techniques mainly focus on research of statement coverage spectra.Single-type spectra may not be effective for locating all types of program faults,and may only work well for specific types of faults.To address these issues,the main research work of this paper is as follows:(1)The paper proposes an adaptive fault localization method based on the branch coverage spectrum.This method utilizes a feature matrix of branch coverage and the execution results of test cases to train a neural network.A virtual matrix is then used as input to the network to predict the suspiciousness of branches.Furthermore,the effectiveness of different neural network models is evaluated with three different architectures.The results of experiments demonstrate that this method achieves higher accuracy on the branch coverage spectrum compared to traditional fault localization techniques.(2)The paper proposes an adaptive fault localization method that combines multiple coverage types.Firstly,an adaptive fault localization method based on different coverage types is used to separately calculate the suspiciousness lists for statements and branches.Then,the measurement standards of the two are unified through a program node mapping method,and their suspiciousness is standardized.Finally,a combination method is used to obtain the final suspiciousness.The experimental results show that,compared to a single spectrum,appropriately combining different coverage types has higher fault location efficiency and stronger adaptability.(3)The paper designs and implements an adaptive fault location system based on the spectrum of multiple coverage types.The system is divided into four modules:data collection,feature processing,model training,and model display.The system can automatically collect spectrum information,process spectrum features,train models,and obtain suspicious reports,providing developers with assistance in fault location. |