Automated Software Testing via DOM Traversal
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The high cost and complexity of developing and maintaining test scripts for software applications, particularly due to frequent GUI changes and difficulties in handling dynamically created software, lead to high failure rates and inefficient testing processes.
Innovation Solution
A generic method for automated testing that traverses Document Object Models (DOMs) to collect only necessary application page elements for CRUD operations and navigation, using a minimum of input data and retry attempts to ensure test script reliability, and employs seeded data with repetitive attempts to minimize failure reporting.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If test scripts use specific locator methods with fixed predetermined values to find application elements, then the test scripts can reliably locate elements, but the test scripts become complex and maintenance-intensive when GUI changes frequently
Solution Approach 1:
The patent implements dynamic element location by replacing fixed locator values with runtime-generated locators that adapt to the actual DOM structure. The system dynamically traverses the DOM tree and constructs locators based on current element properties, allowing test scripts to automatically adapt to GUI changes without manual updates.
Solution Approach 2:
The patent changes the parameters used for element location from static predetermined values to dynamic parameters derived from actual DOM traversal. The system modifies locator parameters based on the current state of the application interface, enabling reliable element location despite changes in the underlying GUI structure.
2Reliability
If test scripts perform comprehensive testing of all application elements, then testing coverage is complete, but testing time and efficiency are reduced
Solution Approach 1:
The patent extracts only the essential elements and operations needed for meaningful testing from the complete application DOM. By identifying and focusing on critical elements such as input fields, buttons, and navigation components, the system achieves comprehensive testing coverage for functional validation while excluding redundant elements that would increase testing time without providing additional value.
Solution Approach 2:
The patent segments the testing process into distinct phases: DOM traversal, element identification, operation execution, and result validation. This segmentation allows the system to systematically test only the most important elements in each phase, improving efficiency while maintaining complete testing coverage through structured approach.
3Speed
If test scripts immediately report failures upon first occurrence, then failure detection is fast, but false failures due to dynamic software behavior are not filtered out
Solution Approach 1:
The patent implements periodic retry attempts for failed test operations. When a failure occurs, the system automatically retries the operation multiple times before reporting it as a true failure. This periodic action filters out transient failures caused by dynamic software behavior while maintaining fast initial failure detection, improving the accuracy of failure reporting.
Solution Approach 2:
The patent applies beforehand cushioning by implementing retry mechanisms that anticipate and compensate for transient failures. The system prepares for potential false failures by allowing multiple attempt cycles, cushioning against the impact of temporary errors in dynamic software environments while maintaining reliable failure detection.
Data Source
AI summary
An application comprising pages and navigations between the pages is parsed into a DOM for each page. A determination is made whether each page creates, updates or deletes an object of the application based on the DOM for the page. If the page does not create, update or delete, the DOM for the page is traversed to collect navigation links to other pages. If the page does create, update or delete, the DOM for the page is traversed to collect, input nodes, buttons for creating, updating or deleting and navigation links to other pages. Each page of the application is visited and tested. A navigation test of each of the collected links of the page is performed with one forward and one backward navigation of the link. A function test of each collected button of the page is performed by using the button and evaluating results based on specified rules.


