# US 2021/0342146 A1 · Software defect prediction model

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2021/0342146 A1
- Document ID: US20210342146A1
- Status: Published application
- Kind: A1
- Application number: 16/863,221
- Filed: 2020-04-30
- Published: 2021-11-04
- Earliest claimed: 2020-04-30
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Oleksiy Ignatyev; Mihir Bharatkumar Shah
- Web page: https://patentgrep.com/patent/US20210342146A1

## CPC

- G06F 8/77: Software metrics
- G06F 8/60: Software deployment
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 11/004: {Error avoidance (G06F11/07 and subgroups take precedence)}
- G06N 20/00: Machine learning
- G06F 11/1433: {during software upgrading}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

A defect level for a software application may be predicted by training a model using aspects of development processes from previous software applications as training data. Aspects of previous software development processes may be aggregated to form signal vectors for each deployed application. Defect scores calculated from actual defects in the deployed software applications may be paired with the corresponding development signal vectors. The signal vectors and calculated defect scores may act as training data and labels for a predictive model that uses lasso regression to generate a predicted defect score during the development process. A signal vector for a current development process may be updated in real time as the software is developed to update a predicted defect score and provide a subset of aspects in the signal vector that contribute most to the score such that actions may be taken to improve the score.

## Claims

### Claim 1

A non-transitory computer-readable medium comprising instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
receiving a plurality of defect indicators associated with a deployment of a first software application;
calculating a defect score for the deployment of the first software application using the plurality of defect indicators;
accessing a signal vector associated with a development process of the first software application; and
using the defect score as a label and the signal vector as an input data set to train a predictive model for the first software application.

### Claim 2 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the operations further comprise:
accessing a plurality of defect scores for deployments of a plurality of software applications;
accessing a plurality of signal vectors associated with development processes of the plurality of software application; and
using the plurality of defect scores as labels and the plurality of signal vectors as an input data sets to train the predictive model.

### Claim 3 (depends on 2)

The non-transitory computer-readable medium of claim 2, wherein the plurality of software applications comprise different release versions of a same software application.

### Claim 4 (depends on 2)

The non-transitory computer-readable medium of claim 2, wherein the plurality of software applications comprise different software applications with similar development processes.

### Claim 5 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the operations further comprise:
receiving a signal vector associated with a development process of a second software application;
providing the signal vector associated with the development process of the second software application to the predictive model; and
receiving a predicted defect score for the second software application from the predictive model.

### Claim 6 (depends on 5)

The non-transitory computer-readable medium of claim 5, wherein the operations further comprise identifying a subset of signals in the signal vector associated with the development process of the second software application, wherein the subset of signals comprises signals that contribute to the predicted defect score.

### Claim 7 (depends on 6)

The non-transitory computer-readable medium of claim 6, wherein the predicted defect score is calculated as a weighted combination of the subset of signals.

### Claim 8 (depends on 6)

The non-transitory computer-readable medium of claim 6, wherein the operations further comprise identifying aspects of the development process of the second software application associated with the subset of signals.

### Claim 9 (depends on 8)

The non-transitory computer-readable medium of claim 8, wherein the operations further comprise providing target values for the aspects of the development process of the second software application in comparison to current values for the aspects of the development process of the second software application from which the subset of signals are derived.

### Claim 10 (depends on 9)

The non-transitory computer-readable medium of claim 9, wherein the operations further comprise generating one or more actions that are configured to cause the current values change relative to the target values such that the predicted defect score falls below a threshold defect score.

### Claim 11 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the predictive model comprises a lasso regression model.

### Claim 12 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the plurality of defect indicators are received from deployment environments after receiving the deployment of the first software application.

### Claim 13 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the plurality of defect indicators are received from deployment environments during operation of the first software application.

### Claim 14 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein calculating the defect score for the deployment of the first software application comprises calculating a weighted combination of the plurality of defect indicators.

### Claim 15 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein a factor in the weighted combination of the plurality of defect indicators comprises:
a number of defects of a particular defect type;
a weight; and
a number of deployment environments in which the particular defect type occurred.

### Claim 16 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the signal vector comprises a plurality of predictive signals, wherein the plurality of predictive signals comprises numerical values representing aspects of the development process of the first software application.

### Claim 17 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the operations further comprise:
receiving the plurality of predictive signals from one or more development environments for the development process of the first software application; and
combining the predictive signals into the signal vector for the first software application.

### Claim 18 (depends on 16)

The non-transitory computer-readable medium of claim 16, wherein the plurality of predictive signals comprises:
a number of developers contributing to the development process of the first software application;
client applications updated during the development process of the first software application;
a number of times a release date of the first software application was delayed during the development process of the first software application; and
an indication as to whether a Customer Relationship Management (CRM) application was updated during the development process of the first software application.

### Claim 19

A method of training models to predict defect scores for software development processes, the method comprising:
receiving a plurality of defect indicators associated with a deployment of a first software application;
calculating a defect score for the deployment of the first software application using the plurality of defect indicators;
accessing a signal vector associated with a development process of the first software application; and
using the defect score as a label and the signal vector as an input data set to train a predictive model for the first software application.

### Claim 20

A system comprising:
one or more processors; and
one or more memory devices comprising instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:
receiving a plurality of defect indicators associated with a deployment of a first software application;
calculating a defect score for the deployment of the first software application using the plurality of defect indicators;
accessing a signal vector associated with a development process of the first software application; and
using the defect score as a label and the signal vector as an input data set to train a predictive model for the first software application.
