Patent ID: 7644398

Claim:
A method for generating tests from a software artifact, each test comprising a sequence of test vectors and each test vector comprising a set of input values for inputs of the software artifact, the method comprising: identifying a set of coverage targets in the software artifact to be exercised by the tests; executing the software artifact from an initial input state of the software artifact according to a set of initial tests, and correspondingly: tracking which coverage targets are exercised during the initial tests; saving those sequences of test vectors from the initial tests that exercise at least one of the coverage targets; and saving, as a set of bridge states, one or more input states of the software artifact reached by those sequences of test vectors; attempting to reach those coverage targets not exercised by the initial tests, based on probing from one or more of the bridge states, rather than from the initial input state of the software artifact, wherein probing from a given bridge state comprises: resetting the software artifact to the bridge state; generating a probing sequence of test vectors; executing the software artifact by applying the probing sequence as inputs to the software artifact until a new input state of the software artifact is reached or until execution terminates; and if the probing exercises a coverage target not previously covered, appending the probing sequence of test vectors to the sequence of test vectors associated with reaching the bridge state; and saving as said tests the sequences of test vectors from the initial tests that exercised one or more of the coverage targets, along with any probing sequences that were appended during said probing from one or more of the bridge states.