Test Reduction Tree Pruning for Failing Test Debugging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Complex software and hardware verification processes require extensive testing, leading to cumbersome and time-consuming manual debugging of failing tests, especially when tests are generated by machines and include numerous test statements and elements, making it difficult to understand and debug errors effectively.

Innovation Solution

A method that creates a tree representation of test programming code, allowing for iterative pruning of irrelevant sub-trees to reduce the size of failing tests, resulting in a smaller, easier-to-understand test that represents the same error, facilitating more efficient debugging and analysis.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If machine-generated tests include a very large number of test statements and elements to thoroughly verify complex hardware/software designs, then verification coverage is improved, but test complexity and difficulty of manual debugging increase

Engineering Contradiction:
Improveverification coverageVSAvoidtest complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the complex test by creating a hierarchical tree structure that divides the test into multiple levels of abstraction. The test is broken down into test modules, which are further divided into test steps and individual statements. This segmentation allows engineers to navigate and debug specific portions of the test without being overwhelmed by the entire test suite, thus maintaining high verification coverage while reducing perceived complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary debugging interface that acts as a mediator between the complex machine-generated test and the human engineer. This interface provides simplified views of the test execution, allowing engineers to interact with and debug the test at appropriate levels of abstraction without directly confronting the full complexity of the generated test statements.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If machine-generated tests include a very large number of test statements and elements to thoroughly verify complex hardware/software designs, then verification coverage is improved, but ease of manual debugging deteriorates

Engineering Contradiction:
Improveverification coverageVSAvoidease of manual debugging
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

By segmenting the test into a hierarchical tree structure with multiple levels of abstraction, the patent enables engineers to focus on specific segments of the test that are relevant to the debugging task. This segmentation makes manual debugging more manageable by allowing engineers to navigate to and analyze individual test modules or steps without being overwhelmed by the entire test suite.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent adds a new dimension to test debugging by introducing a hierarchical abstraction layer. Instead of debugging tests in a single flat dimension, engineers can navigate through multiple levels of hierarchy (test module → test step → test statement), providing additional pathways for analysis and making the debugging process more accessible and manageable.

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

3Reliability

If engineers manually debug complex machine-generated tests using traditional trial and error methods, then errors can be identified and fixed, but time consumption and productivity are reduced

Engineering Contradiction:
Improveerror identification accuracyVSAvoiddebugging efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary organization of the test into a hierarchical tree structure before debugging begins. This preliminary action structures the test data in a way that facilitates efficient navigation and analysis during debugging, eliminating the need for trial and error approaches. The pre-organized structure allows engineers to quickly locate and analyze relevant test portions, significantly improving debugging productivity while maintaining accurate error identification.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8719771B2Method and system for test reduction and analysis
Publication Date: 2014.05.06 CADENCE DESIGN SYST INC
  • US8719771B2 patent drawing
  • US8719771B2 patent drawing
  • US8719771B2 patent drawing

AI summary

Disclosed is a method, system, and computer program product that reduces the size of a failing test. A tree is created from the test's programming code, where the tree represents the syntactical and the semantic bounds between the programming code elements. By analyzing this tree and iteratively pruning the irrelevant sub-trees it is possible to eliminate many non necessary parts of the code, and recreate a new legal test, which represents the same error, but is potentially much smaller and therefore easier to understand and debug.