Remote Test Separation for Software Coverage Tracking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software testing methods require starting and stopping the software application for each test, which is time-consuming and impractical for long-running applications, preventing the efficient association of lines of code with individual tests.

Innovation Solution

The Remote Test Separation (RTS) system allows testers to send 'start' and 'stop' messages to the software application, enabling all tests to be performed while the application is running, with coverage data recorded in shared memory, allowing associations between lines of code and tests without restarting the application.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If the software application is started and stopped for each test, then the association between lines of code and tests can be easily recorded, but the testing process becomes extremely time-consuming

Engineering Contradiction:
Improveassociation recording accuracyVSAvoidtesting time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent segments the monolithic testing process into multiple independent test executions within a single application lifecycle. By maintaining one persistent application instance and running multiple tests sequentially, the system eliminates repeated startup/shutdown cycles while still capturing individual test coverage data through periodic snapshots of code execution state.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism (coverage tracking instrumentation) that captures code execution information without requiring application restarts. This intermediary layer records which lines of code are executed during each test by monitoring program counters and instruction pointers, enabling accurate association tracking while the application remains running.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the software application runs continuously for multiple tests, then testing efficiency improves, but the ability to associate recorded lines of code with individual tests is lost

Engineering Contradiction:
Improvetesting efficiencyVSAvoidtest association information
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent performs preliminary actions by initializing coverage tracking instrumentation before test execution begins. The system pre-configures hooks and sensors that monitor code execution, ensuring that as each test runs, coverage data is automatically captured and tagged with the corresponding test identifier, preserving association information throughout continuous testing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback mechanisms where coverage data is continuously collected and associated with the currently executing test. By monitoring program state and maintaining a mapping between test identifiers and executed code lines, the system provides real-time feedback that preserves test associations even during continuous operation without restarts.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10496524B2Separating test coverage in software processes using shared memory
Publication Date: 2019.12.03 BLACK DUCK SOFTWARE INC
  • US10496524B2 patent drawing
  • US10496524B2 patent drawing
  • US10496524B2 patent drawing

AI summary

A Remote Test Separation (RTS) system comprising an original software product instrumented for testing and a shared memory accessible to the original software product, the shared memory including a plurality of coverage counters. The RTS system further comprising an agent, capable of accessing the shared memory, the agent to read the plurality of coverage counters, the agent to read the plurality of coverage counters at an end of a test, and write coverage data to another memory. The RTS system runs a plurality of tests without interruption, and generates coverage data associated with a plurality of sequential tests and records the associations between lines of code and an associated test.