Software Change Risk Assessment Using Bug Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software development practices lack effective pre-commit, pre-integration, and pre-deployment risk assessment for software changes, relying primarily on post-commit testing which may not catch bugs before they are integrated or deployed, leading to potential issues in software quality and stability.

Innovation Solution

Implementing a system that uses bug detection data, prediction models, and historical data to assess the risk of software changes by converting source code into tokenized features, training machine learning models like LSTM or ANN, and setting thresholds to block or allow integration and deployment based on risk factors, with override mechanisms for administrative approval.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If post-commit testing is used to validate software changes, then testing can be performed after integration, but bugs may not be caught before integration or deployment, leading to potential issues in software quality and stability

Engineering Contradiction:
Improvesoftware qualityVSAvoidtime to detect bugs
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements preliminary bug detection and risk assessment before software changes are committed, integrated, or deployed. Machine learning models analyze code changes, bug patterns, and historical data to predict potential bugs and assess risks in advance, enabling proactive prevention rather than reactive detection after integration.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system incorporates feedback mechanisms where bug detection data, prediction results, and historical bug information are continuously fed into machine learning models. These models learn from past bugs and deployment outcomes to improve their prediction accuracy over time, creating a closed-loop system that enhances software quality through iterative learning.

Inventive Principle:
Principle #23Feedback

2Reliability

If machine learning models and risk assessment systems are implemented to evaluate software changes before integration, then proactive bug detection is enabled, but system complexity increases due to additional processing requirements

Engineering Contradiction:
Improvesoftware robustnessVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces machine learning models and risk assessment systems as intermediary components between code submission and integration/deployment. These intermediaries automatically analyze code changes, evaluate risks, and provide recommendations, acting as a bridge that adds intelligence without requiring direct human intervention in every step of the process.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system enables self-service automated risk assessment and bug prediction where the machine learning models independently evaluate software changes without requiring manual code review or configuration. The system automatically processes code changes, predicts potential bugs, and provides risk assessments, reducing the need for human expertise in managing the complexity.

Inventive Principle:
Principle #25Self-service

3Reliability

If automated risk assessment blocks software changes exceeding risk thresholds, then software quality is protected, but development productivity decreases due to blocked changes requiring manual override

Engineering Contradiction:
Improvesoftware qualityVSAvoiddevelopment speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements dynamic risk threshold management where blocking decisions are not rigid but adaptable. The system can adjust thresholds based on context, project priorities, and historical data. Changes that exceed thresholds can be overridden with appropriate approvals, and the system learns from these overrides to refine its risk assessment accuracy over time.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system allows modification of risk assessment parameters and thresholds based on organizational needs, project priorities, and historical performance data. By changing these parameters dynamically, the system can balance quality protection with development speed, adjusting the strictness of blocking decisions to match current project requirements.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10754640B2Engineering system robustness using bug data
Publication Date: 2020.08.25 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10754640B2 patent drawing
  • US10754640B2 patent drawing
  • US10754640B2 patent drawing

AI summary

Information concerning software bugs including bug detection, bug prediction data and/or historical bug data can be used to determine whether it is safe to commit, integrate, deploy and/or deliver a software change. If the change is deemed unsafe, the change can be rejected automatically. Alternatively, the change can proceed following approval by an administrator, supervisor, implementer, manager and/or other designated approval mechanism. Actions taken to override a block can be recorded along with information concerning failed deployments and/or deliveries, a higher than normal customer failure rate after deployment and/or delivery or through manual data entry.