IP Library Granted Patent US 11,847,446
Granted Patent B2
US 11,847,446 · App. 17/205,087 · Granted Dec 19, 2023

Predictive build quality assessment

Inventor: Mohammad Rafey (Bangalore, IN)
Assignee: Dell Products, L.P.
G06F8/77G06F8/73G06F11/3664G06N3/04
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,847,446
App. No.
17/205,087
Granted
Dec 19, 2023
Kind
B2
Abstract

Predictive build quality assessment is disclosed, e.g., to predict performance of a candidate software build prior to deploying the candidate software build in a production environment. An example method can include comparing performance of a candidate software build with performance data associated with clusters of previous builds. A cluster having similar performance to the candidate software build can be selected. A source code graph for the candidate software build can be compared to source code graphs of builds included in the selected cluster. A previous build in the cluster, which is associated with a source code graph that is similar to the candidate software build's source code graph, can be selected. Individual performance data associated with the selected previous build can be inferred to be the predicted performance of the candidate software build, thereby informing decision making regarding further testing, modification, and/or deployment of the candidate software build into production.

Claims (35)

1. A method, comprising:

constructing, by a device comprising a processor, a candidate source code graph based on a candidate software build, wherein the candidate software build comprises enterprise software generated for execution in an enterprise software production environment, and wherein the candidate source code graph comprises at least one node that represents a first class of the candidate software build and a second class of the candidate software build that are linked with a call to a function of the candidate software build;

measuring, by the device, a performance of the candidate software build in a test environment utilizing hardware devices and interfaces that are not accessible to clients of the enterprise software production environment, wherein the measuring comprises measuring a group of performance factors and results in a candidate group of measurement outputs;

comparing, by the device, the candidate group of measurement outputs with production environment performance measurement data corresponding to clusters, each comprising respective previous software builds, in order to determine a selected cluster of previous software builds comprising, in aggregate, similar production environment performance measurement data, wherein the similar production environment performance measurement data has a higher similarity, according to a defined measurement similarity criterion, to the candidate group of measurement outputs than production environment performance measurement data associated with at least one non-selected cluster of the clusters, and wherein the production environment performance measurement data comprises performance measurement data associated with execution of the previous software builds in the enterprise software production environment;

subsequently comparing, by the device, the candidate source code graph with previous source code graphs of previous software builds included in the selected cluster, in order to determine a selected software build that is associated with a selected source code graph, wherein the selected source code graph has a higher similarity, according to a defined graph similarity criterion, to the candidate source code graph than at least one non-selected source code graph of the previous source code graphs included in the selected cluster; and

using, by the device, selected performance measurement data corresponding to the selected software build to determine a predicted performance of the candidate software build in a production environment.

2. The method of claim 1 , further comprising normalizing, by the device, the candidate group of measurement outputs resulting in a normalized candidate group of measurement outputs, and wherein comparing the candidate group of measurement outputs with the production environment performance measurement data corresponding to the clusters of previous software builds uses the normalized candidate group of measurement outputs.

3. The method of claim 1 , wherein comparing the candidate group of measurement outputs with the production environment performance measurement data corresponding to the clusters of previous software builds comprises determining similarity coefficients representative of similarity between the candidate group of measurement outputs and the production environment performance measurement data corresponding to the clusters of previous software builds.

4. The method of claim 3 , wherein the similarity coefficients comprise Gower similarity coefficients.

5. The method of claim 1 , wherein subsequently comparing the candidate source code graph with the previous source code graphs of the previous software builds included in the selected cluster uses a graph convolutional neural network model.

6. The method of claim 1 , further comprising outputting, by the device, a determination of whether to deploy the candidate software build in the production environment based on the predicted performance of the candidate software build in the production environment.

7. The method of claim 1 , wherein the similar production environment performance measurement data of the selected cluster is determined to have a highest similarity to the candidate group of measurement outputs according to the defined measurement similarity criterion.

8. The method of claim 1 , wherein the candidate source code graph represents calls to multiple microservices.

9. A system, comprising:

a processor; and

a memory that stores executable instructions that, when executed by the processor, facilitate performance of operations, the operations comprising:

constructing a candidate source code graph based on a candidate software build, wherein the candidate source code graph comprises at least one node that represents a first class of the candidate software build and a second class of the candidate software build that are linked with a call to a function of the candidate software build;

measuring performance of a candidate software build in a test environment separate from an enterprise software production environment, wherein the candidate software build comprises enterprise software configured to be executed in the enterprise software production environment, and wherein the measuring comprises measuring a group of performance factors and results in a candidate group of measurement outputs;

comparing the candidate group of measurement outputs with production environment performance measurement data corresponding to clusters, each comprising respective previous software builds, in order to determine a selected cluster of previous software builds comprising, in aggregate, similar production environment performance measurement data, wherein the similar production environment performance measurement data has a higher similarity to the candidate group of measurement outputs than at least one non-selected cluster of the clusters, and wherein the production environment performance measurement data comprises performance measurement data associated with execution of the previous software builds in the enterprise software production environment; and

using selected performance measurement data corresponding to at least one selected software build included in the selected cluster to predict performance of the candidate software build in the production environment, resulting in a predicted performance of the candidate software build in the production environment.

10. The system of claim 9 , wherein the operations further comprise comparing the candidate source code graph with previous source code graphs of previous software builds included in the selected cluster in order to select the at least one selected software build.

11. The system of claim 10 , wherein the at least one selected software build is associated with a selected source code graph, and wherein the selected source code graph has a higher similarity to the candidate source code graph than at least one non-selected source code graph of the previous source code graphs included in the selected cluster.

12. The system of claim 10 , wherein comparing the candidate source code graph with the previous source code graphs of the previous software builds included in the selected cluster uses a graph convolutional neural network model.

13. The system of claim 9 , wherein the operations further comprise normalizing the candidate group of measurement outputs, and wherein comparing the candidate group of measurement outputs with the production environment performance measurement data corresponding to the clusters of previous software builds uses a normalized candidate group of measurement outputs.

14. The system of claim 9 , wherein comparing the candidate group of measurement outputs with the production environment performance measurement data corresponding to the clusters of previous software builds comprises determining similarity coefficients that establish similarity between the candidate group of measurement outputs and the production environment performance measurement data corresponding to clusters of previous software builds.

15. The system of claim 9 , wherein the operations further comprise outputting a determination of whether to deploy the candidate software build in the production environment based on the predicted performance of the candidate software build in the production environment.

16. A non-transitory machine-readable medium, comprising executable instructions that, when executed by a processor, facilitate performance of operations, the operations comprising:

generating a candidate source code graph based on a candidate software build, wherein the candidate software build comprises enterprise software made for execution in an enterprise software production environment, and wherein the candidate source code graph comprises at least one node that represents a first class of the candidate software build and a second class of the candidate software build that are linked with a call to a function of the candidate software build;

selecting a cluster of previous software builds based on a performance comparison between a first performance of the candidate software in a test environment utilizing hardware devices and interfaces that are not accessible to clients of the enterprise software production environment, and a second performance of the cluster of previous software builds in the enterprise software production environment;

comparing the candidate source code graph with previous source code graphs of previous software builds included in the cluster of previous software builds, in order to select a software build associated with a source code graph, wherein the source code graph has a higher similarity to the candidate source code graph than at least one other source code graph of the previous source code graphs included in the cluster of previous software builds; and

using performance measurement data corresponding to the software build to determine whether to deploy the candidate software build in the enterprise software production environment.

17. The non-transitory machine-readable medium of claim 16 , wherein the performance comparison comprises a comparison between a candidate group of measurement outputs associated with the candidate software build, and production environment performance measurement data associated with the cluster of previous software builds.

18. The non-transitory machine-readable medium of claim 17 , wherein comparing the candidate group of measurement outputs with the production environment performance measurement data associated with the cluster comprises determining a similarity coefficient corresponding to a similarity between the candidate group of measurement outputs and the production environment performance measurement data associated with the cluster of previous software builds.

19. The non-transitory machine-readable medium of claim 17 , wherein the operations further comprise normalizing the candidate group of measurement outputs, and wherein comparing the candidate group of measurement outputs with the production environment performance measurement data associated with the cluster of previous software builds uses a normalized candidate group of measurement outputs.

20. The non-transitory machine-readable medium of claim 16 , wherein comparing the candidate source code graph with the previous source code graphs of the previous software builds included in the cluster of previous software builds uses a graph convolutional neural network model.

Assignments (11)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0124) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0012 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0001) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062021/0844 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0280) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0255 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058297/0332 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0280 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0001 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0124 →
CORRECTIVE ASSIGNMENT TO CORRECT THE MISSING PATENTS THAT WERE ON THE ORIGINAL SCHEDULED SUBMITTED BUT NOT ENTERED PREVIOUSLY RECORDED AT REEL: 056250 FRAME: 0541. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 17, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056311/0781 →
SECURITY AGREEMENT Recorded May 14, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056250/0541 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 055634 FRAME: 0750. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Apr 26, 2021
From: RAFEY, MOHAMMAD
To: DELL PRODUCTS, L.P.
Reel/Frame 056046/0088 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2021
From: RAFEY, MOHAMMAD
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 055634/0750 →