Patent ID: 8276126

Claim:
A machine-implemented method, comprising: executing a first test on a first version of a program to obtain a first set of test results; executing, after executing the first test, a second test on a second version of the program to obtain a second set of test results, wherein the second version of the program is created after a first version of the program; detecting a potential regression by: comparing the second set of test results with the first set of test results to detect a slower execution time during the second test than during the first test; and identifying, from a plurality of portions of source code, a portion of source code having the slower execution time by: accessing historical information to determine a modification time for each of the plurality of portions of source code, wherein the modification time defines when the corresponding portion of source code is modified, analyzing the modification time of each of the plurality of portions of source code to ascertain a probability of failure for each of the plurality of portions of source code, selecting, from the plurality of portions of source code, the portion of source code having the highest probability of failure, and testing the portion of source code having the highest probability of failure to identify the portion of source code as the portion of source code having the slower execution time, wherein the portion of source code is a subset of the program, and wherein the potential regression is the slower execution time; determining, after detecting the potential regression, and using versioning information, that the portion of source code changed in a third version of the program, wherein the third version of the program is an intermediate version created between the first version and the second version; and identifying, based on the slower execution time of the portion of source code and the determining that the portion of source code changed in the third version of the program, the third version of the program as being a potential source of the potential regression.