IP Library Granted Patent US 11,169,908
Granted Patent B1
US 11,169,908 · App. 17/005,556 · Granted Nov 9, 2021

Framework for UI automation based on graph recognition technology and related methods

Inventor: Kai Lu (NanJing/JiangSu, CN)
Assignee: CITRIX SYSTEMS, INC.
G06F11/3664G06F9/451G06F11/3608G06F11/3676G06F11/3688G06N3/04G06N3/08G06F3/1454G06F11/2257G06F11/3072G06F11/3447G06F11/3684G06F11/3692
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 11,169,908
App. No.
17/005,556
Filed
Aug 28, 2020
Granted
Nov 9, 2021
Kind
B1
Art Unit
2192
USPC
717/125
Abstract

A GUI testing device may be configured to execute a testing state machine for interacting with a software application to generate an initial screen of a GUI. The GUI testing device may be configured to determine a current state in the testing state machine based upon a matching trigger target in the initial screen to a given state. The current state may include an operation, and the operation may associate with a trigger target to operate on. The trigger may include a source state, a destination state, and a trigger target. The operation may include a user input operation, and an operation trigger target. The GUI testing device may be configured to perform the operation on the matching trigger target in the initial screen to generate a next screen of the GUI, and advance from the current state to a next state based upon the trigger.

Claims (37)

1. A computing system comprising:

a graphical user interface (GUI) testing device in communication with a computing device configured to execute a software application with an associated GUI, said GUI testing device comprising a processor and memory cooperating therewith, said processor configured to:

execute a testing state machine for interacting with the software application to generate an initial screen of the GUI, the testing state machine comprising a plurality of states,

determine a current state in the testing state machine based upon a matching trigger target in the initial screen to a given state, the current state comprising at least one operation, and at least one trigger associated with the at least one operation, the at least one trigger including a source state, a destination state, and a trigger target, the at least one operation comprising a user input operation, and an operation trigger target, the determining of the current state comprising:

performing optical character recognition (OCR) on the initial screen to generate a plurality of text strings, and plurality of boxes associated with the plurality of text strings,

finding the trigger including the matching trigger target in the plurality of text strings, the matching trigger target including a source state being the current state, and

merging adjacent text strings in the plurality of text strings, and

perform the at least one operation on the matching trigger target in the initial screen to generate a next screen of the GUI, and advance from the current state to a next state based upon the at least one trigger.

2. The computing system of claim 1 wherein said processor is configured to determine a plurality of GUI elements in the initial screen; and wherein the matching trigger target comprises a matching target GUI element from the plurality of GUI elements.

3. The computing system of claim 1 wherein said processor is configured to determine the current state in the testing state machine by at least:

applying a pre-trained convolutional neural network (CNN) to generate a plurality of labels, and a plurality of boxes associated with the plurality of labels; and

finding the trigger including the matching trigger target in the plurality of labels, the matching trigger including a source state being the current state.

4. The computing system of claim 1 wherein said processor is configured to determine the current state in the testing state machine by at least:

determining and applying a matching image template with the initial screen; and

finding the trigger including the matching trigger target in the matching image template, the matching trigger including a source state being the current state.

5. The computing system of claim 1 wherein said processor is configured to perform the at least one operation on the trigger target in a current screen to generate another screen of the GUI.

6. The computing system of claim 1 wherein the at least one operation comprises a plurality thereof; wherein the trigger target comprises a plurality thereof associated with the plurality of operations; and wherein said processor is configured to iteratively perform each operation on the trigger target to generate a plurality of next screens of the GUI.

7. The computing system of claim 1 wherein the user input operation comprises at least one of a keyboard input and a mouse input.

8. The computing system of claim 1 wherein said processor is configured to execute the testing state machine based upon a JavaScript Object Notation (JSON) file.

9. A method for operating a graphical user interface (GUI) testing device in communication with a computing device configured to execute a software application with an associated GUI, the method comprising:

executing a testing state machine for interacting with the software application to generate an initial screen of the GUI, the testing state machine comprising a plurality of states;

determining a current state in the testing state machine based upon a matching trigger target in the initial screen to a given state, the current state comprising at least one operation, and at least one trigger target associated with the at least one operation, the at least one trigger including a source state, a destination state, and a trigger target, the at least one operation comprising a user input operation, and an operation trigger target, the determining comprising:

performing optical character recognition (OCR) on the initial screen to generate a plurality of text strings, and plurality of boxes associated with the plurality of text strings,

finding the trigger including the matching trigger target in the plurality of text strings, the matching trigger including a source state being the current state, and

merging adjacent text strings in the plurality of text strings; and

performing the at least one operation on the matching trigger target in the initial screen to generate a next screen of the GUI, and advancing from the current state to a next state based upon the at least one trigger.

10. The method of claim 9 further comprising determining a plurality of GUI elements in the initial screen; and wherein the matching trigger target comprises a matching target GUI element from the plurality of GUI elements.

11. The method of claim 9 wherein determining the current state in the testing state machine comprises:

applying a pre-trained convolutional neural network (CNN) to generate a plurality of labels, and a plurality of boxes associated with the plurality of labels; and

finding the trigger including the matching trigger target in the plurality of labels, the matching trigger including a source state being the current state.

12. The method of claim 9 wherein determining the current state in the testing state machine comprises:

determining and applying a matching image template with the initial screen; and

finding the trigger including the matching trigger target in the matching image template, the matching trigger target including a source state being the current state.

13. The method of claim 9 further comprising performing the at least one operation on the trigger target in a current screen to generate another screen of the GUI.

14. The method of claim 9 wherein the at least one operation comprises a plurality thereof; wherein the trigger target comprises a plurality thereof associated with the plurality of operations; and further comprising iteratively performing each operation on the trigger target to generate a plurality of next screens of the GUI.

15. The method of claim 9 wherein the user input operation comprises at least one of a keyboard input and a mouse input.

16. The method of claim 9 further comprising merging a plurality of text boxes in the initial screen of the GUI.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2020
From: LU, KAI
To: CITRIX SYSTEMS, INC.
Reel/Frame 053645/0830 →
Continuity (1)
Continuation PCTCN2020104020 · Jul 24, 2020
Cited By (2)
US 12,367,320 US 12,585,575