Patent ID: 8819494

Claim:
A computer-implemented method comprising: in response to an error encountered by a test of a program, finding the error in a rule that specifies an action from among a plurality of rules, each rule specifying a respective at least one action to be invoked in response to occurrence of a corresponding error of a plurality of errors; selecting a part in the program in response to the action; modifying the part in the program in response to the selecting and in response to the action; re-executing the test on the program that comprises part that was modified by the modifying; wherein at least one rule of said plurality of rules specifies iteratively performing the actions of: (a) selecting one or more parts in the program which have changed with respect to a prior version of the program, (b) replacing the selected one or more parts with a prior version of the one or more parts from the prior version of the program, (c) re-executing the test on the program that comprises the one or more parts that were replaced by (b), (d) determining whether the corresponding error occurs when performing (c), and (e) repeating steps (a)-(d) until a part which causes the corresponding error to occur during testing is identified; generating a problem report for output to a user; and if the error is uncharacterized, creating a new rule and a new action that specifies replacing the part that was fixed in response to the error, after the part was fixed.