Regression Test Selection via Execution Path Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In iterative and incremental software development, regression testing is resource-intensive and time-consuming when applied to software modifications, as existing test suites often require full application despite limited changes, leading to inefficiencies.

Innovation Solution

A method that identifies a subset of tests covering the modified code, groups them by execution paths, prioritizes tests based on characteristics like turn-around time and fault detection capability, and selectively executes tests to reduce the testing burden, using tools like Gcov and Ctags to optimize resource usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If full test suites are applied to software modifications, then testing coverage is comprehensive, but testing time and resource consumption increase significantly

Engineering Contradiction:
Improvetesting coverageVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the complete test suite into multiple groups based on execution paths. Each group contains tests that share the same execution path through the modified code. This segmentation allows selective execution of only relevant test groups, reducing overall testing time while maintaining adequate coverage of the modified functionality.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by prioritizing tests within each group based on specific characteristics such as fault detection capability and turn-around time. High-priority tests that are more likely to detect faults in the modified code are executed first, ensuring that the most critical testing needs are met with reduced time investment.

Inventive Principle:
Principle #3Local quality

2Reliability

If full test suites are applied to software modifications, then fault detection capability is maximized, but resource consumption increases

Engineering Contradiction:
Improvefault detection capabilityVSAvoidresource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The test suite is segmented into groups based on execution paths, allowing the system to execute only the segments relevant to the modified code. This reduces resource consumption by avoiding execution of tests that do not exercise the changed functionality, while still maintaining fault detection capability for the modified portions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Within each execution path group, tests are prioritized based on fault detection capability. The system executes high-priority tests first, ensuring that resources are allocated to tests that provide the greatest fault detection value, thereby maximizing fault detection capability with reduced resource consumption.

Inventive Principle:
Principle #3Local quality

3Productivity

If test suites are reduced to cover only modified code, then testing efficiency improves, but testing coverage may be insufficient

Engineering Contradiction:
Improvetesting efficiencyVSAvoidtesting coverage
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments tests by execution path, ensuring that all tests exercising the modified code are identified and grouped. This segmentation approach maintains comprehensive coverage of the modified functionality while excluding tests that do not exercise the changed code, thereby improving efficiency without sacrificing necessary coverage.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

By prioritizing tests within each execution path group based on characteristics like fault detection capability, the system ensures that the most important tests are executed even when the overall test suite is reduced. This maintains adequate testing coverage for the modified code while improving efficiency through selective execution.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11994979B2Smart regression test selection for software development
Publication Date: 2024.05.28 SYNOPSYS INC
  • US11994979B2 patent drawing
  • US11994979B2 patent drawing
  • US11994979B2 patent drawing

AI summary

A method of testing a change in a software code includes, searching a database of tests to identify a subset of the tests that include a function that executes the change, forming, from the subset, a multitude of groups each having a different execution path. The tests in the same group have the same execution path. The method further includes prioritizing the tests within each of the multitude of groups based on one or more testing characteristics, and selecting, from each of the groups, one or more of the prioritized tests to test the change.