IP Library Granted Patent US 11,086,761
Granted Patent B2
US 11,086,761 · App. 15/463,071 · Granted Aug 10, 2021

Defect prediction operation

Inventors: Ahmedali Durga (Vadodara, IN); Saket Gurukar (Yavatmal, IN)
G06F11/3668G06F11/008G06F11/3604G06F11/3616G06N20/00G06N20/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,086,761
App. No.
15/463,071
Granted
Aug 10, 2021
Kind
B2
Abstract

A system, method, and computer-readable medium are disclosed for predicting a defect within a computer program comprising: accessing a code base of the computer program, the code base of the computer program comprising a plurality of computer program files; training the defect prediction system, the training including performing a historical analysis of defect occurrence patterns in the code base of the computer program; analyzing a commit of the computer program to identify a likelihood of defect occurrence within each of the plurality of files of the computer program; and, calculating a defect prediction metric for each of the plurality of files of the computer program, the defect prediction metric providing an objective measure of defect prediction for each of the plurality of files of the computer program.

Claims (97)

1. A computer-implementable method for predicting a defect within a computer program and applying a defect prediction, the method comprising:

accessing a code base of the computer program, the code base of the computer program comprising a plurality of computer program files;

training a defect prediction system, the training including performing a historical analysis of defect occurrence patterns in the code base of the computer program;

analyzing a commit of the computer program to identify a risk value representing a likelihood of defect occurrence within each of the plurality of computer program files;

calculating a defect prediction metric for each of the plurality of computer program files, the defect prediction metric providing an objective measure of defect prediction for each of the plurality of computer program files, wherein calculating the defect prediction metric comprises:

correlating the risk value with a time at which the defect occurrence is likely to appear with an exponential decay function to generate the defect prediction metric, wherein the risk value is a value within a range of risk values, a low risk value is at least 10 times lower than a high risk value, each of the risk values is calculated using the decay function and based on a commit time of each computer program, each of the risk values is linked to one of a set of particular times of a next defect of the computer program associated with the risk value, and the linkage of each of the risk values to the particular times correlates to the decay function; and

providing the defect prediction metric for use in mitigating risk associated with the defect predictions for the computer program.

2. The method of claim 1 , further comprising:

preparing the defect prediction system to perform a defect prediction operation to predict the defect within the computer program, the preparing constructs a commit history of the computer program.

3. The method of claim 1 , wherein:

verifying the defect prediction metric for each of the plurality of computer program files, comprising:

accessing information from a plurality of previous commits of the computer program and comparing this information to the defect prediction metric for each of the plurality of computer program files to determine an accuracy of the defect prediction metric; and

using the accuracy to further train the defect prediction system.

4. The method of claim 1 , wherein:

the defect prediction metric defect prediction includes a metric which provides an indication of a predicted interval in which the next defect occurrence can be expected.

5. The method of claim 4 , wherein:

the indication of the predicted interval in which the next defect occurrence can be expected represents a number of days before a given one or more of the computer program files can expect to have a defect reported.

6. The method of claim 1 , further comprising:

presenting the defect prediction metric for each of the plurality of computer program files to a user via a defect prediction user interface, the defect prediction user interface presenting the defect prediction metrics via a defect prediction dashboard, the defect prediction dashboard presenting information regarding the computer program files at the greatest risk for defect occurrence.

7. The method of claim 1 , wherein the exponential function comprises:

Risk Value=100*Σ c=1 n 1/(1+ e (−12t c +12) )

wherein:

“n” represents a number of bug-fix commits for a particular repository;

tc is a normalized timestamp of a cth commit (t=0 for an earliest commit and t=1 for a latest commit); and

100 is a convenience factor.

8. The method of claim 1 , wherein the exponential function comprises a Risk Values that comprises a function of

Σ c=1 n 1/(1+ e (−Xt c +X))

wherein:

“n” represents a number of bug-fix commits for a particular repository;

tc is a normalized timestamp of a cth commit (t=0 for an earliest commit and t=1 for a latest commit); and

X is a decay factor.

9. A system comprising:

a processor;

a data bus coupled to the processor; and

a non-transitory, computer-readable storage medium embodying computer program code,

the non-transitory, computer-readable storage medium being coupled to the data bus, the computer program code interacting with a plurality of computer operations and comprising instructions executable by the processor and configured for:

accessing a code base of a computer program, the code base of the computer program comprising a plurality of computer program files;

training a defect prediction system, the training including performing a historical analysis of defect occurrence patterns in the code base of the computer program;

analyzing a commit of the computer program to identify a likelihood of defect occurrence within each of the plurality of computer program files; and

calculating a defect prediction metric for each of the plurality of computer program files, the defect prediction metric providing an objective measure of defect prediction for each of the plurality of computer program files, wherein calculating the defect prediction metric comprises:

correlating the risk value with a time at which the defect occurrence is likely to appear with an exponential decay function to generate the defect prediction metric, wherein the risk value is a value within a range of risk values, a low risk value is at least 10 times lower than a high risk value, each of the risk values is calculated using the decay function and based on a commit time of each computer program, each of the risk values is linked to one of a set of particular times of a next defect of the computer program associated with the risk value, and the linkage of each of the risk values to the particular times correlates to the decay function; and

providing the defect prediction metric for use in mitigating risk associated with the defect predictions for the computer program.

10. The system of claim 9 , wherein the instructions are further configured for:

preparing the defect prediction system to perform a defect prediction operation to predict the defect within the computer program, the preparing constructs a commit history of the computer program.

11. The system of claim 9 , wherein the instructions are further configured for:

verifying the defect prediction metric for each of the plurality of computer program files, comprising:

accessing information from a plurality of previous commits of the computer program and comparing this information to the defect prediction metric for each of the plurality of computer program files to determine an accuracy of the defect prediction metric; and

using the accuracy to further train the defect prediction system.

12. The system of claim 9 , wherein:

the defect prediction metric defect prediction includes a metric which provides an indication of a predicted interval in which the next defect occurrence can be expected.

13. The system of claim 12 , wherein:

the indication of the predicted interval in which the next defect occurrence can be expected represents a number of days before a given one or more of the computer program files can expect to have a defect reported.

14. The system of claim 9 , wherein the instructions are further configured for:

presenting the defect prediction metric for each of the plurality of computer program files to a user via a defect prediction user interface, the defect prediction user interface presenting the defect prediction metrics via a defect prediction dashboard, the defect prediction dashboard presenting information regarding the computer program files at the greatest risk for defect occurrence.

15. The system of claim 9 , wherein the exponential function comprises:

Risk Value=100*Σ c=1 n 1/(1+ e (−12t c +12) )

wherein:

“n” represents a number of bug-fix commits for a particular repository;

tc is a normalized timestamp of a cth commit (t=0 for an earliest commit and t=1 for a latest commit); and

100 is a convenience factor.

16. The system of claim 9 , wherein the exponential function comprises a Risk Values that comprises a function of

Σ c=1 n 1/(1+ e (−Xt c +X) )

wherein:

“n” represents a number of bug-fix commits for a particular repository;

tc is a normalized timestamp of a cth commit (t=0 for an earliest commit and t=1 for a latest commit); and

X is a decay factor.

17. A non-transitory, computer-readable storage medium embodying computer program code, the computer program code comprising computer executable instructions configured for:

accessing a code base of a computer program, the code base of the computer program comprising a plurality of computer program files;

training a defect prediction system, the training including performing a historical analysis of defect occurrence patterns in the code base of the computer program;

analyzing a commit of the computer program to identify a likelihood of defect occurrence within each of the plurality of computer program files; and

calculating a defect prediction metric for each of the plurality of computer program files, the defect prediction metric providing an objective measure of defect prediction for each of the plurality of computer program files, wherein calculating the defect prediction metric comprises:

correlating the risk value with a time at which the defect occurrence is likely to appear with an exponential decay function to generate the defect prediction metric, wherein the risk value is a value within a range of risk values, a low risk value is at least 10 times lower than a high risk value, each of the risk values is calculated using the decay function and based on a commit time of each computer program, each of the risk values is linked to one of a set of particular times of a next defect of the computer program associated with the risk value, and the linkage of each of the risk values to the particular times correlates to the decay function; and

providing the defect prediction metric for use in mitigating risk associated with the defect predictions for the computer program.

18. The non-transitory, computer-readable storage medium of claim 17 , wherein the instructions are further configured for:

preparing the defect prediction system to perform a defect prediction operation to predict the defect within the computer program, the preparing constructs a commit history of the computer program.

19. The non-transitory, computer-readable storage medium of claim 17 , wherein the instructions are further configured for:

verifying the defect prediction metric for each of the plurality of computer program files, comprising:

the verifying accessing information from a plurality of previous commits of the computer program and comparing this information to the defect prediction metric for each of the plurality of computer program files to determine an accuracy of the defect prediction metric; and

using the accuracy to further train the defect prediction system.

20. The non-transitory, computer-readable storage medium of claim 17 , wherein:

the defect prediction metric defect prediction includes a metric which provides an indication of a predicted interval in which the next defect occurrence can be expected.

21. The non-transitory, computer-readable storage medium of claim 20 , wherein:

the indication of the predicted interval in which the next defect occurrence can be expected represents a number of days before a given one or more of the computer program files can expect to have a defect reported.

22. The non-transitory, computer-readable storage medium of claim 17 , wherein the instructions are further configured for:

presenting the defect prediction metric for each of the plurality of computer program files to a user via a defect prediction user interface, the defect prediction user interface presenting the defect prediction metrics via a defect prediction dashboard, the defect prediction dashboard presenting information regarding the computer program files at the greatest risk for defect occurrence.

23. The non-transitory, computer-readable storage medium of claim 17 , wherein the exponential function comprises:

Risk Value=100*Σ c=1 n 1/(1+ e (−12t c +12) )

wherein:

“n” represents a number of bug-fix commits for a particular repository;

tc is a normalized timestamp of a cth commit (t=0 for an earliest commit and t=1 for a latest commit); and

100 is a convenience factor.

24. The non-transitory, computer-readable storage medium of claim 17 , wherein the exponential function comprises a Risk Values that comprises a function of

Σ c=1 n 1/(1+ e (−Xt c +X) )

wherein:

“n” represents a number of bug-fix commits for a particular repository;

tc is a normalized timestamp of a cth commit (t=0 for an earliest commit and t=1 for a latest commit); and

X is a decay factor.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2020
From: DEVFACTORY FZ-LLC
To: GTEAM FZ-LLC
Reel/Frame 051634/0970 →
CHANGE OF NAME Recorded Jan 27, 2020
From: GTEAM FZ-LLC
To: DEVFACTORY INNOVATIONS FZ-LLC
Reel/Frame 051713/0369 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2017
From: DURGA, AHMEDALI; GURUKAR, SAKET
To: DEVFACTORY FZ-LLC
Reel/Frame 041652/0887 →
Continuity (1)
Related Publication 20180267886A1 · Sep 20, 2018