Code Path Gap Analysis for Software Testing Coverage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software testing methods fail to thoroughly cover all code execution paths, leading to potential errors in production environments due to untested sequences of application code, especially when modules interact in specific sequences.

Innovation Solution

A technique that identifies production code paths and test code paths by analyzing production logs, code dumps, and thread dumps, and compares them to potential execution paths, generating tree data structures to highlight test gaps, enabling developers to modify tests to cover missing sequences.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If code coverage tools are used to determine the degree of code testing, then the measurement of testing coverage is improved, but the ability to identify specific untested code paths is insufficient

Engineering Contradiction:
Improvecode coverage measurementVSAvoidspecific code path information
Core Design Contradiction:
Measurement precisionVSLoss of information

Solution Approach 1:

The patent segments the overall code coverage measurement into individual code path analyses. By breaking down the monolithic coverage metric into discrete executable statement sequences, the system can identify specific untested paths rather than just providing an aggregate percentage.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent adds a dimensional aspect to code coverage by introducing code path sequencing information. Instead of merely measuring whether code is executed, it tracks the specific sequences of executable statements, adding a path-dimension to the traditional coverage measurement.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Reliability

If comprehensive testing of all code paths is attempted, then the thoroughness of testing is improved, but the time and resources required increase significantly

Engineering Contradiction:
Improvetesting thoroughnessVSAvoidtest development time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements feedback by comparing actual production code paths against test code paths to identify test gaps. This feedback mechanism directs testing efforts toward specific untested paths rather than requiring exhaustive manual testing of all possible paths.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent performs preliminary analysis of production code paths before conducting comprehensive testing. By pre-identifying which code paths are actually executed in production, the system can prioritize testing efforts on those specific paths rather than uniformly testing all possible paths.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If test cases are designed to cover all potential code paths, then the completeness of testing is improved, but the complexity of test design increases

Engineering Contradiction:
Improvetest coverage completenessVSAvoidtest design complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent enables the system to automatically identify test gaps by comparing production and test code paths. This self-service approach reduces the manual complexity of designing comprehensive test cases, as the system autonomously determines which paths require additional testing coverage.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent focuses testing efforts on the specific code paths that are actually executed in production rather than attempting to design tests for all theoretically possible paths. This partial action approach achieves practical completeness without the overwhelming complexity of exhaustive path coverage.

Inventive Principle:
Principle #16Partial or excessive action

4Measurement precision

If production code paths are analyzed to identify untested sequences, then the accuracy of test gap identification is improved, but the data processing requirements increase

Engineering Contradiction:
Improvetest gap identification accuracyVSAvoiddata processing volume
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent extracts only the relevant code path information from production logs and test execution data, rather than processing all available data. By isolating and analyzing only the executable statement sequences, the system achieves accurate test gap identification without overwhelming data processing requirements.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10241897B2Identifying test gaps using code execution paths
Publication Date: 2019.03.26 VMWARE INC
  • US10241897B2 patent drawing
  • US10241897B2 patent drawing
  • US10241897B2 patent drawing

AI summary

Systems and techniques are described for identifying test gaps. A described technique includes identifying production code paths for an application. Each production code path specifies a respective sequence of code of the application that was executed in a production environment. Test code paths are identified for the application. Each test code path specifies a respective sequence of the application that was tested in a test environment. The production code paths are compared to the test code paths to identify a set of test gaps for the application. Each test gap specifies a respective production code path that is not included in the test code paths. Test gap data specifying the test gaps for the application can be provided for presentation to a user.