Higher Order Mutant Generation via Code Path Analysis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional mutation testing is inefficient and time-consuming due to the large number of first order mutants required, and higher order mutation testing compromises precision in mutation coverage.
Innovation Solution
Creating higher order mutants by combining first order mutants that run along unique code paths, reducing the total number of mutants and enabling parallel testing on multiple CPU units without compromising precision.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If traditional mutation testing uses first order mutants, then precision of mutation coverage is maintained, but computational time and cost increase significantly
Solution Approach 1:
The patent combines multiple first order mutants into higher order mutants by merging mutants that operate on disjoint code paths. This merging reduces the total number of mutants that need to be tested while preserving the precision of mutation coverage, directly resolving the contradiction between maintaining precision and reducing computational time.
Solution Approach 2:
The patent segments the set of all possible first order mutants into disjoint groups based on code path independence. By segmenting mutants into groups that can be safely combined, the system reduces the testing burden while maintaining coverage precision, addressing the time-cost contradiction.
2Loss of time
If higher order mutation testing is used, then computational time is reduced, but precision of mutation coverage is compromised
Solution Approach 1:
The patent applies local quality by carefully selecting which mutants to combine based on their specific code path characteristics. Not all mutants are treated uniformly - only those with disjoint code paths are combined, while maintaining precise tracking of coverage for each mutant type, thus reducing time without compromising precision.
Solution Approach 2:
The patent introduces code path analysis as an intermediary mechanism to determine which mutants can be safely combined. This intermediary layer ensures that combining mutants does not compromise coverage precision, allowing time reduction while maintaining measurement accuracy.
3Reliability
If more mutants are generated for comprehensive testing, then coverage completeness improves, but testing cost and complexity increase
Solution Approach 1:
The patent merges multiple first order mutants into higher order mutants, reducing the total number of test cases while maintaining comprehensive coverage. This merging approach improves reliability through better coverage completeness while reducing testing complexity by eliminating redundant test cases.
Solution Approach 2:
The patent creates a universal approach for handling multiple mutants through higher order mutant framework that can accommodate various mutation types. This multi-functional system achieves comprehensive coverage without proportionally increasing testing complexity, as the same framework handles all mutant combinations.
Data Source
AI summary
A computer-implemented method for creating a higher order mutant for mutation testing software is disclosed. The method includes, for each software test of a set of software tests, identifying a respective code path. The method further includes, for each first order mutant of a plurality of first order mutants, associating the first order mutant with the one or more identified code paths it interacts with. The method further includes creating a higher order mutant by combining two or more first order mutants based on the one or more associated code paths.


