Software Defect Origin Detection via NLP and Machine Learning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Manual analysis of software test failures is time-consuming and error-prone, as it involves tracing changes in source code and identifying the root cause of failures from stack traces, which can be complex due to the large size of software products and various factors like code, requirement, and environment changes.

Innovation Solution

A computer-implemented method using natural language processing (NLP) and machine learning to detect failures during code builds by analyzing change sets since the last successful build, extracting features from comments, chat history, emails, and other related data, and applying a software defect origin model to pinpoint the origin of the failure.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If manual analysis of stack traces is used to determine root cause of failures, then detailed human judgment can be applied, but the process becomes time-consuming and tedious

Engineering Contradiction:
Improveaccuracy of root cause identificationVSAvoidtime required for failure analysis
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent introduces an intermediary system comprising NLP processors and machine learning models that act as a mediator between the raw stack trace data and the final root cause identification. This intermediary automatically processes stack traces, extracts relevant features, and applies learned patterns to identify failure origins, eliminating the need for manual analysis while maintaining high accuracy through trained algorithms.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the mechanical human analysis process with an automated computational system. Instead of manual examination of stack traces by developers, the system uses NLP techniques and machine learning models to automatically parse, analyze, and interpret failure data, substituting human cognitive mechanics with algorithmic processing that is both faster and consistently accurate.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Reliability

If comprehensive change sets including comments, chat history, emails, and meeting minutes are analyzed, then more context is available for accurate failure detection, but the complexity of processing increases

Engineering Contradiction:
Improveaccuracy of failure origin detectionVSAvoidcomplexity of data processing system
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the complex analysis task into distinct processing stages: collecting change set data from multiple sources, extracting features using NLP, applying machine learning models, and generating failure origin predictions. This segmentation allows each component to specialize in specific aspects of analysis, managing complexity through modular architecture while comprehensively processing diverse data types including code changes, comments, chat history, emails, and meeting minutes.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a universal processing framework that handles multiple data types (code, comments, chat history, emails, meeting minutes) through a common NLP and machine learning pipeline. This multi-functional system uses the same core technologies to process diverse inputs, reducing overall system complexity compared to having separate specialized systems for each data type while maintaining comprehensive analysis capability.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Productivity

If NLP and machine learning are used to automate failure analysis, then productivity increases and time is reduced, but the system requires learning from previous failures which may not cover all scenarios

Engineering Contradiction:
Improvespeed of failure analysisVSAvoidability to handle novel failure scenarios
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent applies preliminary action by training the machine learning model on historical failure data before deployment. The system pre-learns patterns, correlations, and failure signatures from previous failures and their resolutions, building a knowledge base that enables rapid analysis of new failures. This preliminary training equips the system with pre-acquired expertise that accelerates productivity while maintaining adaptability through learned patterns.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback mechanisms where the system continuously learns from new failures and updates its models. By incorporating feedback from actual failure cases and their resolutions, the system adapts to novel scenarios, improving both productivity and versatility over time. The feedback loop allows the machine learning model to refine its predictions and expand its capability to handle diverse failure types beyond the initial training set.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10838849B2Analyzing software test failures using natural language processing and machine learning
Publication Date: 2020.11.17 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10838849B2 patent drawing
  • US10838849B2 patent drawing
  • US10838849B2 patent drawing

AI summary

According to an aspect, software test failures are analyzed using natural language processing (NLP) and machine learning. A failure is detected during a code build associated with a software product. Each change set since a last successful code build associated with the software product is identified and analyzed using NLP to extract change set features. A software defect origin model is applied to the extracted features in each analyzed change set to detect an origin of the failure. The software defect origin model includes a mathematical description of patterns learned from previously detected failures and their corresponding features.