System and method for automatically testing software programs
First Claim
1. A computer based test automation system for functionally testing a software program, comprising:
- at least one test function, each configured to test and associated with a discrete functional component of the software program;
at least one user-defined test specification file containing state definitions associated with the software program, said state definitions defining which of said at least one test function the test engine must execute to advance the program from a state to a next state after each of said at least one test function is successfully completed; and
a test engine configured to perform a test procedure in accordance with said at least one test specification, said test procedure including the execution of one or more of said at least one test function.
9 Assignments
0 Petitions
Accused Products
Abstract
A test automation system for performing functional tests of a software program. The system includes a plurality of test functions each configured to test a discrete component of the software program. a user-defined test specification associated with the program provides state definitions that specify a desired test approach for each type of test procedure to be performed on the program. A test engine creates all test cases appropriate for a user-selected test type and controls the software program, applying the test functions and state definitions in accordance with the test specification. All test-specific and software program-specific data are located in the user-defined test functions and specifications while all generic test system processing resides in the test engine. The test specifications are preferably implemented in modifiable text files to maintain concurrency with an evolving software program. The test engine creates all possible permutations and combinations for performing a desired test. These test specification includes such items as the states that the software program may possess, the test functions required to transfer between one state and other possible states, information pertaining to the values that specific inputs may have, etc. During operation, the test engine generates test histories indicating the results of the test performed in accordance with one of the test specifications. The contents of the test histories include determination made by the test functions executed in accordance with an associated test specification.
-
Citations
21 Claims
-
1. A computer based test automation system for functionally testing a software program, comprising:
-
at least one test function, each configured to test and associated with a discrete functional component of the software program; at least one user-defined test specification file containing state definitions associated with the software program, said state definitions defining which of said at least one test function the test engine must execute to advance the program from a state to a next state after each of said at least one test function is successfully completed; and a test engine configured to perform a test procedure in accordance with said at least one test specification, said test procedure including the execution of one or more of said at least one test function. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer based system for functionally testing a software program, comprising:
-
a plurality of user-defined test function means for testing associated discrete portions of the software program; a plurality of test specification means for identifying functional state relationships of the software program, said specification means defining which of said plurality of test function means the test engine must execute to advance the program from a state to a next-state after each of said plurality of test function means is successfully completed; and test engine means for performing a test procedure in accordance with one of said test specification means to cause the execution of one of said plurality of test function means. - View Dependent Claims (9, 10, 11)
-
-
12. A computer based test engine for performing test procedures on a software program, said program having a plurality of states, the test engine comprising:
-
test function executor means for executing user-created test functions on discrete functional components of said program, each of said test functions being associated with one of said discrete functional components; state definition input means for accepting user-created state definitions which define which of said test functions the test engine must execute to advance the program from a state to a next state after each of said test functions are successfully completed; and test case generation means for determining, when the program is in a first state, which of said plurality of states will be said next state; wherein said test case generator means instructs said test function executor means which of said test functions to execute on the software program to advance the program from said first state to said next state. - View Dependent Claims (13, 14, 15, 21)
-
-
16. A method of testing software having a plurality of states, the method comprising the steps of:
-
a) receiving user-created test functions, each associated with and configured to test a predetermined discrete portion of the software program and to output results of said test; b) receiving user-created state definitions, each of said state definitions including a current state, a next state and an identifier of at least one of said test functions which causes a transition of the software program from a current state to a next state after each of said test functions are successfully completed; and c) executing said at least one of said test functions to cause a transition of the software program from each of said current states to each of said next states. - View Dependent Claims (17, 18, 19)
-
-
20. A computer program product comprising a computer readable medium having a computer program logic thereon for enabling a processor in a computer system to automatically perform tests on a software program, the computer system having a memory, accessible to said processor, in which is stored a test specification file containing state definitions associated with the software program, said software program having a plurality of states the product comprising:
test engine means for testing discrete portions of said software program in accordance with the test specification file, said test engine means performing a plurality of test functions on the software program, each of said test functions being associated with and testing one of said discrete portions of said software program, wherein, when each of said test functions are successfully performed, said software program transitions from a current state to a next state, wherein said test engine means determines whether said software program transitioned correctly.
Specification