IP Library › Granted Patent US 11,055,178
Granted Patent B2
US 11,055,178 · App. 16/543,712 · Granted Jul 6, 2021

Method and apparatus for predicting errors in to-be-developed software updates

Inventors: David Biernacki (Woonsocket, RI); Debra Robitaille (Hopkinton, MA); Mark Adam Arakelian (Shirley, MA); Venkat Reddy (Bangalore, IN); Belagapu Kumar (Bangalore, IN); Suhas K B (Bangalore, IN); Tamilarasan Janakiraman (Hosur, IN)
Assignee: EMC IP Holding Company LLC
G06F11/1433G06F8/65G06F11/0766G06F11/0793G06F11/1417G06F11/3664G06F11/3668G06K9/6256G06K9/6276G06N3/08G06N20/00
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,055,178
App. No.
16/543,712
Filed
Aug 19, 2019
Granted
Jul 6, 2021
Kind
B2
Art Unit
2192
USPC
717/168
Abstract

A method of providing an error occurrence estimate for a proposed software update, before the proposed software update is created, includes training a learning process to cause the learning process to learn a correlation between the complexity of the previous software updates and the error occurrences of the previous software updates. The complexity information may include the number of lines of code and the number of check-in operations that occurred in connection with creation of the previous software updates. The trained learning process is then provided with expected complexity information of a proposed software update, and used to generate an error estimate including the number of errors that are likely to occur, the severity of the errors that are likely to occur, and the amount of software developer time that should be expected to be incurred to correct the errors.

Claims (37)

1. A non-transitory tangible computer readable storage medium having stored thereon a computer program for implementing a method of predicting a number of errors that are likely to occur and severity of the errors that are likely to occur in a proposed software update before the proposed software update is created, the computer program comprising a set of instructions which, when executed by a computer, cause the computer to perform a method comprising the steps of:

receiving data from a plurality of tools of a software development environment, the data including at least complexity information of previous software updates and error occurrence information of the previous software updates;

using the data to train a learning process, to cause the learning process to learn a correlation between the complexity information of the previous software updates and the error occurrence information of the previous software updates;

providing the trained learning process with an expected complexity information of the proposed software update; and

receiving from the trained learning process the number of errors that are likely to occur and severity of the errors that are likely to occur while of creating the proposed software update before the proposed software update is created;

wherein the complexity information of the previous software updates includes, for each previous software update that is used to train the learning process, a number of lines of code of the previous software update and a number of check-in operations that occurred in connection with creation of the previous software update;

wherein the complexity information of the previous software updates includes, for each previous software update that is used to train the learning process, first developer information identifying who worked on the previous software update;

wherein the expected complexity information includes second developer information identifying which software developers are expected to work on the proposed software update; and

wherein the step of using the data to train the learning process comprises using the first developer information to train the learning process to learn a correlation between developer information and error occurrence information, and wherein the trained learning process uses the learned correlation between developer information and error occurrence information, and the second developer information, to generate the number of errors that are likely to occur and the severity of the errors that are likely to occur while creating the proposed software update.

2. The non-transitory tangible computer readable storage medium of claim 1 , wherein the plurality of tools includes a requirement tracker tool having a first database, an error reporting tool having a second database, and a testing automation tool having a third database, and wherein the data is received from each of the first database, second database, and third database.

3. The non-transitory tangible computer readable storage medium of claim 1 , wherein the step of receiving data from the plurality of tools comprises cleansing the data prior to using the data to train the learning process.

4. The non-transitory tangible computer readable storage medium of claim 1 , wherein the learning process implements a k-nearest neighbors linear regression algorithm.

5. The non-transitory tangible computer readable storage medium of claim 1 , wherein the error occurrence information includes, for each previous software update that is used to train the learning process, a number of errors that occurred in connection with creation of the previous software update, information about the severity of the errors that occurred in connection with creation of the previous software update, and an amount of time required to correct the errors that occurred in connection with creation of the previous software update.

6. The non-transitory tangible computer readable storage medium of claim 1 , wherein the expected complexity information includes an expected number of lines of code of the proposed software update and an expected number of check-in operations that are anticipated to occur in connection with creation of the proposed software update.

7. The non-transitory tangible computer readable storage medium of claim 6 , wherein the step of receiving, from the trained learning process, the number of errors that are likely to occur and severity of the errors that are likely to occur, further comprises receiving, from the trained learning process, an estimate of an amount of time required to correct errors that are anticipated to occur in connection with creation of the proposed software update.

8. The non-transitory tangible computer readable storage medium of claim 1 , further comprising providing the trained learning process with second expected complexity information of the proposed software update after creation of the proposed software update has been started, and receiving from the trained learning process a revised expected number of errors that are likely to occur and severity of the errors that are likely to occur while finishing the proposed software update.

9. The non-transitory tangible computer readable storage medium of claim 8 , wherein the step of receiving, from the trained learning process, the revised expected number of errors that are likely to occur and severity of the errors that are likely to occur, further comprises receiving, from the trained learning process, an estimate of time required to correct errors that are anticipated to occur in connection with finishing the proposed software update.

10. The non-transitory tangible computer readable storage medium of claim 1 , further comprising generating, by the trained learning process, an error estimate, the error estimate including the number of errors that are likely to occur and severity of the errors that are likely to occur while creating the proposed software update before the proposed software update is created.

11. The non-transitory tangible computer readable storage medium of claim 10 , wherein the error estimate further includes an estimated amount of software developer time that is likely to be required to fix the errors that are likely to occur while creating the proposed software update.

12. A method, comprising:

receiving data from a plurality of tools of a software development environment, the data including at least complexity information of previous software updates and error occurrence information of the previous software updates;

training a learning process, using the data, to cause the learning process to learn a correlation between the complexity information of the previous software updates and the error occurrence information of the previous software updates;

receiving, by the trained learning process, an expected complexity information of the proposed software update; and

generating, by the trained learning process, an error estimate for the proposed software update before the proposed software update is created, the error estimate including a number of errors that are likely to occur and severity of the errors that are likely to occur while creating a proposed software update;

wherein the complexity information of the previous software updates includes, for each previous software update that is used to train the learning process, a number of lines of code of the previous software update and a number of check-in operations that occurred in connection with creation of the previous software update;

wherein the complexity information of the previous software updates includes, for each previous software update that is used to train the learning process, first developer information identifying who worked on the previous software update;

wherein the expected complexity information includes second developer information identifying which software developers are expected to work on the proposed software update; and

wherein the step of using the data to train the learning process comprises using the first developer information to train the learning process to learn a correlation between developer information and error occurrence information, and wherein the trained learning process uses the learned correlation between developer information and error occurrence information, and the second developer information, to generate the number of errors that are likely to occur and the severity of the errors that are likely to occur while creating the proposed software update.

13. The method of claim 12 , wherein the error estimate further includes an estimated amount of software developer time that is likely to be required to fix the errors that are likely to occur while creating the proposed software update.

14. The method of claim 12 , wherein the learning process implements a k-nearest neighbors linear regression algorithm.

15. The method of claim 12 , wherein the error occurrence information includes, for each previous software update that is used to train the learning process, a number of errors that occurred in connection with creation of the previous software update, information about the severity of the errors that occurred in connection with creation of the previous software update, and an amount of time required to correct the errors that occurred in connection with creation of the previous software update.

16. The method of claim 12 , wherein:

the plurality of tools includes a requirement tracker tool having a first database, an error reporting tool having a second database, and a testing automation tool having a third database, and wherein the data is received from each of the first database, second database, and third database; and

wherein the step of receiving data from the plurality of tools comprises cleansing the data prior to using the data to train the learning process.

17. The method of claim 12 , wherein the expected complexity information includes an expected number of lines of code of the proposed software update and an expected number of check-in operations that are anticipated to occur in connection with creation of the proposed software update.

18. The method of claim 12 , wherein the error estimate further includes an estimate of an amount of time required to correct errors that are anticipated to occur in connection with creation of the proposed software update.

19. The method of claim 12 , further comprising providing the trained learning process with second expected complexity information of the proposed software update after creation of the proposed software update has been started, and receiving from the trained learning process a revised expected number of errors that are likely to occur, a severity of the errors that are likely to occur while finishing the proposed software update, and an estimate of time required to correct errors that are anticipated to occur in connection with finishing the proposed software update.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (051302/0528) Recorded Jun 23, 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; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.); SECUREWORKS CORP.
Reel/Frame 060438/0593 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST AT REEL 051449 FRAME 0728 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
Reel/Frame 058002/0010 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Dec 31, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 051449/0728 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Dec 16, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 051302/0528 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2019
From: BIERNACKI, DAVID M; ROBITAILLE, DEBRA; ARAKELIAN, MARK; REDDY, VENKAT; KUMAR, BELAGAPU; K B, SUHAS; JANAKIRAMAN, TAMILARASAN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 050518/0366 →
Continuity (1)
Related Publication 20210055995A1 · Feb 25, 2021