In the software engineering debugging process,it is very important to identify the location of the faultystatements effectively and accurately.Coverage-Based FaultLocalization(CBFL)and Mutation-Based FaultLocalization(MBFL)are widely used in software debugging.Both of these fault localization methods require a large amount of test case information,including the code execution path and the output result information of each test case.The existing research shows that the accuracy of fault localization technology based on mutant analysis is higher than coverage-based fault localization technology.MBFL technology uses artificial defects to generate mutants,which are the corresponding mutation programs,execute test cases on these mutants,and finally calculate the suspiciousness value of each statement.Developers can check sequentially according to the order of statement suspiciousness,thereby improving software debugging efficiency.MBFL's fault localization accuracy is high,but large programs have a large number of test cases,so getting the test case execution results is a very expensive task.Because in the traditional case,whether the execution output of the test case meets expectations must be judged manually.For the huge cost in the process of manually judging the execution result of the test case,this paper proposes a test case output prediction method based on neural network algorithm and program mutation,trains a neural network model,and executes test cases on a small number of mutants.Use these execution results as a training set to predict the execution results of the remaining test cases.Predicting the execution result of a test case through a neural network algorithm can greatly reduce the cost of manually judging the execution result of the test case,thereby improving the work efficiency of the software tester.In order to further verify the effectiveness of the test model execution test model based on neural network algorithm,this paper compares experimental results of different test cases using different machine learning algorithms.In addition,this paper compares the MBFL method combined with neural network algorithm and the effect of the original MBFL on the faultlocalization,which further validates the effectiveness of the proposed method.In this paper,the experiment uses 2 to 8 errors in 3 subject programs,a total of 144 fault versions,and comparedstatement coverage and mutant coverage based method combing Neural Network algorithm about the metrics of Precision,Recall,Precision,F-measure and False Positive rate.The experimental results show that the mutation-based method has a better prediction effect than the coverage-based method under different proportions of the training set.At the same time,the experiment further proves that the neural network algorithm has a better prediction effect than other machine learning algorithms in the case of multiple fault.Finally,experiments compare the faultlocalization accuracy of the MBFL and the original MBFL combined with the neural network algorithm in single-fault and multi-fault cases.The experimental results show that the accuracy of the faultlocalization results is almost the same.Therefore,the test case result prediction method based on neural network algorithm and program variation proposed in this paper can effectively reduce the cost of manually determining test case execution results. |