Automated Test Coverage Analysis for Software

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software testing systems face inefficiencies in identifying relevant test cases for newly added or modified software, leading to prolonged testing times and inadequate code coverage, where some code entities may not be tested at all.

Innovation Solution

A method that uses mapping information to identify modified code, execute relevant test cases, generate coverage information, and update mapping information to ensure all code entities are tested, including adding new test cases for uncovered code entities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all test cases are executed to ensure complete code coverage, then testing thoroughness is improved, but testing time increases unacceptably

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

Solution Approach 1:

The patent extracts and executes only the subset of test cases that are relevant to the modified code, rather than executing all test cases. This is achieved by identifying modified code entities and selecting only those test cases that cover the changed portions, thereby reducing testing time while maintaining adequate coverage of affected code.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies partial action by executing only the necessary portion of test cases required to cover modified code entities. Instead of performing excessive testing with all test cases, the system performs just enough testing to ensure coverage of changed code, optimizing the balance between thoroughness and efficiency.

Inventive Principle:
Principle #16Partial or excessive action

2Loss of time

If user manually selects test cases to reduce testing time, then testing time is reduced, but testing accuracy deteriorates due to inability to accurately identify relevant test cases

Engineering Contradiction:
Improvetesting timeVSAvoidtest case selection accuracy
Core Design Contradiction:
Loss of timeVSMeasurement precision

Solution Approach 1:

The patent employs feedback mechanisms where the system automatically analyzes modified code entities and determines which test cases are relevant based on code coverage relationships. This automated feedback loop replaces manual user selection, ensuring accurate identification of relevant test cases while maintaining reduced testing time.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system performs self-service by automatically identifying modified code entities and selecting appropriate test cases without requiring user intervention. The testing system serves itself by using its own analysis capabilities to determine test case relevance, eliminating the need for manual selection and ensuring consistent accuracy.

Inventive Principle:
Principle #25Self-service

3Measurement precision

If mapping information is continuously updated to improve test case identification accuracy, then test case selection precision is improved, but system complexity increases

Engineering Contradiction:
Improvetest case identification accuracyVSAvoidsystem complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-establishing mapping information that associates test cases with code entities before testing begins. This pre-computed mapping data is stored and reused during testing, allowing rapid and accurate identification of relevant test cases without requiring complex real-time analysis during the testing process.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10324831B1Automated test coverage analysis, execution and reporting
Publication Date: 2019.06.18 EMC IP HLDG CO LLC
  • US10324831B1 patent drawing
  • US10324831B1 patent drawing
  • US10324831B1 patent drawing

AI summary

Described are techniques for testing software. The techniques may include identifying, at a first point in time, first code that has been modified, identifying, using first mapping information, a testing set of one or more test cases wherein the first mapping information identifies each test case of the testing set as a test case used to test the first code, running the testing set, generating coverage information in accordance with executing; analyzing the coverage information, generating second mapping information in accordance with said analyzing, and updating the first mapping information in accordance with the second mapping information.