Pseudorandom Test Input Generation via Oracle Constraints
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Extent of automation
If random testing techniques are used, then automation is improved, but detection precision is limited by AUT specification accuracy
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.
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.
3Reliability
If pseudorandom test inputs with constraints are generated, then bug detection effectiveness is improved, but system complexity increases
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.
4Reliability
If more oracles with multiple logical paths are selected, then testing comprehensiveness is improved, but processing complexity increases
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.
Data Source
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.


