Pseudorandom Test Input Generation via Oracle Constraints

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software testing of Applications Under Test (AUT) is often time-consuming and prone to human bias, and random testing techniques are limited by the precision of the AUT specification, making it difficult to detect all types of bugs effectively.

Innovation Solution

Generating pseudorandom test items using a processor device that selects oracles with logical paths and test conditions, translating these into constraints to produce pseudorandom test inputs that satisfy specified constraints, thereby leveraging captured knowledge of the AUT's functionality to automatically detect software bugs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual software testing strategies (equivalence partitioning or boundary value analysis) are employed, then testing coverage can be improved, but time consumption and human bias increase

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

Solution Approach 1:

The system enables self-service automated testing by automatically generating pseudorandom test inputs based on oracle specifications and constraints, eliminating the need for manual test case creation while maintaining comprehensive coverage. The processor device autonomously generates test items without human intervention.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

Manual testing strategies are replaced with automated pseudorandom generation mechanisms. The system substitutes human operators with a processor device that uses algorithms to generate test inputs, replacing the mechanical process of manual test design with an automated computational system.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Extent of automation

If random testing techniques are used, then automation is improved, but detection precision is limited by AUT specification accuracy

Engineering Contradiction:
Improveautomation levelVSAvoidbug detection precision
Core Design Contradiction:
Extent of automationVSMeasurement precision

Solution Approach 1:

The system changes the parameters of random testing by introducing constraints derived from oracle logical paths. Instead of pure random testing, the system generates pseudorandom test inputs that satisfy specific constraints, thereby improving detection precision while maintaining automation. The constraint parameters are extracted from oracle specifications.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The oracle serves as an intermediary between the automated testing system and the AUT specification. It translates high-level specification requirements into concrete constraints that guide pseudorandom test input generation, bridging the gap between automation and precision.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If pseudorandom test inputs with constraints are generated, then bug detection effectiveness is improved, but system complexity increases

Engineering Contradiction:
Improvebug detection effectivenessVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The testing system is segmented into distinct functional components: oracle selection, logical path identification, constraint extraction, and pseudorandom test input generation. This modular segmentation manages complexity by breaking down the complex task of constrained pseudorandom generation into manageable, independent steps.

Inventive Principle:
Principle #1Segmentation

4Reliability

If more oracles with multiple logical paths are selected, then testing comprehensiveness is improved, but processing complexity increases

Engineering Contradiction:
Improvetesting comprehensivenessVSAvoidprocessing complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system dynamically selects oracles and logical paths based on testing needs rather than processing all possible combinations statically. The processor device adaptively chooses which oracles to apply and which logical paths to explore, optimizing the balance between comprehensiveness and processing complexity through dynamic decision-making.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10223247B2Generating pseudorandom test items for software testing of an application under test (AUT)
Publication Date: 2019.03.05 RED HAT INC
  • US10223247B2 patent drawing
  • US10223247B2 patent drawing
  • US10223247B2 patent drawing

AI summary

Generating pseudorandom test items for software testing of an Application Under Test (AUT) is provided. In one example, a method comprises selecting an oracle of one or more oracles within a test provider directory structure, the oracle defining one or more logical paths each comprising one or more test conditions and an expected result. A pseudorandom test item having an initial state of empty is generated, and a logical path of the one or more logical paths is selected. The one or more test conditions of the logical path are translated into a constraint. Based on the constraint, a pseudorandom test input is generated and stored in the pseudorandom test item in association with the expected result corresponding to the logical path.