IP Library › Granted Patent US 10,884,893
Granted Patent B2
US 10,884,893 · App. 16/112,506 · Granted Jan 5, 2021

Detecting software build errors using machine learning

Inventors: Alexander Sobran (Chapel Hill, NC); Bo Zhang (Cary, NC); Bradley C. Herrin (Apex, NC)
Assignee: International Business Machines Corporation
G06F11/3608G06F11/3664G06F11/3692G06N20/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 10,884,893
App. No.
16/112,506
Granted
Jan 5, 2021
Kind
B2
Abstract

A method, system and computer program product for detecting software build errors. A classification system is created that identifies users' questions in crowdsource data pertaining to errors in computer programs that are associated with a log report. A model is built to classify log data as bug-related or not bug-related based on the classification system. Log reports from log data obtained from crowdsource data are identified as being bug-related based on the model. After vectorizing such log reports and storing the vectorized log reports, the language of a new build log report for a software product is vectorized upon completion of the build of the software product. If the vectorized log report is within a threshold amount of distance to a stored vectorized log report, then a copy of the log report (bug-related) and a source of the log report associated with the stored vectorized log report is provided.

Claims (66)

1. A computer program product for detecting software build errors, the computer program product comprising a computer readable storage medium having program code embodied therewith, the program code comprising the programming instructions for:

creating a classification system that identifies users' questions pertaining to errors in computer programs that are associated with a log report;

building a model to classify log data as bug-related or not bug-related based on said classification system;

retrieving log data from a plurality of sources involving previously-built software products, wherein said retrieved log data comprises questions, wherein said plurality of sources comprises online forums;

identifying log reports from said retrieved log data that are bug-related based on said model;

vectorizing language of said identified log reports that are bug-related using said model;

storing said vectorized log reports that are bug-related;

vectorizing language of a build log report for a software product upon completion of a build of said software product using said model;

comparing said vectorized log report with said stored vectorized log reports;

providing a copy of a log report and a source of said log report associated with a stored vectorized log report in response to identifying said stored vectorized log report within a threshold amount of distance to said vectorized log report; and

instructing a programmer to proceed to release said software product in response to said vectorized log report not being within said threshold amount of distance to a stored vectorized log report.

2. The computer program product as recited in claim 1 , wherein the program code further comprises the programming instructions for:

performing a classification of identifying users' questions with reported loggings; and

performing a classification of identifying bug-related questions;

wherein said classifications are combined to generate said classification system that identifies users' questions pertaining to errors in computer programs that are associated with a log report.

3. The computer program product as recited in claim 1 , wherein said log report of said vectorized log report contains a vector representation of said log report, a source of said log report and a classification of said log report.

4. The computer program product as recited in claim 1 , wherein the program code further comprises the programming instructions for:

tokenizing a collection of log reports classified as bug-related and not bug-related; and

training said model using said tokenized log reports.

5. The computer program product as recited in claim 4 , wherein the program code further comprises the programming instructions for:

receiving a plurality of build log reports for said software product upon completion of said build of said software product; and

partitioning said plurality of build log reports using a shortest and a longest line length of bug-related log reports in said collection of log reports.

6. The computer program product as recited in claim 5 , wherein the program code further comprises the programming instructions for:

tokenizing said partitioned log reports; and

mapping said tokenized log reports to a token value.

7. The computer program product as recited in claim 6 , wherein the program code further comprises the programming instructions for:

inferring a vector representation of a log report by said model using a mapped representation of said log report.

8. The computer program product as recited in claim 4 , wherein the program code further comprises the programming instructions for:

counting a frequency of tokenized items;

mapping tokenized items that are below a threshold frequency to a single binned token value; and

training said model using tokenized items that are at or above said threshold frequency.

9. The computer program product as recited in claim 1 , wherein said users' questions are identified in crowdsource data.

10. A system, comprising:

a memory for storing a computer program for detecting software build errors; and

a processor connected to said memory, wherein said processor is configured to execute the program instructions of the computer program comprising:

creating a classification system that identifies users' questions pertaining to errors in computer programs that are associated with a log report;

building a model to classify log data as bug-related or not bug-related based on said classification system;

retrieving log data from a plurality of sources involving previously-built software products, wherein said retrieved log data comprises questions, wherein said plurality of sources comprises online forums;

identifying log reports from said retrieved log data that are bug-related based on said model;

vectorizing language of said identified log reports that are bug-related using said model;

storing said vectorized log reports that are bug-related;

vectorizing language of a build log report for a software product upon completion of a build of said software product using said model;

comparing said vectorized log report with said stored vectorized log reports;

providing a copy of a log report and a source of said log report associated with a stored vectorized log report in response to identifying said stored vectorized log report within a threshold amount of distance to said vectorized log report; and

instructing a programmer to proceed to release said software product in response to said vectorized log report not being within said threshold amount of distance to a stored vectorized log report.

11. The system as recited in claim 10 , wherein the program instructions of the computer program further comprise:

performing a classification of identifying users' questions with reported loggings; and

performing a classification of identifying bug-related questions;

wherein said classifications are combined to generate said classification system that identifies users' questions pertaining to errors in computer programs that are associated with a log report.

12. The system as recited in claim 10 , wherein said log report of said vectorized log report contains a vector representation of said log report, a source of said log report and a classification of said log report.

13. The system as recited in claim 10 , wherein the program instructions of the computer program further comprise:

tokenizing a collection of log reports classified as bug-related and not bug-related; and

training said model using said tokenized log reports.

14. The system as recited in claim 13 , wherein the program instructions of the computer program further comprise:

receiving a plurality of build log reports for said software product upon completion of said build of said software product; and

partitioning said plurality of build log reports using a shortest and a longest line length of bug-related log reports in said collection of log reports.

15. The system as recited in claim 14 , wherein the program instructions of the computer program further comprise:

tokenizing said partitioned log reports; and

mapping said tokenized log reports to a token value.

16. The system as recited in claim 15 , wherein the program instructions of the computer program further comprise:

inferring a vector representation of a log report by said model using a mapped representation of said log report.

17. The system as recited in claim 13 , wherein the program instructions of the computer program further comprise:

counting a frequency of tokenized items;

mapping tokenized items that are below a threshold frequency to a single binned token value; and

training said model using tokenized items that are at or above said threshold frequency.

18. The system as recited in claim 10 , wherein said users' questions are identified in crowdsource data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 24, 2018
From: SOBRAN, ALEXANDER; ZHANG, BO; HERRIN, BRADLEY C.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 046701/0902 →
Continuity (1)
Related Publication 20200065220A1 · Feb 27, 2020
Cited By (1)
US 12,332,854