IP Library › Granted Patent US 12,481,576
Granted Patent B2
US 12,481,576 · App. 18/287,599 · Granted Nov 25, 2025

Software testing

Inventors: Jonathon R. Seaton (Walnut Creek, CA); Tamas Cser (Walnut Creek, CA)
Assignee: Functionize, Inc.
G06F11/3688G06F11/3698
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,481,576
App. No.
18/287,599
Granted
Nov 25, 2025
Kind
B2
Abstract

Provided herein is technology relating to testing software and particularly, but not exclusively, to systems and methods for visually validating a step in a software test case and using the visual validation to reinforce an element selection model, the technology provides methods for visually validating a step in a software test case. More particularly, embodiments of the technology provide a method of mapping web elements of a website or app to a visual screenshot of that website or app by combining data from the document object model (DOM) and page screenshot.

Claims (68)

1 . A method, in a computer system including a processor, for automated validation of a software test case, said method comprising:

the processor obtaining a first screenshot of a web page and storing the first screenshot as a bitmap;

the processor executing program instructions to perform a step of a test script of user actions acting on said web page;

the processor capturing a second screenshot of said web page in conjunction with the step and storing the second screenshot as a bitmap;

the processor, substantially simultaneously with capturing the second screenshot, obtaining document object model (DOM) information regarding the web page, wherein obtaining document object model (DOM) information regarding the web page includes recursively collecting, using a node filter, DOM information from different page structures in multiple passes, wherein each pass collects DOM information for both visual elements and text elements of the web page;

the processor identifying a web page element of the web page using both the DOM information and variation between the bitmaps of the first and second screenshots; and

the processor, based on the identifying, providing an output indicating a subsegment of the web page in which the web page element was identified.

2 . The method of claim 1 , wherein providing the output further comprises:

the processor displaying a selected screenshot among the first screenshot and the second screenshot; and

the processor visually demarcating the subsegment of the selected screenshot as including an image of the web page element.

3 . The method of claim 1 , further comprising the processor providing said test script by recording user actions.

4 . The method of claim 1 , further comprising:

the processor receiving user input indicating whether or not the subsegment of the web page identified in the output correctly identifies the web page element.

5 . The method of claim 4 , further comprising the processor training web page element selection by a model and/or a neural network using said user input.

6 . The method of claim 1 , wherein executing a step of a test script of user actions comprises executing the step on a cloud computing component.

7 . The method of claim 1 , wherein executing a step of a test script of user actions comprises modeling a user action of selecting the web page element.

8 . The method of claim 1 , further comprising segmenting the first screenshot or second screenshot using the visual screenshot variation and DOM information to provide a segment of the first screenshot or second screenshot including an image of the web page element.

9 . The method of claim 1 , further comprising:

correlating at least one of the following pairs:

the web page element and the visual screenshot variation;

a DOM element in the DOM information and the visual screenshot variation.

10 . The method of claim 9 , further comprising displaying a correlation result of the correlating.

11 . The method of claim 1 , further comprising:

displaying on a graphical user interface at least one of the following:

said web page;

the first screenshot of said web page;

the second screenshot of said webpage; and

displaying, on the graphical user interface, results of steps of the test script of user actions.

12 . The method of claim 1 , further comprising:

receiving and acting upon a control input to pause performance of steps of said test script or to step through one or more steps of said test script.

13 . The method of claim 4 , further comprising:

the processor, based on the user input indicating the subsegment of the webpage identified in the output correctly identifies the web page element, passing the test case.

14 . A computer system, comprising:

a data storage device storing program code; and

a processor communicatively coupled to the data storage device, wherein the processor is configured to execute the program code to cause the computer system to perform:

obtaining a first screenshot of a web page and storing the first screenshot as a bitmap;

executing program instructions to perform a step of a test script of user actions acting on said web page;

capturing a second screenshot of said web page in conjunction with the step and storing the second screenshot as a bitmap;

substantially simultaneously with capturing the second screenshot, obtaining document object model (DOM) information regarding the web page, wherein obtaining document object model (DOM) information regarding the web page includes recursively collecting, using a node filter, DOM information from different page structures in multiple passes, wherein each pass collects DOM information for both visual elements and text elements of the web page;

identifying a web page element of the web page using both the DOM information and variation between the bitmaps of the first and second screenshots; and

based on the identifying, providing an output indicating a subsegment of the web page in which the web page element was identified.

15 . The computer system of claim 14 , wherein:

the computer system includes a display and user input device; and

the program code further causes the computer system to perform:

displaying, within the display, a selected screenshot among the first screenshot and the second screenshot; and

visually demarcating the subsegment of the selected screenshot as including an image of the web page element.

16 . The computer system of claim 15 , wherein the program code further causes the computer system to perform:

receiving, via the user input device, user input indicating whether or not the subsegment of the web page identified in the output correctly identifies the web page element.

17 . The computer system of claim 16 , wherein the program code further causes the computer system to perform:

based on the user input indicating the subsegment of the webpage identified in the output correctly identifies the web page element, passing the test case.

18 . A program product, comprising:

a non-transitory data storage device; and

program code stored within the data storage device that, when executed by a processor of a computer system, causes the computer system to perform:

obtaining a first screenshot of a web page and storing the first screenshot as a bitmap;

executing program instructions to perform a step of a test script of user actions acting on said web page;

capturing a second screenshot of said web page in conjunction with the step and storing the second screenshot as a bitmap;

substantially simultaneously with capturing the second screenshot, obtaining document object model (DOM) information regarding the web page, wherein obtaining document object model (DOM) information regarding the web page includes recursively collecting, using a node filter, DOM information from different page structures in multiple passes, wherein each pass collects DOM information for both visual elements and text elements of the web page;

identifying a web page element of the web page using both the DOM information and variation between the bitmaps of the first and second screenshots; and

based on the identifying, providing an output indicating a subsegment of the web page in which the web page element was identified.

19 . The program product of claim 18 , wherein:

the computer system includes a display and user input device; and

the program code further causes the computer system to perform:

displaying, within the display, a selected screenshot among the first screenshot and the second screenshot;

visually demarcating the subsegment of the selected screenshot as including an image of the web page element.

20 . The program product of claim 19 , wherein the program code further causes the computer system to perform:

receiving, via the user input device, user input indicating whether or not the subsegment of the web page identified in the output correctly identifies the web page element.

21 . The program product of claim 18 , wherein the program code further causes the computer system to perform:

based on the user input indicating the subsegment of the webpage identified in the output correctly identifies the web page element, passing the test case.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 3, 2023
From: SEATON, JONATHON R.; CSER, TAMAS
To: FUNCTIONIZE, INC.
Reel/Frame 065456/0494 →
Continuity (2)
Provisional Application 63178502 · Apr 22, 2021
Related Publication 20240184692A1 · Jun 6, 2024
References Cited (6)
US 20150347284A1 · Hey et al. · 2015 [cited by applicant]
US 20180197103A1 · Petursson · 2018 [cited by examiner]
US 20200034279A1 · Shivam et al. · 2020 [cited by applicant]
US 20200097724A1 · Chakravarty · 2020 [cited by examiner]
Document: create TreeWalker() method. MDN. Revised Jul. 25, 2024. Accessed Oct. 8, 2024. [URL: developer.mozilla.org/en-US/docs/Web/API/Document/createTreeWalker]. [cited by applicant]
International Search Report and Written Opinion for PCT/US2022/025554, mailed Aug. 18, 2022, 16 pages. [cited by applicant]