Machine Learning Classifier for Software Commit Risk Assessment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The continuous availability of software code for 24/7 online services creates a challenge in efficiently testing code changes, as the traditional testing phase is time-consuming and intensive, necessitating a method to predict the risk of code commits before releasing them into production.

Innovation Solution

A supervised machine learning approach is used to generate a classifier that predicts the risk level of software commits by learning from prior commits, allowing for the potential skipping of the testing phase for bug-free commits and targeted testing for potentially buggy ones, utilizing a data structure with attributes such as project history, label-based attributes, and code complexity metrics.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional testing phase is used to ensure code quality, then reliability is improved, but time consumption increases

Engineering Contradiction:
Improvecode qualityVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary risk assessment of code commits using machine learning classification before the actual testing phase. By analyzing commit attributes (author history, code complexity, file changes) in advance, the system predicts which commits are likely to be bug-free and can skip testing, thus reducing time consumption while maintaining reliability through targeted testing of high-risk commits only.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If extensive testing is performed on all commits, then reliability is improved, but productivity decreases

Engineering Contradiction:
Improvecode qualityVSAvoiddeployment speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system segments the code commit population into different risk categories using machine learning classification. Commits are divided into low-risk (likely bug-free) and high-risk (potentially buggy) groups based on analyzed attributes. This segmentation allows low-risk commits to be deployed quickly without extensive testing, while high-risk commits receive focused testing attention, thereby improving overall productivity without sacrificing reliability.

Inventive Principle:
Principle #1Segmentation

3Loss of time

If machine learning classification is used to predict commit risk, then time consumption is reduced, but device complexity increases

Engineering Contradiction:
Improvetesting timeVSAvoidsystem complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The system introduces a machine learning classifier as an intermediary component between code submission and testing/deployment. This classifier analyzes commit attributes (author history, code complexity metrics, file changes) and generates risk predictions that guide the testing process. While this adds system complexity, it enables automated risk-based decision-making that reduces manual testing time and improves efficiency.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9921948B2Software commit risk level
Publication Date: 2018.03.20 MICRO FOCUS LLC
  • US9921948B2 patent drawing
  • US9921948B2 patent drawing
  • US9921948B2 patent drawing

AI summary

A risk level of a software commit is assessed through the use of a classifier. The classifier may be generated based on attributes pertaining to previous commits and used to determine a risk level for deployment of a software commit into a production environment based on attributes extracted from the software commit.