Abstract
Mutation-based fault localization (MBFL) is a recently proposed technique with the advantage of high fault localization accuracy. However, such a mutation analysis based technique is difficult to be accepted by industry due to its huge computational cost on mutation analysis. There are three ways to improve MBFL's efficiency, which are reducing the number of mutants, optimizing the mutants' execution process, and reducing the number of test cases. The former two ways have been mainly studied and shown promising results, but for the latter way, the related studies are limited since this kind of method will reduce the precision of MBFL. In this paper, we mainly focus on the latter way and propose an information entropy based test case reduction (IETCR) strategy for MBFL. In particular, we first calculate the entropy change of test cases and select a proportion of them according to their value. Then we use a reduced test suite to execute mutants. To show the effectiveness of the IETCR strategy, we choose six real-world programs with 112 faulty versions. In terms of mutation reduction rate, we find MBFL with the IETCR strategy can reduce 56.3%~88.3% cost while keeping almost the same fault localization accuracy when compared to the original MBFL without test case reduction. Moreover, we use Wilcoxon signed-rank test for statistical analysis, which shows that there is no statistically significant difference between MBFL with IETCR strategy and the original MBFL.
Highlights
Software debugging, which contains fault detecting, fault localization, and bug fixing [1], is one of the essential parts of software development and maintenance
The results show that information entropy based test case reduction (IETCR) can significantly reduce the MTP execution cost, but in most cases, FTMES has a lower MTP percentage of original Mutation-based fault localization (MBFL) than IETCR
The reason is that IETCR selects all failed test cases and the same number of passed test cases, while FTMES only keeps the failed test cases, which leads to the double cost of IETCR
Summary
Software debugging, which contains fault detecting, fault localization, and bug fixing [1], is one of the essential parts of software development and maintenance. The fault localization process refers to the problem of identifying defective program statements when the execution of some test cases results in failure. It has been recognized as the most complicated and time-consuming activity [2]. SBFL obtains the coverage information and execution results by executing test cases Such information will be used for calculating the probability that program entities (such as statements) incur a fault and generating a ranking list of them for developers to inspect code elements. MUTATION ANALYSIS Mutation analysis is a fault-based technique, which works by making syntactic changes into the source code of the program under test [19] It can generate a huge number of faulty programs, which are named as mutants [23].
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.