Automated Software Testing via DOM Traversal

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveelement location reliabilityVSAvoidtest script complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If test scripts perform comprehensive testing of all application elements, then testing coverage is complete, but testing time and efficiency are reduced

Engineering Contradiction:
Improvetesting coverageVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improvefailure detection speedVSAvoidfailure reporting accuracy
Core Design Contradiction:
SpeedVSReliability

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.

Inventive Principle:
Principle #19Periodic action

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.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Data Source

PatentUS9507700B1Generic method for automated software testing
Publication Date: 2016.11.29 SAP SE
  • US9507700B1 patent drawing
  • US9507700B1 patent drawing
  • US9507700B1 patent drawing

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.