IP Library › Granted Patent US 10,915,414
Granted Patent B2
US 10,915,414 · App. 16/159,020 · Granted Feb 9, 2021

Test controller for concurrent testing of an application on multiple devices without using pre-recorded scripts

Inventor: Hao Wu (Nanjing, CN)
Assignee: CITRIX SYSTEMS, INC.
G06F11/2635G06F8/61G06F9/445G06F11/267G06F11/277G06F11/2733G06F11/3672G06K9/325G06F3/04812
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 10,915,414
App. No.
16/159,020
Granted
Feb 9, 2021
Kind
B2
Abstract

A test controller interfacing between a master computing device and slave computing devices includes a processor configured to launch a master application on the master computing device and a slave application to be tested on each respective slave computing device, with each slave application being the same as the master application. The processor is also configured to receive from the master computing device an input test command along with a test result based on execution of the input test command by the master application, and transmit the received input test command to each slave computing device. In addition, the processor is configured to receive a respective test result from each slave computing device based on execution of the received input test command, and compare each respective test result from the slave computing devices to the test result from the master computing device.

Claims (45)

1. A test controller interfacing between a master computing device and a plurality of slave computing devices and comprising:

a processor configured to perform the following:

initiate installation of a master agent on the master computing device,

initiate installation of a slave agent on each one of the slave computing devices,

transmit a master launch command to the master agent for the master agent to launch a master application on the master computing device,

transmit a slave launch command to each of the slave agents for each respective slave agent to launch a slave application to be tested on each respective slave computing device, with each slave application being the same as the master application,

receive from the master agent an input test command for the master application along with a test result based on execution of the input test command by the master application,

transmit the received input test command to each slave agent,

receive a respective test result from each slave agent based on execution of the received input test command by each respective slave application, and

compare each respective test result from the plurality of slave computing devices to the test result from the master computing device.

2. The test controller according to claim 1 wherein the input test command comprises at least one of a screen touch, a mouse click, and a keystroke on the master computing device captured by the master agent.

3. The test controller according to claim 1 wherein an operating system of the master computing device is different than an operating system of at least one of the plurality of slave computing devices.

4. The test controller according to claim 1 wherein a respective slave agent is configured to translate a language of the input test command to a language that is compatible with a respective slave computing device.

5. The test controller according to claim 1 wherein the processor is configured to query the master agent and each one of the slave agents for a respective screen size when the input test command is screen input, and to calculate a screen coordinate of the input test command that matches a correlating screen coordinate of that respective slave computing device when the respective screen sizes are different.

6. The test controller according to claim 5 wherein the slave agent of each one of the plurality of slave devices is configured to detect whether an element at a modified screen coordinate of the input test command can be found at the correlating screen coordinate on a screen of the respective slave computing device and performing the received input test command thereon.

7. The test controller according to claim 1 wherein the slave agent of each one of the slave computing devices is configured to determine whether a text string or an image is present in the test result received from the master agent.

8. The test controller according to claim 7 wherein the slave agent on each one of the slave computing devices is configured to locate the text string or the image in the test result for each respective slave application to determine whether to indicate the test result as having passed when found, or having failed when not found, for the respective slave computing device.

9. A method for operating a test controller interfacing between a master computing device and a plurality of slave computing devices, and comprising a processor, the method comprising:

initiating installation of a master agent on the master computing device,

initiating installation of a slave agent on each one of the slave computing devices,

transmitting a master launch command to the master agent for the master agent to launch a master application on the master computing device,

transmitting a slave launch command to each of the slave agents for each respective slave agent to launch a slave application to be tested on each respective slave computing device, with each slave application being the same as the master application,

receiving from the master agent an input test command for the master application along with a test result based on execution of the input test command by the master application,

transmitting the received input test command to each slave agent,

receiving a respective test result from each slave agent based on execution of the received input test command by each respective slave application, and

comparing each respective test result from the plurality of slave computing devices to the test result from the master computing device.

10. The method according to claim 9 wherein the input test command comprises at least one of a screen touch, a mouse click, and a keystroke on the master computing device captured by the master agent.

11. The method according to claim 9 wherein the processor is configured to query the master agent and each one of the slave agents for a respective screen size when the input test command is screen input, and to calculate a screen coordinate of the input test command that matches a correlating screen coordinate of that respective slave computing device when the respective screen sizes are different.

12. The method according to claim 11 wherein the slave agent of each one of the plurality of slave devices is configured to detect whether an element at a modified screen coordinate of the input test command can be found at the correlating screen coordinate on a screen of the respective slave computing device and performing the received input test command thereon.

13. The method according to claim 9 wherein the slave agent of each one of the slave computing devices is configured to determine whether a text string or an image is present in the test result received from the master agent.

14. The method according to claim 13 wherein the slave agent on each one of the slave computing devices is configured to locate the text string or the image in the test result for each respective slave application to determine whether to indicate the test result as having passed when found, or having failed when not found, for the respective slave computing device.

15. A non-transitory computer readable medium for operating a test controller interfacing between a master computing device and a plurality of slave computing devices, and with the non-transitory computer readable medium having a plurality of computer executable instructions for causing the test controller to perform steps comprising:

initiating installation of a master agent on the master computing device,

initiating installation of a slave agent on each one of the slave computing devices,

transmitting a master launch command to the master agent for the master agent to launch a master application on the master computing device,

transmitting a slave launch command to each of the slave agents for each respective slave agent to launch a slave application to be tested on each respective slave computing device, with each slave application being the same as the master application,

receiving from the master agent an input test command for the master application along with a test result based on execution of the input test command by the master application,

transmitting the received input test command to each slave agent,

receiving a respective test result from each slave agent based on execution of the received input test command by each respective slave application, and

comparing each respective test result from the plurality of slave computing devices to the test result from the master computing device.

16. The non-transitory computer readable medium according to claim 15 wherein the input test command comprises at least one of a screen touch, a mouse click, and a keystroke on the master computing device captured by the master agent.

17. The non-transitory computer readable medium according to claim 15 wherein the processor is configured to query the master agent and each one of the slave agents for a respective screen size when the input test command is screen input, and to calculate a screen coordinate of the input test command that matches a correlating screen coordinate of that respective slave computing device when the respective screen sizes are different.

18. The non-transitory computer readable medium according to claim 17 wherein the slave agent of each one of the plurality of slave devices is configured to detect whether an element at a modified screen coordinate of the input test command can be found at the correlating screen coordinate on a screen of the respective slave computing device and performing the received input test command thereon.

19. The non-transitory computer readable medium according to claim 15 wherein the slave agent of each one of the slave computing devices is configured to determine whether a text string or an image is present in the test result received from the master agent.

20. The non-transitory computer readable medium according to claim 19 wherein the slave agent on each one of the slave computing devices is configured to locate the text string or the image in the test result for each respective slave application to determine whether to indicate the test result as having passed when found, or having failed when not found, for the respective slave computing device.

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 Oct 12, 2018
From: WU, HAO
To: CITRIX SYSTEMS, INC.
Reel/Frame 047150/0570 →
Continuity (1)
Related Publication 20200117564A1 · Apr 16, 2020