IP Library Granted Patent US 8,997,053
Granted Patent B2
US 8,997,053 · App. 13/006,759 · Granted Mar 31, 2015

System and method for automated testing of software applications with dynamic user interfaces spanning multiple technologies

Inventor: Andres Matias Yanes (Dallas, TX)
Assignee: Worksoft, Inc.
G06F11/3664G06F8/35G06F8/38
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 8,997,053
App. No.
13/006,759
Granted
Mar 31, 2015
Kind
B2
Abstract

The present disclosure provides a system, method and computer program product that uses abstraction to enable the definition, development and maintenance of testing libraries for both simple and complex user interface controls. The system and method hide the granular details from the test designer while still promoting reuse. Using the system and method, designers can define a library of functionality for common controls that map 1-to-1 with visual controls, which may be re-implemented across many APIs or programming languages.

Claims (43)

1. A method of testing a running application from a viewpoint of a user of a graphical user interface of the running application, comprising:

generating, using a programmed processor, generic user interface control hierarchies implementing a common user interface for emulating user interactions occurring external to the running application between the user and the graphical user interface within an abstraction layer, each of the generic user interface control hierarchies providing a technology-independent representation of graphical visual controls of the graphical user interface of the running application to emulate the user interactions with the graphical user interface occurring external to the running application and parent-child relationships between each of the graphical elements of the graphical user interface of the running application;

storing, using the programmed processor, user defined test libraries and implementation objects for use in creating the generic user interface control hierarchies within a meta layer, each of the implementation objects defining the technology-independent representation of graphical visual controls of the graphical user interface of the running application to emulate the user interactions with the graphical user interface occurring external to the running application and their associated functionality, each implementation object being defined by an interface that acts as a creation prototype, the implementation object defined by:

selecting collection meta objects comprising a reusable algorithm that takes as input at least one control hierarchy instance determined by the implementation object's identity meta object and returns specialized collections of nested controls;

selecting at least one identity meta object containing an algorithm for identifying if the at least one control hierarchy instance is considered a match for the implementation object;

selecting read only property collections as defined by the interface, wherein the read only property collections that take as input the at least one control hierarchy instance determined by the implementation object's identity meta object and return a value;

selecting read only action collections as defined by the interface, wherein the read only action collections take as input the at least one control hierarchy instance determined by the implementation object's identity meta object and define emulated user interaction;

creating, using the programmed processor, a technology-independent control hierarchy of the graphical user interface of the running application to emulate the user interactions with the graphical user interface occurring external to the running application within an application layer, the technology-independent control hierarchy of the graphical user interface of the running application based upon the generic user interface control hierarchies to emulate the user interactions with the graphical user interface occurring external to the running application from the abstraction layer and the user defined implementation objects from the meta layer.

2. The method of claim 1 , further comprising creating connectivity interfaces for the system through a connectivity layer.

3. The method of claim 1 , further comprising permitting one or more of the abstraction layer, the meta layer, and the application layer to report to the system through a logging service.

4. The method of claim 1 , further comprising defining and providing a persistence application programming interface to one or more of the abstraction layer, the meta layer, and the application layer.

5. The method of claim 1 , further comprising transforming references created for a specific application and specific technology into equivalent references for the specific application in a different technology.

6. The method of claim 1 , further comprising utilizing a multi-machine configuration to perform the steps of generating the user interface hierarchies, defining the user defined implementation objects, and creating the technology-independent control hierarchy representation graphical elements of the graphical user interface of the running application.

7. An automated software testing system for testing a running application from a viewpoint of a user of a graphical user interface of the running application, comprising:

a programmed processor;

an abstraction layer executed by the programmed processor, the abstraction layer generating generic user interface control hierarchies implementing a common user interface for emulating user interactions occurring external to the running application between the user and the graphical user interface, each of the generic user interface control hierarchies providing a technology-independent representation of graphical visual controls of the graphical user interface of the running application to emulate the user interactions with the graphical user interface occurring external to the running application and parent-child relationships between each of the graphical visual controls of the graphical user interface of the running application;

a meta layer executed by the programmed processor, the meta layer including user defined test libraries and implementation objects for use in creating the generic user interface control hierarchies, each of the implementation objects defining the technology-independent representation of graphical visual controls of the graphical user interface of the running application to emulate the user interactions with the graphical user interface occurring external to the running application and their associated functionality, each implementation object being defined by an interface that acts as a creation prototype, the implementation object comprising:

collection meta objects comprising a reusable algorithm that takes as input at least one control hierarchy instance determined by the implementation object's identity meta object and returns specialized collections of nested controls;

at least one identity meta object containing an algorithm for identifying if the at least one control hierarchy instance is considered a match for the implementation object;

read only property collections as defined by the interface, wherein the read only property collections that take as input the at least one control hierarchy instance determined by the implementation object's identity meta object and return a value;

read only action collections as defined by the interface, wherein the read only action collections take as input the at least one control hierarchy instance determined by the implementation object's identity meta object and define emulated user interaction;

an application layer executed by the programmed processor, the application layer using the generic user interface control hierarchies implementing a common user interface for emulating user interaction occurring external to the running application with the graphical user interface from the abstraction layer and the user defined implementation objects from the meta layer to create a technology-independent control hierarchy of the graphical user interface of the running application to emulate the user interactions with the graphical user interface occurring external to the running application.

8. The system of claim 7 , wherein the system further comprises a connectivity layer, the connectivity layer creating connectivity interfaces for the system.

9. The system of claim 7 , wherein the system further comprises a logging service, the logging service permitting one or more of the abstraction layer, the meta layer, and the application layer to report to the system.

10. The system of claim 7 , wherein the system further comprises a persistence service, the persistence service defining and providing a persistence application programming interface to one or more of the abstraction layer, the meta layer, and the application layer.

11. The system of claim 7 , wherein the application layer further comprises a transformation engine, the transformation engine transforming references created for a specific application and specific technology into equivalent references for the specific application in a different technology.

12. The system of claim 7 , wherein the technology-independent representation of graphical elements of the graphical user interface of the running application and the parent-child relationships between the graphical elements of the graphical user interface of the running application comprise a view.

13. The system of claim 7 , wherein the member graphical elements of the graphical user interface of the running application are comprised of an identity and at least one of an action and a property.

14. The system of claim 7 , wherein the abstraction layer, the meta layer, and the application layer of the system are distributed between two or more computers, within a multi-machine configuration.

15. The system of claim 7 , wherein the user defined test libraries and implementation objects are created from compiled functions within the meta layer.

16. A non-transitory, computer readable medium including instructions which, when executed by a programmed processor, implement an automated software testing process for testing a running application from a viewpoint of a user of a graphical user interface of the running application comprising:

generating, using the programmed processor, generic user interface control hierarchies implementing a common user interface for emulating user interactions occurring external to the running application between the user and the graphical user interface using an abstraction layer, each of the generic user interface control hierarchies providing a technology-independent representation of graphical visual controls graphical elements of the graphical user interface of the running application to emulate the user interactions with the graphical user interface occurring external to the running application and parent-child relationships between each of the graphical visual controls of the graphical user interface of the running application;

holding user definable test libraries and generating, using the programmed processor, implementation objects for use in creating the generic user interface control hierarchies using a meta layer, each of the implementation objects providing a technology-independent representation of member graphical elements of the graphical user interface of the running application to emulate the user interactions with the graphical user interface occurring external to the running application and their associated functionality, each implementation object being generated by an interface that acts as a creation prototype, the implementation object defined by:

selecting collection meta objects comprising a reusable algorithm that takes as input at least one control hierarchy instance determined by the implementation object's identity meta object and returns specialized collections of nested controls;

selecting at least one identity meta object containing an algorithm for identifying if the at least one control hierarchy instance is considered a match for the implementation object;

selecting read only property collections as defined by the interface, wherein the read only property collections that take as input the at least one a control hierarchy instance determined by the implementation object's identity meta object and return a value;

selecting read only action collections as defined by the interface, wherein the read only action collections take as input the at least one control hierarchy instance determined by the implementation object's identity meta object and define emulated user interaction;

creating, using the programmed processor, a technology-independent control hierarchy hierarchical representation of the graphical elements of the graphical user interface of the running application to emulate the user interactions with the graphical user interface occurring external to the running application using the control hierarchies implementing a common user interface for emulating user interaction occurring external to the running application with the graphical user interface from the abstraction layer and the implementation objects from the meta layer.

17. The computer readable medium of claim 16 , further comprising creating connectivity interfaces for the system through a connectivity layer.

18. The computer readable medium of claim 16 , further comprising permitting one or more of the abstraction layer, the meta layer, and the application layer to report to the system through a logging service.

19. The computer readable medium of claim 16 , further comprising defining and providing a persistence application programming interface to one or more of the abstraction layer, the meta layer, and the application layer through a persistence service.

20. The computer readable medium of claim 16 , further comprising transforming references created for a specific application and specific technology into equivalent references for the specific application in a different technology through a transformation engine.

21. The computer readable medium of claim 16 , further comprising utilizing a multi-machine configuration to perform the steps of generating the user interface hierarchies, defining the user defined implementation objects, and creating the technology-independent control hierarchy representation graphical elements of the graphical user interface of the running application.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE RECEIVING PARTY NAME PREVIOUSLY RECORDED AT REEL: 060426 FRAME: 0652. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Oct 25, 2022
From: WORKSOFT MIDCO, LLC; WORKSOFT, INC.; TRIPOD TECHNOLOGIES LLC; EUREQA, LLC
To: TORONTO DOMINION (TEXAS) LLC
Reel/Frame 062226/0767 →
RELEASE OF SECURITY INTEREST Recorded Jul 22, 2022
From: VARAGON CAPITAL PARTNERS AGENT, LLC
To: WORKSOFT, INC.
Reel/Frame 060594/0728 →
SECURITY INTEREST Recorded Jul 1, 2022
From: WORKSOFT MIDCO, LLC; WORKSOFT, INC.; TRIPOD TECHNOLOGIES LLC; EUREQA, LLC
To: TORONTO DOMINION {TEXAS) LLC
Reel/Frame 060426/0652 →
RELEASE OF SECURITY INTEREST Recorded Feb 25, 2019
From: PACIFIC WESTERN BANK (AS SUCCESSOR IN INTEREST BY MERGER TO SQUARE 1 BANK)
To: WORKSOFT, INC.
Reel/Frame 048424/0476 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 22, 2019
From: WORKSOFT, INC.
To: VARAGON CAPITAL PARTNERS AGENT, LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 048415/0281 →
SECURITY INTEREST Recorded May 28, 2014
From: WORKSOFT, INC.
To: SQUARE 1 BANK
Reel/Frame 033036/0217 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 6, 2013
From: YANES, ANDRES MATIAS
To: WORKSOFT, INC.
Reel/Frame 030949/0884 →
Continuity (2)
Provisional Application 61295042 · Jan 14, 2010
Related Publication 20110173590A1 · Jul 14, 2011