Automated Parameterized Software Testing via Recorded Input Permutations
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
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
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
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
3Reliability
If multiple data permutations are tested manually, then comprehensive testing coverage is achieved, but the effort and complexity increase significantly
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
Data Source
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.


