Code Coverage Tool Identifying Root-Level Uncovered Units
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional code coverage tools cannot reliably detect the structure of uncovered code and provide full information on the extent of code guarded by any particular function, limiting their ability to guide effective test data development for increasing coverage.
Innovation Solution
A code analysis tool examines structural and coverage information to identify root-level uncovered code units, computes potential coverage values for these units, and orders them by potential impact, enabling efficient targeting for coverage analysis.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If conventional code coverage tools are used to measure code coverage, then coverage percentage can be reported, but the tools cannot reliably detect the structure of uncovered code or provide full information on the extent of code guarded by any particular function
Solution Approach 1:
The patent combines structural analysis capabilities with coverage measurement functionality into a unified code analysis system. The coverage tool integrates with the compiler to simultaneously track both the structural relationships between code units and the coverage status, merging previously separate functions into a cohesive system that provides complete information about uncovered code structures and their relationships to guarded code regions
Solution Approach 2:
The patent adds a structural dimension to coverage analysis by introducing hierarchical relationships between code units (functions, procedures, basic blocks). Instead of only measuring flat coverage percentages, the system organizes coverage data in multiple dimensions showing which uncovered code units are guarded by which covered functions, providing a layered view of code coverage that reveals structural relationships
2Loss of information
If manual examination is performed to identify uncovered code units and their potential coverage impact, then detailed uncoverage information can be obtained, but the process becomes inefficient and onerous
Solution Approach 1:
The patent implements automated computation of potential coverage values that performs the analytical work previously requiring manual examination. The system self-calculates, for each uncovered code unit, the total amount of code that would be covered if that unit were executed, by automatically traversing the hierarchical code structure and summing guarded code regions. This self-service capability eliminates the need for manual code analysis while providing comprehensive uncoverage information
Solution Approach 2:
The patent provides automated feedback to developers by computing and presenting potential coverage values for each uncovered code unit. The system analyzes the code structure, determines which covered functions guard which uncovered units, and feeds back this information in a prioritized format showing the impact of covering each uncovered unit. This automated feedback loop replaces manual examination with systematic computational analysis that guides test development efforts
3Loss of information
If all uncovered code units are analyzed without prioritization, then complete coverage information is provided, but the analysis becomes unwieldy and difficult to target effectively
Solution Approach 1:
The patent applies local quality by computing potential coverage values specifically for uncovered code units that are directly guarded by covered functions. Rather than treating all code uniformly, the system identifies and analyzes only the relevant uncovered units—those that have a direct relationship to already-covered code. This localized analysis approach focuses computational resources on the most impactful areas while maintaining completeness of information for prioritization
Data Source
AI summary
Indication of uncoverage information allows tests to be tailored to target those uncovered code units with the most potential to increase coverage of a program. A tool examines coverage information of a program to identify code units of the program that were not covered by test data used to exercise the program. The tool also examines structural information (e.g., control flow) for the program to identify those of the uncovered code units that have direct control flow from a corresponding covered code unit (“root level uncovered code units”). The coverage tool then measures potential impact on coverage for each of the root level uncovered code units.


