Methods and systems for navigating deterministically through a graphical user interface
First Claim
1. A method for testing at least one software application, the method comprising:
- injecting a dynamic link library (DLL) into an executable code of the software application being tested;
installing at least one at least one hook function into an application programming interface (API) of an operating system, the installing performed by the DLL, the at least one hook function configured to monitor for testing operating system messages communicated with the software application during execution of the software application being tested;
retrieving information descriptive of a state of operation of the software application being tested and at least one graphics element rendered during execution of the software application being tested, wherein the information identifies an executable feature associated with the at least one graphics element, and wherein at least some of the retrieved information descriptive of the state of operation is based on messages monitored by way of the at least one hook function;
storing information related to an association between the executable feature and the at least one graphics element and the state of operation of the software application in a map data structure containing information related to at least one graphics element for testing, the association and information being stored in the map data structure during execution of the software application being tested;
automatically selecting an executable feature from the map data structure based on the association stored in the map data structure;
automatically, executing the selected executable feature associated with the graphics element; and
dynamically updating the information related to the state of operation of the software application and the association in the map data structure upon execution of the executable feature.
2 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is a mechanism for systematically invoking executable features of a software application via its graphical user interface. Also disclosed is a mechanism for generating a map that characterizes operational states of an application as it executes. An application driver selects an action to be performed by the application according to a deterministic mode such as depth-first mode or breadth-first mode. In the depth-first mode of deterministic operation, an action associated with a particular element is explored as deeply as possible, while breadth-first mode explores the application as widely as possible. For each executable feature invoked within the software application, the states encountered during execution are stored within the application map for subsequent retrieval and analysis.
-
Citations
25 Claims
-
1. A method for testing at least one software application, the method comprising:
-
injecting a dynamic link library (DLL) into an executable code of the software application being tested; installing at least one at least one hook function into an application programming interface (API) of an operating system, the installing performed by the DLL, the at least one hook function configured to monitor for testing operating system messages communicated with the software application during execution of the software application being tested; retrieving information descriptive of a state of operation of the software application being tested and at least one graphics element rendered during execution of the software application being tested, wherein the information identifies an executable feature associated with the at least one graphics element, and wherein at least some of the retrieved information descriptive of the state of operation is based on messages monitored by way of the at least one hook function; storing information related to an association between the executable feature and the at least one graphics element and the state of operation of the software application in a map data structure containing information related to at least one graphics element for testing, the association and information being stored in the map data structure during execution of the software application being tested; automatically selecting an executable feature from the map data structure based on the association stored in the map data structure; automatically, executing the selected executable feature associated with the graphics element; and dynamically updating the information related to the state of operation of the software application and the association in the map data structure upon execution of the executable feature. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system for generating a map, comprising:
-
a capture agent for retrieving information descriptive of a state of operation of a software application being tested and a plurality of graphics elements rendered during execution of the software application, the information including an executable feature associated with each graphics element, the capture agent including a dynamic link library (DLL) configured to be injected into an executable code of the software application being tested, the DLL further configured to install at least one hook function into an application programming interface (API) of an operating system, wherein the at least one hook function is configured to monitor messages communicated between the operating system and the software application during execution of the software application being tested; an application driver for storing information in a map data structure related to an association between each executable feature and corresponding graphics element and a state of operation of the software application during execution of the software application being tested, wherein the map data structure contains information related to at least one graphics element for testing; an application driver for automatically selecting one of the executable features stored in the map data structure based on the information stored in the map data structure; a command agent for automatically executing the selected executable feature; and an indicator for tracking a dynamic updating of the information related to the association and the state of operation of the software application in the map data structure upon the automatic execution of the selected executable feature. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. A method for systematically invoking an executable feature of a software application having a graphical user interface, the method comprising:
-
injecting a dynamic link library (DLL) into an executable code of the software application; installing at least one hook function into an application programming interface (API) of an operating system, the installing performed by the DLL, the at least one hook function configured to monitor operating system messages communicated with the software application during execution of the software application being tested; retrieving information descriptive of a state of operation of a software application being tested and at least one graphics element rendered during execution of the software application, the information including an executable feature associated with the at least one graphics element, at least some of the retrieved information descriptive of a state of operation of the software application retrieved by way of messages monitored by the at least one hook function; storing information related to an association between the executable feature and corresponding graphics element and the state of operation of the software application in a map data structure to contain information related to at least one graphics element for testing, the association and information being stored in the map data structure during execution of the software application; automatically selecting from the map data structure at least one executable feature associated with a graphics element that has not been previously executed; and automatically executing the selected at least one executable feature. - View Dependent Claims (20, 21, 22, 23, 24, 25)
-
Specification