CoverageRank Test Selection for Regression Testing Bottlenecks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In software development with large, evolving code bases, running all regression tests is resource-intensive, time-consuming, and can become brittle and ineffective over time, making it challenging to identify areas for regression testing and maintain engineering velocity.

Innovation Solution

The CoverageRank technique ranks tests based on code coverage information to select a subset of tests that prioritize maximum coverage and fault detection, reducing the number of tests needed to be executed and improving engineering velocity by focusing on changed code areas.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all regression tests are run to ensure comprehensive testing, then testing coverage is improved, but time consumption and resource usage increase

Engineering Contradiction:
Improvetesting coverageVSAvoidtime consumption
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the regression test suite into multiple groups based on code coverage metrics. Instead of running all tests uniformly, the system divides tests into segments that target specific changed code areas, allowing selective execution of only the most relevant test segments while maintaining adequate coverage

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the parameter of test selection from static (all tests) to dynamic (selected tests based on coverage analysis). By calculating code coverage parameters and using them to determine which tests to execute, the system adapts the test suite to the specific changes made in the codebase

Inventive Principle:
Principle #35Parameter changes

2Reliability

If all regression tests are run to ensure comprehensive testing, then testing coverage is improved, but resource consumption increases

Engineering Contradiction:
Improvetesting coverageVSAvoidresource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent extracts and identifies the essential subset of tests needed for effective regression testing by analyzing code coverage data. It takes out only the necessary tests from the full test suite, excluding redundant or low-value tests that do not contribute significantly to detecting regressions in changed code areas

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies partial action by executing only a portion of the full test suite that is sufficient to achieve the desired testing coverage. Rather than running all tests (excessive action), it runs the minimum necessary subset that targets changed code areas effectively

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If test selection is based on code coverage information, then engineering velocity is improved, but test selection complexity increases

Engineering Contradiction:
Improveengineering velocityVSAvoidtest selection complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent performs preliminary code coverage analysis before test execution to pre-determine which tests should be run. By calculating coverage metrics and selecting tests in advance based on changed code identification, the system prepares the test plan beforehand, streamlining the actual test execution phase

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces code coverage information as an intermediary between code changes and test selection. This intermediary layer analyzes the relationship between changed code and test coverage, using this analysis to mediate the selection process and automatically determine which tests are most relevant

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11983097B2Ranking tests based on code change and coverage
Publication Date: 2024.05.14 EMC IP HLDG CO LLC
  • US11983097B2 patent drawing
  • US11983097B2 patent drawing
  • US11983097B2 patent drawing

AI summary

A system can identify a file comprising computer-executable instructions, wherein the file has been modified since the file was last transformed into a computer-executable program on which a group of tests was performed. The system can, for respective tests, determine respective line coverage ratios, respective function coverage ratios, and respective branch coverage ratios. The system can select an updated group of tests from the group of tests based on the respective line ratios, the respective function ratios, and the respective branch ratios, the updated group of tests comprising a subgroup of the group of tests. The system can create an updated computer-executable program from the file. The system can test the updated computer-executable program with the updated group of tests.