Font Size: a A A

Mutation-Based Fault Localization Made Effective

Posted on:2020-08-13Degree:MasterType:Thesis
Country:ChinaCandidate:S J DingFull Text:PDF
GTID:2428330575458256Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
As software iterations continue to accelerate,software defects become more and more complex.In order to ensure the stable operation of the software,software de-velopers need to constantly fix these defects.When fixing a defect,you must first find the location of the defect.However,as defects becoming diversified,developers often have to spend a lot of time to understand the software and then the cause of the defects in order to localize it in codes.Therefore,it is necessary to develop automatic fault localization techniques.Researchers have proposed many fault localization techniques.Two famous cat-egories are spectrum-based fault localization and mutation-based fault localization,SBFL and MBFL for abbreviation.They both take incorrect program and test cases as input,and produce as output a ranked list of suspicious locations that may be defec-tive.These two techniques have achieved good results on some program defects,but there are also some problems.First,the spectrum-based approaches use only the statement coverage information from the original tests to evaluate statement's suspiciousness,thus they are hard to distinguish the statements with same execution pattern.At the same time,the mutation-based methods consume a lot of time due to a large number of program mutants.MUSE and Metallaxis,the two representative MBFL techniques,relate suspiciousness of the statement only to the mutants of the program generated on it.Therefore,it is no doubt that the statements cannot be mutated will not appear in the rank list.In this paper,we present an efficient mutation-based fault localization technique,which mainly includes the following parts:1.This paper proposes an efficient mutation-based fault localization technique.First,we improved the process of mutation testing by using results from dynamic pro-gram slicing to generate mutants and collecting execution information of tests;then we designed a new method for calculating suspiciousness.By using dynamic pro-gram slicing and execution information of tests,we can locate faults in real buggy programs more efficiently.2.We designed and implemented the tools for our technique.Using the glue language Python,we combined the mutation tool PIT and the dynamic program slicing tool JavaSlicer and implemented a prototype fault localization tool for Java.3.To verify the effectiveness of our method,we performed experiments on 262 real-world faulty programs in the Defects4J database.Comparison with seven other technologies shows that our method can achieve better results in real program defects.
Keywords/Search Tags:Fault Localization, Mutation-based Fault Localization, Dynamic Program Slicing
PDF Full Text Request
Related items