Automated Test Step Relationship Deduction for Parallel Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Automated functional testing of software applications is inefficient due to the inability to run steps in parallel, as some steps depend on the results of previous steps, limiting the speed and efficiency of the testing process.
Innovation Solution
A method to identify relationships between test steps, allowing related steps to be executed serially and independent steps to be executed in parallel, by determining relationships through mechanisms such as window/page navigation, flag changes, event listeners, snapshots, and property queries, and saving these relationships for subsequent test runs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If functional tests are written or recorded in a serial sequence of steps, then the testing process is simple to implement and manage, but the speed and efficiency of the tests cannot be improved by running steps in parallel
Solution Approach 1:
The patent segments the functional test into multiple independent steps that can be executed in parallel. By analyzing dependencies between test steps and identifying independent ones, the system divides the test execution into parallelizable units, thereby improving testing speed without compromising test integrity.
Solution Approach 2:
The patent introduces dynamic test execution by automatically determining which steps can be run in parallel based on dependency analysis. The system dynamically adjusts the execution sequence, running independent steps simultaneously while maintaining serial execution for dependent steps, thus optimizing testing efficiency adaptively.
2Reliability
If all test steps are executed in serial sequence, then dependency relationships between steps are naturally maintained, but the overall testing time increases and efficiency decreases
Solution Approach 1:
The patent segments test steps into dependent and independent groups. By identifying steps that do not have dependencies on others, these independent steps can be executed in parallel while maintaining the serial execution order for dependent steps, thus reducing total testing time while preserving result accuracy.
Solution Approach 2:
The patent enables continuous test execution by running independent steps simultaneously rather than sequentially. This maintains the continuity and completeness of test coverage while eliminating idle waiting time between dependent steps, thereby reducing overall testing time without sacrificing reliability.
3Productivity
If test steps are executed in parallel without identifying relationships, then testing efficiency improves, but incorrect parallel execution may occur when steps have hidden dependencies
Solution Approach 1:
The patent performs preliminary dependency analysis before executing test steps in parallel. By analyzing window/page navigation, flag changes, event listeners, snapshots, and property queries beforehand, the system identifies dependency relationships in advance, ensuring that only truly independent steps are executed in parallel, thus maintaining both efficiency and accuracy.
Solution Approach 2:
The patent uses feedback mechanisms to detect changes in application state during test execution. By monitoring events such as window navigation, flag modifications, and property changes, the system receives feedback about actual dependencies, allowing it to accurately determine which steps can safely run in parallel and which must remain serial.
Data Source
AI summary
Embodiments of the disclosure provide systems and methods for executing a functional test on an application. According to one embodiment, a method for running a functional test on an application can comprise executing the function test on the application. The functional test can comprise a plurality of steps. The plurality of steps can comprise a set of related steps having one or more relationships between each other and a set of one or more independent steps having no relationships to other steps in the plurality of steps. The one or more relationships between the set of related steps can be deduced and an indication of the deduced one or more relationships between the set of related steps can be saved. The functional test can then be replayed on the application based on the saved indication of the deduced one or more relationships between the set of related steps.


