Enhancing software development using bug data
First Claim
1. A system, comprising:
- a memory;
a processor connected to the memory, the processor configured to;
receive current code, the current code comprising buggy code;
find historical code comprising correct code relevant to the current code in a historical bug dataset comprising original buggy code and corresponding correct code, the historical code created by retaining training and testing datasets created for a machine learning system trained to distinguish between buggy and bug-free source code by learning the characteristics of buggy code;
display pairs of original buggy code and corresponding correct code and a degree of risk value of replacing the original buggy code with the corresponding correct code for each pair in a software development environment; and
when the risk value is less than a threshold amount, automatically correct the buggy code by replacing the buggy code with the corresponding correct code.
1 Assignment
0 Petitions
Accused Products
Abstract
For each detected bug, historical code with similar characteristics and bug corrections from a historical bug dataset can be displayed in a source code editor. Relevant training and/or testing data can be found by comparing an internal representation of the code under development with an internal representation of the original buggy code in the historical bug dataset. Training and/or testing data that is relevant to the current code can be distinguished from irrelevant training and/or testing data by determining that the code syntax tokens from the current and historical data overlap to at least a specified percentage. Code can be devolved into a set of metrics. The degree of overlap between the metric sets can be determined. If a computed risk factor for the bug correction meets or exceeds a specified threshold, the bug correction can be automatically applied. Additional testing can be automatically performed on and/or added to the corrected code.
-
Citations
17 Claims
-
1. A system, comprising:
-
a memory; a processor connected to the memory, the processor configured to; receive current code, the current code comprising buggy code; find historical code comprising correct code relevant to the current code in a historical bug dataset comprising original buggy code and corresponding correct code, the historical code created by retaining training and testing datasets created for a machine learning system trained to distinguish between buggy and bug-free source code by learning the characteristics of buggy code; display pairs of original buggy code and corresponding correct code and a degree of risk value of replacing the original buggy code with the corresponding correct code for each pair in a software development environment; and when the risk value is less than a threshold amount, automatically correct the buggy code by replacing the buggy code with the corresponding correct code. - View Dependent Claims (2, 3, 4)
-
-
5. A method comprising:
-
receiving by a processor; current code comprising buggy code; finding historical bug data comprising correct code relevant to the buggy code in a historical bug dataset comprising original buggy code and corresponding correct code, the historical code created by retaining training and testing datasets created for a machine learning system trained to distinguish between buggy and bug-free source code by learning the characteristics of buggy code; displaying pairs of original buggy code and corresponding correct code and a degree of risk value of replacing the original buggy code with the corresponding correct code for each pair in a software development environment; and when the risk value is less than a threshold amount, automatically correcting the buggy code by replacing the buggy code with the corresponding correct code. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A device comprising:
-
a memory; a processor, the processor configured to; receive buggy code; find historical code comprising correct code relevant to the buggy code in a historical bug dataset comprising original buggy code and corresponding correct code, the historical code created by retaining training and testing datasets created for a machine learning system trained to distinguish between buggy and bug-free source code by learning the characteristics of buggy code; display pairs of original buggy code and corresponding correct code and a degree of risk value of replacing the original buggy code with the corresponding correct code for each pair in a software development environment; and when the risk value is less than a threshold amount, automatically correct the buggy code by replacing the buggy code with the corresponding correct code. - View Dependent Claims (17)
-
Specification