Automated Parameterized Software Testing via Recorded Input Permutations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software testers face significant challenges in efficiently reproducing software execution flows to identify issues or retest bugs, as they need to guess the right data sets to reproduce problems, which is time-consuming and inefficient.

Innovation Solution

A system and method for automated parameterized software testing that records mouse movements, keyboard inputs, and screen snapshots, allowing these inputs to be replaced with parameters for generating multiple data permutations, and executing the test flows with random keyboard inputs to analyze results efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If software testers manually reproduce software execution flows to identify issues, then they can detect software defects, but the process is time-consuming and inefficient

Engineering Contradiction:
Improvedefect detection capabilityVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system creates automated copies of manual testing flows by recording user interactions (mouse movements, keyboard inputs, screen snapshots) and converting them into executable test scripts. These copied test flows can be repeatedly executed without manual intervention, significantly reducing testing time while maintaining defect detection capability

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The testing system performs self-service by automatically executing recorded test flows with randomized data permutations without requiring continuous human intervention. The system autonomously captures results and generates reports, freeing testers from repetitive manual reproduction tasks

Inventive Principle:
Principle #25Self-service

2Ease of manufacture

If testers use fixed data sets for reproduction, then the testing process is simple, but the ability to identify system limitations and edge cases is reduced

Engineering Contradiction:
Improvetesting process simplicityVSAvoiddata permutation capability
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The system transforms static fixed data sets into dynamic randomized data permutations. Testers can configure parameters with multiple possible values, and the system automatically varies these parameters across test executions, enabling exploration of different data scenarios while maintaining ease of setup through initial parameter configuration

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system enables parameter changes by allowing testers to define parameters with multiple possible values (e.g., different data types, formats, or ranges). During test execution, the system automatically varies these parameters to generate diverse test scenarios, enhancing the ability to identify system limitations without complicating the testing process

Inventive Principle:
Principle #35Parameter changes

3Reliability

If multiple data permutations are tested manually, then comprehensive testing coverage is achieved, but the effort and complexity increase significantly

Engineering Contradiction:
Improvetesting coverageVSAvoidtesting process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system segments the testing process into distinct phases: recording (capturing manual interactions), parameterization (defining variable data points), and execution (automated running with permutations). This segmentation allows comprehensive testing coverage to be achieved through automated orchestration of these separate stages, reducing overall process complexity

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9734042B1System, method, and computer program for automated parameterized software testing
Publication Date: 2017.08.15 AMDOCS DEV LTD
  • US9734042B1 patent drawing
  • US9734042B1 patent drawing
  • US9734042B1 patent drawing

AI summary

During execution of a computer program, mouse movements, keyboard inputs, and screen snapshots are recorded and stored in one or more files as a test flow. Next, selected recorded keyboard inputs are replaced with user-specified variable parameters to generate a keyboard testing input, each of the parameters corresponding to a plurality of possible keyboard inputs. Execution is triggered of the test flow including the recorded mouse movements, the recorded screenshots, and the keyboard testing input. If the initially displayed screen is not equivalent to the first screen indicted in the test flow as being the start of the test, the test flow is stopped. Otherwise, the test flow is executed utilizing a random selection of the plurality of possible keyboard inputs of the keyboard testing input. At least one output is provided for the execution of the test flow.