Test Case Champion Selection via Code Path Fingerprints

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing testing methodologies, such as Combinatorial Test Design (CTD), face challenges in efficiently identifying and prioritizing test cases that effectively detect faults in a System Under Test (SUT).

Innovation Solution

The method involves generating fingerprints for test cases that identify specific code paths covered by each test case, using version control information to identify test cases covering changed code, and designating champion test cases based on execution results and criteria.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional testing methodologies are used to execute all test cases, then comprehensive code coverage is achieved, but testing efficiency and time consumption deteriorate

Engineering Contradiction:
Improvefault detection effectivenessVSAvoidtesting time consumption
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the test case set into different categories based on code change coverage. Test cases are divided into those covering changed code paths and those covering unchanged code paths, allowing selective execution prioritization that reduces overall testing time while maintaining fault detection effectiveness for modified portions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary analysis to generate fingerprints for each test case that identify the specific code paths they cover. This pre-computed information is stored and used to quickly determine which test cases are relevant to recent code changes, eliminating the need to execute all test cases and reducing testing time while maintaining reliability.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If comprehensive test case execution is performed to ensure fault detection, then testing thoroughness is improved, but productivity and efficiency deteriorate

Engineering Contradiction:
Improvetesting thoroughnessVSAvoidtesting efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements dynamic test case prioritization where the test execution order and selection adapts based on code change information. Test cases covering changed code paths are dynamically prioritized and executed first, while maintaining a comprehensive test suite for thoroughness, thereby improving productivity without sacrificing testing quality.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of test case selection based on code change fingerprints. By comparing test case fingerprints with changed code paths, the system dynamically adjusts which test cases to execute, ensuring thorough testing of modified portions while reducing unnecessary execution of unchanged portions, thus improving efficiency.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If test cases are prioritized based on code change coverage, then testing efficiency is improved, but measurement precision and identification accuracy deteriorate

Engineering Contradiction:
Improvetesting efficiencyVSAvoidcode path identification accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent creates fingerprints as simplified representations or copies of the actual code paths covered by each test case. These fingerprints capture the essential code path information without requiring full code analysis during test execution, enabling efficient prioritization while maintaining accurate identification of code coverage relationships.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS20250181464A1Management of test case champions
Publication Date: 2025.06.05 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US20250181464A1 patent drawing
  • US20250181464A1 patent drawing
  • US20250181464A1 patent drawing

AI summary

Management of test case champions includes generating a plurality of fingerprints for a plurality of test cases, wherein each of the plurality of fingerprints is associated with one of the plurality of test cases and identifies a specific code path covered by its associated test case for a System Under Test (SUT). Based on the fingerprints and based on version control information for the SUT, one or more test cases in the plurality of test cases that cover a portion of code of the SUT that has changed are identified. Based on one or more criteria and test execution results, at least one test case of the identified one or more test cases is designated as a champion test case.