Probe Injection for Code Coverage with Minimal CPU Impact

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for injecting probes into executable code to determine code coverage often result in significant performance impact and lack the use of time-sensitive and performance-sensitive measures, as well as statistical analysis for minimal resource utilization.

Innovation Solution

A system and method for efficiently injecting probes into executable code, utilizing statistical analysis and time-sensitive/performance-sensitive measures to minimize CPU and RAM resource usage, with dynamic probe placement and fuzzy counter increments to reduce performance impact, allowing for code behavior analysis during execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If probes are injected into executable code to determine code coverage, then code coverage information can be obtained, but performance impact on CPU and RAM resources increases

Engineering Contradiction:
Improvecode coverage informationVSAvoidperformance impact
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent applies partial action by injecting probes selectively at specific code locations rather than throughout the entire codebase. The system identifies and injects probes only at strategically chosen points that provide sufficient coverage information while minimizing performance overhead. This selective approach allows the system to obtain meaningful code coverage data without instrumenting every possible execution path, thereby reducing the performance impact on CPU and RAM resources.

Inventive Principle:
Principle #16Partial or excessive action

2Measurement precision

If traditional probe injection methods are used, then code coverage can be measured, but resource utilization (CPU and RAM) increases significantly

Engineering Contradiction:
Improvecode coverage measurementVSAvoidresource utilization
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The patent implements local quality by making probe injection location-specific and context-aware. Different probe types and instrumentation strategies are applied at different code locations based on their characteristics and importance. Critical code paths receive more detailed instrumentation while less important areas use lighter probing mechanisms. This localized approach ensures that resource utilization is optimized for each specific code region, providing accurate coverage measurements without uniformly high resource consumption across the entire system.

Inventive Principle:
Principle #3Local quality

3Reliability

If probes are injected for comprehensive code coverage, then testing accuracy improves, but time consumption increases

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

Solution Approach 1:

The patent applies preliminary action by performing static analysis and code profiling before probe injection to identify high-value code paths that require instrumentation. The system预先 analyzes the code structure, execution patterns, and critical paths, then strategically places probes only where they will provide maximum testing accuracy. This pre-planning approach eliminates the need for comprehensive probing of all code, significantly reducing the time required for code coverage measurement while maintaining high testing reliability through targeted probe placement in the most informative locations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11847041B2System and method for probe injection for code coverage
Publication Date: 2023.12.19 TRICENTIS ISRAEL LTD
  • US11847041B2 patent drawing
  • US11847041B2 patent drawing
  • US11847041B2 patent drawing

AI summary

A system and methods for efficiently injecting probes to executable code, which is then executed. Such probes may be used for example to examine the behavior of the code during execution. Optionally analyzing the behavior of the code during execution is used as part of a testing strategy for the code.