Risk formula for erroneous software components detection

US10261870B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10261870-B2
Application numberUS-201514753606-A
CountryUS
Kind codeB2
Filing dateJun 29, 2015
Priority dateJun 29, 2015
Publication dateApr 16, 2019
Grant dateApr 16, 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 method for performing software error detection and prediction. The method includes identifying a plurality of software components in a computer software product. For each of the software components of the plurality of software components, the risk-relevant historical data pertaining to the respective software component is measured, then classified into at least a set of risk-increasing data and a set of risk-decreasing data. The set of risk-increasing data and the set of risk-decreasing data are then normalized, and a failure risk value for the respective software component is calculated by subtracting a weighted sum of the normalized values for the risk-decreasing data from a weighted sum of the normalized values for the risk-increasing data.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for performing software error detection and prediction, the method comprising: identifying, by one or more processors, a plurality of software components of a software product, in a development cycle, in a source code repository; for each software component of the plurality of software components: measuring, by one or more processors, risk-relevant historical data pertaining to the respective software component, wherein the risk-relevant historical data includes one or more changesets relating to the respective software component that identify: (i) a number of developers who have changed or modified a piece of code, and (ii) a number of owners for the respective changeset, classifying, by one or more processors, the risk-relevant historical data into at least a set of risk-increasing data and a set of risk-deceasing data, wherein when the number of owners of a respective changeset relating to the respective software component differs substantially from numbers of owners for changesets relating to other software components of the plurality of software components, the number of owners of the respective changeset relating to the respective software component is classified as risk-increasing data, normalizing, by one or more processors, values for the set of risk-increasing data and the set of risk-decreasing data, and calculating, by one or more processors, a failure risk value for the respective software component by subtracting a weighted sum of the normalized values for the risk-decreasing data from a weighted sum of the normalized values for the risk-increasing data; compiling, by one or more processors, a source code build of the software product in the source code repository, wherein the source code build includes the identified plurality of software components; and performing, by one or more processors, a software failure test on the compiled source code build of plurality of software components in the software product, wherein components with higher computed failure risk values are prioritized over components with lower computed failure risk values; and upon compiling the source code build of the software product in the source code repository, executing, by one or more processors, a static code analysis of the software product in the source code repository, wherein the static code analysis of the software product includes determining if one or more memory leaks are present in the identified plurality of software components that are determined to have higher computed failure risk values. 2. The method of claim 1 , further comprising: ordering, by one or more processors, the software components of the plurality of software components based, at least in part, on their associated failure risk values, wherein the associated failure risk values for the plurality of software components are organized from highest to lowest; and returning, by one or more processors, a map of the plurality of software components in the software product that identifies one or more high risk software components based on the calculated failure risk values. 3. The method of claim 1 , wherein the risk-relevant historical data includes the following: one or more analysis reports relating to a previous version of the respective software component; one or more owners of one or more changesets relating to the respective software component; a static code analysis of a current version of source code for the respective software component, wherein the static code analysis of the current version of source code is based on defined build schedules and checkpoints; one or more programming errors for the respective software component; and one or more hot factors for the respective software component, wherein a hot factor is a percentage value resulting from automated tests for the respective software component for a previous build. 4. The method of claim 1 , wherein normalizing the values for the set of risk-increasing data and the set of risk-decreasing data comprises: calculating the mean of the values for the respective set of risk-increasing data or risk-decreasing data; calculating the standard deviation of the values for the respective set of risk-increasing data or risk-decreasing data; and for each value in each respective set of risk-increasing data or risk-decreasing data, subtracting the respective mean from the respective value and dividing the difference by the respective standard deviation. 5. The method of claim 1 , wherein measuring the risk-relevant historical data comprises: collecting the risk-relevant historical data for a determined time range, wherein the determined time range includes a plurality of risk-relevant historical data from one or more previous versions of the software components. 6. The method of claim 1 , wherein the normalized values for risk-increasing data are positive and the normalized values for risk-decreasing data are negative. 7. A computer program product for performing software error detection and prediction, the computer program product comprising: one or more computer readable storage media and program instructions stored on the one or more computer readable storage media, the stored program instructions comprising: program instructions to identify a plurality of software components of a software product, in a development cycle, in a source code repository; program instructions to, for each software component of the plurality of software components: measure risk-relevant historical data pertaining to the respective software component, wherein the risk-relevant historical data includes one or more changesets relating to the respective software component that identify: (i) a number of developers who have changed or modified a piece of code, and (ii) a number of owners for the respective changeset, classify the risk-relevant historical data into at least a set of risk-increasing data and a set of risk-deceasing data, wherein when the number of owners of a respective changeset relating to the respective software component differs substantially from numbers of owners for changesets relating to other software components of the plurality of software components, the number of owners of the respective changeset relating to the respective software component is classified as risk-increasing data, normalize values for the set of risk-increasing data and the set of risk-decreasing data, and calculate a failure risk value for the respective software component by subtracting a weighted sum of the normalized values for the risk-decreasing data from a weighted sum of the normalized values for the risk-increasing data; program instructions to compile a source code build of the software product in the source code repository, wherein the source code build includes the identified plurality of software components; and program instructions to perform a software failure test on the compiled source code build of plurality of software components in the software product, wherein components with higher computed failure risk values are prioritized over components with lower computed failure risk values; and program instructions to, upon compiling the source code build of the software product in the source code repository, execute a static code analysis of the software product in the source code repository, wherein the static code analysis of the software product includes determining if one or more memory leaks are present in the identified plurality of software components that are determined to have higher computed failure risk values. 8. The computer program product of claim 7 , wherein the stored program instructions further comprise: program instructions to order the software components of the plurality of sof

Assignees

Inventors

Classifications

  • Test management · CPC title

  • by runtime analysis (performance monitoring G06F11/3466) · CPC title

  • using software metrics · CPC title

  • Threshold · CPC title

  • by performing operations on the source code, e.g. via a compiler · 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 US10261870B2 cover?
A method for performing software error detection and prediction. The method includes identifying a plurality of software components in a computer software product. For each of the software components of the plurality of software components, the risk-relevant historical data pertaining to the respective software component is measured, then classified into at least a set of risk-increasing data a…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F11/1479. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 16 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).