System and method for detecting an error in software

US10423522B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10423522-B2
Application numberUS-201715485593-A
CountryUS
Kind codeB2
Filing dateApr 12, 2017
Priority dateApr 12, 2017
Publication dateSep 24, 2019
Grant dateSep 24, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • Extracting rules from data · CPC title

  • Reliability or availability analysis · CPC title

  • G06N20/00Primary

    Machine learning · CPC title

  • Debugging of software · CPC title

  • Analysis of software for verifying properties of programs (testing of software G06F11/3668) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10423522B2 cover?
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 comp…
Who is the assignee on this patent?
Salesforce Com Inc
What technology area does this patent fall under?
Primary CPC classification G06N20/00. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 24 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).