Machine Learning Classifier for Software Error Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software development processes face challenges in detecting coding errors, particularly those that are undetectable by regression tests, leading to productivity loss, customer data loss, revenue loss, and reputation damage.

Innovation Solution

A machine learning-based software classifier is developed to identify suspicious code sections by training on software error data sets, allowing for early detection of potential errors without executing the code and suggesting corrections.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If regression tests are used to detect coding errors, then detectable errors can be identified, but undetectable errors remain unnoticed causing productivity loss and potential data loss

Engineering Contradiction:
Improveerror detection capabilityVSAvoidsoftware quality
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The patent introduces a machine learning classifier as an intermediary tool between traditional regression tests and code quality assessment. This classifier analyzes code changes and predicts potential errors, bridging the gap between what regression tests can detect and what actually represents software quality issues, including undetectable errors

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If code changes are reviewed manually to detect errors, then coding mistakes can be identified, but productivity decreases due to time consumption

Engineering Contradiction:
Improveerror detection accuracyVSAvoidsoftware development speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent replaces the mechanical manual review process with an automated machine learning-based classification system. The classifier automatically analyzes code changes, predicts errors, and provides feedback without requiring manual inspection, thereby maintaining high detection accuracy while significantly improving development productivity

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

3Reliability

If traditional error detection methods are used, then coding errors can be found after development, but development time increases and errors cause harm before detection

Engineering Contradiction:
Improveerror detection effectivenessVSAvoidsoftware development time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements preliminary error detection by analyzing code changes before they are fully integrated into the software. The machine learning classifier predicts potential errors in advance, allowing developers to fix issues during the development phase rather than after deployment, thus reducing both development time and the risk of errors causing harm

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10423522B2System and method for detecting an error in software
Publication Date: 2019.09.24 SALESFORCE INC
  • US10423522B2 patent drawing
  • US10423522B2 patent drawing
  • US10423522B2 patent drawing

AI summary

A computer-implemented method of detecting a likely software malfunction is provided. The method comprises collecting a plurality of software error data sets wherein each software error data set comprises a proposed code section containing an error and a corrected code section containing code changes that fixed the error in the proposed code section. The method further comprises training a computer-implemented algorithmic model using the collected software error data sets to devise a software code classifier for predicting a likely error in a code section, reviewing a section of code using the software code classifier, and identifying suspicious code in the reviewed section of code as containing a suspected error using the software code classifier.