Enhancing software development using bug data
US-2018276103-A1 · Sep 27, 2018 · US
US10423522B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10423522-B2 |
| Application number | US-201715485593-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 12, 2017 |
| Priority date | Apr 12, 2017 |
| Publication date | Sep 24, 2019 |
| Grant date | Sep 24, 2019 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A computer-implemented method of detecting a likely software malfunction is provided. The method comprises collecting a plurality of software error data sets wherein each software error data set comprises a proposed code section containing an error and a corrected code section containing code changes that fixed the error in the proposed code section. The method further comprises training a computer-implemented algorithmic model using the collected software error data sets to devise a software code classifier for predicting a likely error in a code section, reviewing a section of code using the software code classifier, and identifying suspicious code in the reviewed section of code as containing a suspected error using the software code classifier.
Opening claim text (preview).
What is claimed is: 1. A computer-implemented method in a software classifier that comprises one or more processors configured by programming instructions encoded on non-transient computer readable media to implement an algorithmic model that has been trained using machine learning techniques to predict suspicious code in a reviewed code section, the algorithmic model having been trained using a plurality of software error data sets, each software error data set including a proposed code section containing an error and a corrected code section containing code changes that fixed the error in the proposed code section, the method comprising: analyzing a first code section; identifying a segment of the first code section as containing suspicious code using the trained algorithmic model; submitting the identified suspicious code segment to a code checking entity to determine if the suspicious code segment contains an error; and when the code checking entity determines that the suspicious code segment does not contain an error, causing the algorithmic model to be retrained, using the suspicious code segment not containing an error, to not identify a similar code segment as containing suspicious code. 2. The method of claim 1 , further comprising causing the algorithmic model to be retrained using the suspicious code segment containing an error when the code checking entity determines that the suspicious code segment contains an error. 3. The method of claim 1 further comprising submitting proposed corrections for the suspicious code segment when the code checking entity determines that the suspicious code segment contains an error. 4. The method of claim 1 , wherein the analyzing a first code section comprises analyzing the first code section prior to submission of the first code section to a version control system. 5. The method of claim 1 , wherein the analyzing a first code section comprises invoking the software classifier from an integrated development environment (IDE) to analyze the first code section. 6. The method of claim 1 , wherein the analyzing a first code section is performed responsive to a user manually invoking the software classifier at will to analyze the first code section. 7. The method of claim 1 , wherein the algorithmic model was trained by a method comprising: learning a rule for predicting when a code section contains an error; testing the learned rule; and adjusting and retesting the rule until the model has achieved a desired accuracy goal. 8. A software development system configured to detect potentially defective software code, the system comprising: a software classifier comprising one or more processors configured by programming instructions encoded on non-transient computer readable media, the software classifier configured to implement an algorithmic model that has been trained using machine learning techniques to predict suspicious code in a reviewed code section, the algorithmic model having been trained using a plurality of software error data sets, each software error data set including a proposed code section containing an error and a corrected code section containing code changes that fixed the error in the proposed code section, the software classifier further configured to: analyze a first code section; identify a segment of the first code section as containing suspicious code using the trained algorithmic model; submit the identified suspicious code segment to a code checking entity to determine if the suspicious code segment contains an error; and when the code checking entity determines that the suspicious code segment does not contain an error, cause the algorithmic model to be retrained, using the suspicious code segment not containing an error, to not identify a similar code segment as containing suspicious code. 9. The system of claim 8 , wherein the software classifier is further configured to cause the algorithmic model to be retrained using the suspicious code segment containing an error when the code checking entity determines that the suspicious code segment contains an error. 10. The system of claim 8 , wherein the software classifier is further configured to submit proposed corrections for the suspicious code segment when the code checking entity determines that the suspicious code segment contains an error. 11. The system of claim 8 , wherein the software classifier is further configured to analyze the first code section prior to submission of the first code section to a version control system. 12. The system of claim 8 , wherein the software classifier is further configured to be invoked to analyze the first code section from an integrated development environment (IDE). 13. The system of claim 8 , wherein the algorithmic model was trained by a method comprising learning a rule for predicting when a code section contains an error; testing the learned rule; and adjusting and retesting the rule until the model has achieved a desired accuracy goal. 14. The system of claim 8 , wherein the software classifier is further configured to be manually invoked to analyze the first code section at will by a user. 15. A non-transitory computer readable storage medium embodying programming instructions configurable to cause a software classifier that comprises one or more processors configured by the programming instructions to perform a method, the software classifier configured to implement an algorithmic model that has been trained using machine learning techniques to predict suspicious code in a reviewed code section, the algorithmic model having been trained using a plurality of software error data sets, each software error data set including a proposed code section containing an error and a corrected code section containing code changes that fixed the error in the proposed code section, the method comprising: analyzing a first code section; identifying a segment of the first code section as containing suspicious code using the trained algorithmic model; submitting the identified suspicious code segment to a code checking entity to determine if the suspicious code segment contains an error; and when the code checking entity determines that the suspicious code segment does not contain an error, causing the algorithmic model to be retrained, using the suspicious code segment not containing an error, to not identify a similar code segment as containing suspicious code. 16. The non-transient computer readable media of claim 15 wherein the method further comprises causing the algorithmic model to be retrained using the suspicious code segment containing an error when the code checking entity determines that the suspicious code segment contains an error. 17. The non-transient computer readable media of claim 15 , wherein the method further comprises submitting proposed corrections for the suspicious code segment when the code checking entity determines that the suspicious code segment contains an error. 18. The non-transient computer readable media of claim 15 , wherein the analyzing a first code section comprises analyzing the first code section prior to submission of the first code section to a version control system. 19. The non-transient computer readable media of claim 15 , wherein the analyzing a first code section comprises invoking the software classifier from an integrated development environment (IDE) to analyze the first code section. 20. The non-transient computer readable media of claim 15 , wherein the analyzing a first code section is performed resp
Extracting rules from data · CPC title
Reliability or availability analysis · CPC title
Machine learning · CPC title
Debugging of software · CPC title
Analysis of software for verifying properties of programs (testing of software G06F11/3668) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.