Semi-automatic conversion and execution of functional manual tests
AssigneeInternational Business Machines Corporation
InventorsTessa A. Lau, Jalal U. Mahmud, Pablo Pedemonte
Life of this patent
Estimating the term…
Loading patent…
AssigneeInternational Business Machines Corporation
InventorsTessa A. Lau, Jalal U. Mahmud, Pablo Pedemonte
Estimating the term…
Embodiments of the invention relate to the conversion and execution of functional tests. In one embodiment, a current test step of a manual functional test is executed. The test includes a set of test steps each including at least one action and one target of the action. The test is associated with an application that includes a plurality of objects to be tested. At least two of the objects are determined to be associated with the target of the test step. A user is prompted to provide a selection of one of the at least objects for association with the target of the test step. A new test step is generated. The new test step associates the object selected by the user with the target of the current test step. The new test step is designated for automatic execution in place of the current test step for subsequent executions thereof.
A system comprising:
A computer program product comprising:
Dependencies are inferred from the claim text.
From the US filing history. Foreign family members aren’t listed.
Drawings are temporarily unavailable. Open the PDF at USPTO
Test management: for test execution, e.g. scheduling of test suites
Test management: for test design, e.g. generating new test cases
Computing and data processing
About 6 years 3 months of term left · ends 26 Jan 2033 (estimated)
The present invention generally relates to application testing, and more particularly relates to the conversion and execution of functional tests.
Testing of applications can be an expensive task whose effectiveness is crucial to a project's success. One type of test for testing an application is a functional test. Functional tests verify that a system complies with its specifications and requirements, ignoring internal details such as code, design, or architecture. Currently, functional testing is generally performed manually. For example, system functionality is verified by human testers, following hand-written instructions detailing how to feed a system with some input, and the expected outputs. This situation is particularly problematic for large, long-lived projects, which might carry hundreds of legacy functional tests. Periodically executing such tests by manual means can take a considerable amount of time and resources.
In one embodiment a method is disclosed. The method comprises executing a current test step of a functional test. The functional test comprises a set of test steps, where each of the test steps comprises at least one action and one target of the action. The functional test is associated with an application comprising a plurality of objects to be tested. At least two of the objects in the plurality of objects are determined to be associated with a target of the current test step. A user is prompted to provide a selection of one of the at least two objects for association with the target of the current test step. A new test step corresponding to the current test step being executed is generated based on a selection by the user of one of the at least two objects. The new test step associates the object selected by the user with the target of the current test step. The new test step is designated for automatic execution in place of the current test step for subsequent executions of the current test step.
The accompanying figures where like reference numerals refer to identical or functionally similar elements throughout the separate views, and which together with the detailed description below are incorporated in and form part of the specification, serve to further illustrate various embodiments and to explain various principles and advantages all in accordance with the present invention, in which:
FIG. 1 is a block diagram illustrating one example of an operating environment according to one embodiment of the present invention;
FIG. 2 is an operational flow diagram showing an overall process of a manual functional test automation process according to one embodiment of the present invention;
FIG. 1 shows one example of an operating environment 100 applicable to various embodiments of the present invention. As shown, one or more user systems 102 are communicatively coupled to one or more networks 104. Additionally, one or more server systems 106 are communicatively coupled to the network(s) 104 as well. The network(s) 104, in this embodiment, is a wide area network, local area network, wired network, wireless network, and/or the like. The server system 106 comprises a functional test automation manager 108 that at least performs semi-automatic conversion and execution of manual functional tests 110 defined by users. Functional tests are tests comprising test cases based on the specifications of the software component under test. Functional tests verify that a system complies with its specifications and requirements while disregarding internal details such as code, design, or architecture. Manual functional tests are functional tests comprising steps that are manually performed by a human.
The test automation manager 108, in this embodiment, comprises a test converter 112, a test interpreter 114, and a disambiguation manager 116. Each of these components is discussed in greater detail below. Users of the user systems 102 interact with the server system 106 via an interface 118 or programmatically via an API(s). The users are able to submit one or more manual functional tests 110 to the server system 106 and interact with the functional test automation manager 108 via the user interface 118 and/or API(s). For example, the user can receive messages, prompts, queries, notifications, etc. from the functional test automation manager 108. It should be noted that although FIG. 1 shows the functional test automation manager 108 being stored on a system 106 that is separate from the user system 102, the functional test automation manager 108 can also reside at the user system 102 as well.
In one embodiment, the test automation manager 108 automates a manual functional test 110 using a multi-stage process. One stage of this process converts a manual functional test into an intermediate representation that is amenable for automated execution. Another stage interprets the intermediate representation with user guidance when needed. The test automation manager 108 processes a manual functional test 110 step by step, converting, and interpreting each step in turn. One problem with understanding natural language is that it is imprecise, so the meaning of a hand-written instruction might not be unambiguously determined. Therefore, while executing a test 110 if the test automation manager 108 identifies an instruction whose meaning cannot be precisely determined the test automation manager 108 queries/prompts the user for guidance. In this situation the test automation manager 108 queries the user on how to proceed. The process of prompting a user can be referred to as a disambiguation process and is performed by the disambiguation manager 116 of the test automation manager 108. The test automation manager 108 utilizes the feedback received from a user to create a modified manual test 111 that can be executed automatically and that is based on the original test. This modified (new test) does not require any assistance from the user to be executed. It should be noted the term “executing” with respect to functional testing refers to executing software targets/objects of an application that are to be tested following step by step test instructions. One non-limiting example of software targets/objects are GUI elements of an application. Such test execution can be manual or automated (with the help of an automated tool).