Automated test generator
First Claim
Patent Images
1. An apparatus for automatically generating tests for an application program, comprising:
- (a) a computer; and
(b) a test generator, executed by the computer, for;
(1) representing an interface of the application program as a graph; and
(2) automatically generating a test that exercises the application program, wherein the test is generated by randomly traversing the graph.
1 Assignment
0 Petitions
Accused Products
Abstract
A test generator generates tests by randomly traversing a description of the interface of a program being tested, thereby generating tests that contain randomly selected actions and randomly generated data. When executed, these tests randomly manipulate the program being tested.
-
Citations
60 Claims
-
1. An apparatus for automatically generating tests for an application program, comprising:
-
(a) a computer; and
(b) a test generator, executed by the computer, for;
(1) representing an interface of the application program as a graph; and
(2) automatically generating a test that exercises the application program, wherein the test is generated by randomly traversing the graph. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
a statement that identifies a comment, a statement for explicitly invoking one feature from within another feature, a statement for identifying a block of programming that is selected from a group comprising;
(1) programming that invokes one or more of the functions of the application program, (2) programming that performs one or more actions on the interface of the application program, and (3) programming that supplies data to the application program, a statement for declaring a description, a statement for indicating mutually exclusive blocks, a statement for accessing a history of values selected by the test generator, a statement for identifying an independent series of blocks, a statement for traversing and evaluating a designated set of independent or mutually exclusive blocks a random number of times a statement for generating a string of randomly chosen length between one and an upper limit, a statement for storing data in a database, a statement for retrieving data from a database, a statement for storing statements in a database, a statement for storing statements in a database, and a statement for generating a string that is unique within a test.
-
-
21. A method for automatically generating tests for an application program executed by a computer, comprising:
-
(a) representing an interface of the application program as a graph;
(b) randomly traversing the graph in the memory of the computer; and
(c) automatically generating a test that exercises the application program based on the random traversal of the graph. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40)
a statement that identifies a comment, a statement for explicitly invoking one feature from within another feature, a statement for identifying a block of programming that is selected from a group comprising;
(1) programming that invokes one or more of the functions of the application program, (2) programming that performs one or more actions on the interface of the application program, and (3) programming that supplies data to the application program, a statement for declaring a description, a statement for indicating mutually exclusive blocks, a statement for accessing a history of values selected by the test generator, a statement for identifying an independent series of blocks, a statement for traversing and evaluating a designated set of independent or mutually exclusive blocks a random number of times, a statement for generating a string of randomly chosen length between one and an upper limit, a statement for storing data in a database, a statement for retrieving data from a database, a statement for storing statements in a database, a statement for storing statements in a database, and a statement for generating a string that is unique within a test.
-
-
41. A program carrier, readable by a computer, embodying one or more instructions executable by the computer to perform method steps for performing a complete, randomly ordered traversal of a cyclic directed graph, the method comprising:
-
(a) representing an interface of the application program as a cyclic directed graph;
(b) randomly traversing the graph in the memory of the computer; and
(c) automatically generating a test that exercises the application program based on the random traversal of the graph. - View Dependent Claims (42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60)
a statement that identifies a comment, a statement for explicitly invoking one feature from within another feature, a statement for identifying a block of programming that is selected from a group comprising;
(1) programming that invokes one or more of the functions of the application program, (2) programming that performs one or more actions on the interface of the application program, and (3) programming that supplies data to the application program, a statement for declaring a description, a statement for indicating mutually exclusive blocks, a statement for accessing a history of values selected by the test generator, a statement for identifying an independent series of blocks, a statement for traversing and evaluating a designated set of independent or mutually exclusive blocks a random number of times, a statement for generating a string of randomly chosen length between one and an upper limit, a statement for storing data in a database, a statement for retrieving data from a database, a statement for storing statements in a database, a statement for storing statements in a database, and a statement for generating a string that is unique within a test.
-
-
56. The method of claim 52 above, wherein the statements explicitly invoke one description from within another description.
-
57. The method of claim 52 above, wherein the statements indicate mutually exclusive blocks of programming.
-
58. The method of claim 57 above, wherein the blocks are mutually exclusive and each block includes a relative frequency with which the block should be evaluated by the test generator.
-
59. The method of claim 58 above, wherein the relative frequency is a number indicating how often the block should be selected for traversal and evaluation by the test generator.
-
60. The method of claim 58 above, wherein a probability that the block will be selected in a single selection equals the relative frequency divided by a sum of the relative frequencies of all
Specification