Patent ID: 7752502

Claim:
A method for testing a computer program on a computer system modeled according to a state table, the state table comprising a plurality of distinct actions and each of the actions corresponds to a test program for performing the action, the method comprising: selecting an action from a set of valid actions capable of being performed in a current state of the computer system; executing a test program that corresponds to the selected action; determining a state of the computer system after the test program that corresponds to the selected action has executed; comparing the determined state to a target state indicated in the state table as resulting from the selected action being performed on the previous current state; and upon determining that the target state and the determined state are different, dynamically allocating weightings to the actions in the state table to create a weighted set, the weightings to the actions in the state table being allocated to increase a relative probability of a subsequent test selecting the selected action; and continuing testing by selecting a next action, by random selection using the weighted set, corresponding to the determined state of the system and executing a test program that corresponds to the selected next action.