Higher Order Mutant Generation via Code Path Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveprecision of mutation coverageVSAvoidcomputational time
Core Design Contradiction:
Measurement precisionVSLoss of time

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.

Inventive Principle:
Principle #5Merging (Combining)

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.

Inventive Principle:
Principle #1Segmentation

2Loss of time

If higher order mutation testing is used, then computational time is reduced, but precision of mutation coverage is compromised

Engineering Contradiction:
Improvecomputational timeVSAvoidprecision of mutation coverage
Core Design Contradiction:
Loss of timeVSMeasurement precision

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.

Inventive Principle:
Principle #3Local quality

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If more mutants are generated for comprehensive testing, then coverage completeness improves, but testing cost and complexity increase

Engineering Contradiction:
Improvecoverage completenessVSAvoidtesting complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #5Merging (Combining)

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS11119902B2Creating a higher order mutant for mutation testing software
Publication Date: 2021.09.14 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11119902B2 patent drawing
  • US11119902B2 patent drawing
  • US11119902B2 patent drawing

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.