Code Coverage Map for Selective Software Test Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software development involves extensive and time-consuming testing processes, particularly as software systems become large and complex, leading to inefficiencies in providing feedback on code changes.

Innovation Solution

A code coverage map is maintained to identify which tests execute specific sections of code, allowing a testing service to run only relevant tests rather than the entire set, thereby reducing the time required to provide feedback on code changes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all tests are run on code changes, then testing completeness is improved, but testing time increases

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

Solution Approach 1:

The patent segments the complete test suite into individual test cases and selectively executes only those tests that are relevant to the modified code sections. By dividing the monolithic testing approach into granular, selectable test units, the system can run a subset of tests rather than the entire suite, thereby reducing testing time while maintaining adequate coverage of affected functionality.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by identifying and executing only the specific tests that are relevant to the local changes in the codebase. Instead of uniformly running all tests across the entire system, the system tailors the test execution to the specific modified sections, ensuring that testing resources are concentrated where they are most needed while avoiding unnecessary execution of unrelated tests.

Inventive Principle:
Principle #3Local quality

2Reliability

If comprehensive testing is performed, then software quality is improved, but development productivity decreases

Engineering Contradiction:
Improvesoftware qualityVSAvoiddevelopment productivity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements partial action by executing only the necessary subset of tests required to verify the quality of code changes, rather than running the complete test suite. This partial execution approach maintains adequate quality assurance for modified functionality while avoiding the excessive time consumption of comprehensive testing, thereby improving development productivity without sacrificing essential quality checks.

Inventive Principle:
Principle #16Partial or excessive action

3Measurement precision

If the entire test suite is executed, then test coverage is improved, but feedback time increases

Engineering Contradiction:
Improvetest coverageVSAvoidfeedback time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent segments the test suite and executes only the relevant portion needed to provide feedback on code changes. By dividing the complete test set into individual executable units and selecting only those that pertain to modified code, the system achieves sufficient measurement precision for the changes at hand while dramatically reducing the feedback time required to inform developers about test results.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9767000B1Selecting appropriate subsets of software tests
Publication Date: 2017.09.19 AMAZON TECH INC
  • US9767000B1 patent drawing
  • US9767000B1 patent drawing
  • US9767000B1 patent drawing

AI summary

An environment and techniques for intelligently selecting which tests of multiple different tests to run on a particular section or sections of code, such as one or more lines of code that a developer has altered, are described herein. In this manner, the techniques may allow developers to receive feedback on their software more quickly by running a subset of tests, rather than each test in a predefined set of tests.