Predicting software build errors

US9542176B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9542176-B2
Application numberUS-201213589180-A
CountryUS
Kind codeB2
Filing dateAug 20, 2012
Priority dateAug 20, 2012
Publication dateJan 10, 2017
Grant dateJan 10, 2017

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.

Systems and methods for predicting a software build error are described herein. In one example, a method includes detecting a plurality of changes in software. The method also includes identifying a plurality of change lists, wherein a change list is identified for each of the plurality of changes in the software. Additionally, the method includes identifying a characteristic for each change list in the plurality of change lists. Furthermore, the method includes calculating a plurality of probabilities based at least in part on the characteristic of each of the plurality of change lists, wherein each of the probabilities indicates the likelihood of one of the plurality of change lists creating the software build error. The method also includes reporting the plurality of probabilities of the software build error.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for predicting a software build error, comprising: detecting a plurality of changes in software; identifying a plurality of change lists, wherein a change list is identified for each of the plurality of changes in the software; identifying a characteristic for each change list in the plurality of change lists, the characteristic comprising a complexity metric based in part on a number of nested loops surrounding a changed line of software code; calculating a plurality of probabilities based on the characteristic of each of the plurality of change lists, wherein each of the probabilities indicates the likelihood of one of the plurality of change lists creating the software build error, the software build error preventing the software from being compiled into an executable file or preventing the software from being translated into machine executable code, and wherein the plurality of probabilities are calculated based on a plurality of coefficients, each coefficient corresponding to each characteristic of each of the plurality of change lists, the coefficients determined from historical data; reporting the plurality of probabilities of the software build error; and removing the change that resulted in the software build error from the software. 2. The method of claim 1 , comprising: building the software; detecting the software build error; determining a change from the plurality of changes in the software that resulted in the software build error; and reporting the change that resulted in the software build error. 3. The method of claim 2 , comprising updating a prediction generator used for predicting the software build error based on the change that resulted in the software build error. 4. The method of claim 1 , wherein calculating the plurality of probabilities comprises calculating a regression that indicates the likelihood that each of the plurality of probabilities is to result in the software build error. 5. The method of claim 1 , comprising: identifying a plurality of high-risk change lists based on the plurality of probabilities; sending each of the plurality of high risk change lists to a separate computing system with instructions to build the software based on the high-risk change list; and detecting the high-risk change lists that cause the software build error. 6. The method of claim 1 , wherein the plurality of characteristics comprise a combination of the complexity metric, a software developer determination, a computing system determination, a time determination, a review determination, an activity determination, a developer build determination, and a change determination, the developer build determination comprising a state of a source code repository to which a developer's computing system was synced during generation of the software and the complexity metric being based in part on a number of characters in a changed line of software code. 7. The method of claim 1 , wherein the software build error created by one of the plurality of the change lists prevents the software from being linked. 8. The method of claim 1 , comprising identifying each of the change lists as a high-risk change list or a low-risk change list; and building the high-risk change lists prior to building the low-risk change lists, the building of the high-risk change lists comprising sending the high-risk change lists to multiple computing systems to enable the high-risk change lists to be built in parallel. 9. The method of claim 1 , wherein the characteristic for each change list comprises a number of individuals that reviewed the change. 10. The method of claim 1 , comprising aggregating the characteristics for the change lists by detecting an aggregate maximum probability from the plurality of probabilities or a summation of the plurality of probabilities. 11. The method of claim 10 , comprising using a binary search or delta debugging technique to determine the change lists that cause the software build error and sending the change lists to a dialog box generated in an integrated development environment (IDE). 12. The method of claim 1 , wherein each of the plurality of changes is detected based on a plurality of comments in the software. 13. A system for predicting a software build error, comprising: a display device to display a plurality of probabilities; a processor to execute processor executable code; a storage device that stores processor executable code, wherein the processor executable code, when executed by the processor, causes the processor to: detect a plurality of changes in software; identify a plurality of change lists, wherein a change list is identified for each of the plurality of changes in the software; identify a characteristic for each change list in the plurality of change lists the characteristic comprising a complexity metric based in part on a number of nested loops surrounding a changed line of software code; identify a regression; use the regression to calculate the plurality of probabilities based on the characteristic of each of the plurality of change lists, the plurality of change lists corresponding to the changes to the software since a previous software build, wherein each of the probabilities indicates the likelihood of one of the plurality of change lists creating the software build error, the software build error preventing the software from being compiled into an executable file or preventing the software from being translated into machine executable code, and wherein the plurality of probabilities are calculated based on a plurality of coefficients, each coefficient corresponding to each characteristic of each of the plurality of change lists, the coefficients determined from historical data; calculate a combined probability of the software build error by aggregating the plurality of probabilities, the combined probability corresponding to an aggregate maximum probability, an aggregate minimum probability, an aggregate average probability, or an aggregate median probability; report the combined probability of the software build error; recommend an action to reduce the combined probability of the software build error; and remove the change that resulted in the software build error from the software. 14. The system of claim 13 , wherein the processor executable code causes the processor to: build the software; detect the software build error; determine a change from the plurality of changes in the software that resulted in the software build error; and report the change that resulted in the software build error. 15. The system of claim 14 , wherein the processor executable code causes the processor to update a prediction generator used for predicting the software build error based on the change that resulted in the software build error. 16. The system of claim 13 , wherein the processor executable code causes the processor to calculate a regression that indicates the likelihood that each of the plurality of probabilities is to result in the software build error. 17. The system of claim 13 , wherein the processor executable code causes the processor to: identify a plurality of high-risk change lists based on the plurality of probabilities; send each of the plurality of high risk change lists to a separate computing system with instructions to build the software based on the high-risk change list; and detect the high-risk change lists that cause the software build error. 18. The system of claim 13 , wherein the plurality of characteristics comprise any combinati

Assignees

Inventors

Classifications

  • G06F11/008Primary

    Reliability or availability analysis · CPC title

  • G06F8/71Primary

    Version control (security arrangements therefor G06F21/57); Configuration management · 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 US9542176B2 cover?
Systems and methods for predicting a software build error are described herein. In one example, a method includes detecting a plurality of changes in software. The method also includes identifying a plurality of change lists, wherein a change list is identified for each of the plurality of changes in the software. Additionally, the method includes identifying a characteristic for each change li…
Who is the assignee on this patent?
Bird Christian, Zimmermann Thomas, Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F11/008. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 10 2017 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).