چكيده به لاتين
Fault localization is recognized as one of the most important and difficult tasks in the software debugging process. Therefore, several methods have been proposed to automate and improve this process. Mutation-based fault localization methods are one of the states of the art methods that try to find the location of the fault by executing various mutations of the program. These methods, along with high accuracy in locating the fault due to different versions of the mutation, resulting in high execution cost. Numerous methods have been proposed to reduce their execution costs, but in most cases they have reduced accuracy in locating the fault.
The method presented in this thesis aims to reduce the execution cost of mutation-based fault localization methods while maintaining or improving their accuracy of fault localization. If we can identify and then delete program statements that are less effective in locating the fault, we will have a smaller set of statements and consequently fewer versions of the mutants. The lower the number of mutants, the greater the reduction in the time the fault localization method is needed. The method presented in this thesis, SMBFL, only examines the statements in the dynamic slice of the program under test. The statements that present in the dynamic slice have a direct effect on the execution of the program with the specified test case. After executing mutants generated based on the statements in the program slice, the suspicious score calculated for each statement. In the SMBFL method, the suspicious score of program statements is measured based on the entropy of their mutants. The proposed formula, MuEn, determines the suspicious score based on the result of executing mutants of each statement of the program. Finally, a ranked list is obtained based on the suspicious score of program statements.
The proposed method, SMBFL, was evaluated during a series of tests. The number of generated mutants and the time needed to locate the fault were compared with the original MBFL. We also compared the accuracy of fault localization with the three methods proposed in this area. The results showed a relative increase in the accuracy of fault localization, by an average of 14.2%, and a decrease in the execution time of the fault localization process, by an average of 24.3%. Finally, it was shown that the MuEn formula applies the least execution overhead to the fault localization process.