Automated Software Test Program Generation for Data Processing Apparatus

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

As data processing systems become more complex, the number of potential failure points increases, making it difficult for skilled engineers to efficiently generate software test programs that can detect failures, especially those introduced by synthesis tools, which can obscure the function of individual gates or standard cells, thereby reducing the effectiveness of existing handwritten test programs.

Innovation Solution

A computer-implemented method that involves creating a failure-simulating model to identify uncovered failures within a data processing apparatus, analyzing it with a primary model to generate software stimuli that reveal detectable differences, and incorporating these stimuli into the existing software test program to enhance failure detection coverage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If software test programs are handwritten by skilled engineers, then the ability to detect failures is improved, but the time and resource required for development increases

Engineering Contradiction:
Improvefailure detection capabilityVSAvoidtest program development time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary failure identification and test stimulus generation through automated analysis of the target system model before actual testing. This preliminary automated action creates a foundation that reduces the need for time-consuming manual test program development while maintaining comprehensive failure detection coverage.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an automated software system as an intermediary between the target system model and the test program generation process. This intermediary automatically analyzes the system model, identifies potential failures, generates test stimuli, and validates test cases, thereby reducing direct human involvement and development time while maintaining high reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If data processing systems become more complex, then the functionality is improved, but the number of potential failure points increases

Engineering Contradiction:
Improvesystem functionalityVSAvoidnumber of failure points
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the complex data processing system into a formal model representation that can be systematically analyzed. By breaking down the system into model components, the patent enables automated identification of failure points without being overwhelmed by the overall system complexity, thus managing the increased number of potential failures through structured analysis.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transforms the complex physical system into a formal model with defined parameters and relationships. This parameter transformation allows automated analysis tools to systematically examine the system for potential failures, converting an intractable complexity problem into a manageable formal analysis task that scales with system complexity.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If synthesis tools are used to produce circuit layouts, then the manufacturing efficiency is improved, but the detectability of failures in synthesized portions decreases

Engineering Contradiction:
Improvecircuit production efficiencyVSAvoidfailure detectability
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent creates a formal model copy of the synthesized circuit layout that preserves the functional relationships and data flow. This model copy enables automated analysis of failure detectability without requiring direct inspection of the complex synthesized circuit, thus maintaining failure detectability analysis capability despite the use of synthesis tools that obscure individual gate functions.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent introduces a formal model as an intermediary layer between the synthesized circuit layout and the failure analysis process. This intermediary model reconstructs the functional relationships that may be obscured in the synthesized layout, enabling automated identification of test stimuli that can detect failures even in portions of the circuit generated by synthesis tools.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Reliability

If the coverage of software test programs is increased, then the failure detection capability is improved, but the complexity of the test program increases

Engineering Contradiction:
Improvefailure coverageVSAvoidtest program complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements a self-service approach where the automated system generates and validates test cases based on the target system model and identified failure points. The system automatically determines the necessary test stimuli and validates their effectiveness, reducing the need for complex manual test program construction while achieving comprehensive failure coverage through systematic automated analysis.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10936474B2Software test program generation
Publication Date: 2021.03.02 ARM LTD
  • US10936474B2 patent drawing
  • US10936474B2 patent drawing
  • US10936474B2 patent drawing

AI summary

A simulation of software test program executing upon a primary model of a portion of a data processing apparatus is performed to identify uncovered (undetected) failures. A formal method analysis is then performed upon a combination of the primary model and a fault-simulating model simulating the uncovered failures in order to identify software stimuli that can render the uncovered failures detectable. The identified software stimuli are then added to the software test program to increase the failure coverage. The process is performed iteratively until a desired level of failure coverage is achieved.