Automated Risk Scoring for CI Test Failures

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Continuous integration pipelines face challenges in detecting and resolving false test failures, which can lead to unnecessary resource allocation and delays in merging source code.

Innovation Solution

An automated system that detects test failures, determines a risk score based on historical data, and performs actions such as merging source code or generating user interfaces to facilitate developer decision-making.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If test failures are strictly enforced to block source code merging, then software quality is improved, but development productivity deteriorates due to false failures causing unnecessary delays

Engineering Contradiction:
Improvesoftware qualityVSAvoiddevelopment productivity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent replaces the mechanical blocking mechanism (automatically preventing merges when tests fail) with an intelligent risk assessment system. The build server analyzes failure characteristics, compares them against known false failure patterns, and calculates a risk score. This substitution allows the system to distinguish between true failures requiring blocking and false failures that can be safely overridden, thereby maintaining quality while improving productivity.

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

Solution Approach 2:

The patent introduces a risk score parameter that dynamically adjusts the strictness of failure handling. Instead of a binary pass/fail decision, the system evaluates multiple parameters (failure frequency, test stability, historical data) to generate a risk score. This parameter change enables nuanced decision-making where low-risk failures can be overridden with notifications, while high-risk failures trigger traditional blocking, thus resolving the contradiction between quality and productivity.

Inventive Principle:
Principle #35Parameter changes

2Measurement precision

If manual investigation of test failures is performed to identify false failures, then accuracy in detecting true failures is improved, but time consumption and complexity increase

Engineering Contradiction:
Improveaccuracy in detecting true failuresVSAvoidtime consumption
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent implements a self-service mechanism where the build server automatically investigates and classifies test failures without requiring manual developer intervention. The system collects failure data, compares it against historical patterns, and autonomously determines whether a failure is likely false or true. This self-service approach maintains high accuracy in detecting true failures while eliminating the time consumption and complexity associated with manual investigation.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent establishes a feedback loop where failure information is continuously collected, analyzed, and used to improve future failure classification. The system learns from historical failure patterns and adjusts its risk assessment criteria over time. This feedback mechanism enables the system to achieve high measurement precision automatically, reducing both time consumption and the need for manual investigation while maintaining accurate detection of true failures.

Inventive Principle:
Principle #23Feedback

3Reliability

If all test failures are treated equally and blocked, then false positives are reduced, but resource utilization deteriorates due to unnecessary reconfiguring and retesting

Engineering Contradiction:
Improvefalse positive reductionVSAvoidresource utilization
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent segments the set of all test failures into distinct categories based on risk assessment. Instead of treating all failures uniformly, the system divides them into low-risk (likely false failures) and high-risk (likely true failures) segments. This segmentation allows differential handling: low-risk failures can be overridden with minimal resource consumption, while high-risk failures trigger traditional blocking and retesting. This resolves the contradiction by reducing false positives without causing unnecessary resource utilization for low-risk cases.

Inventive Principle:
Principle #1Segmentation

4Loss of information

If developers are notified of all test failures, then completeness of information is improved, but ease of operation deteriorates due to information overload

Engineering Contradiction:
Improvecompleteness of informationVSAvoidease of developer decision-making
Core Design Contradiction:
Loss of informationVSEase of operation

Solution Approach 1:

The patent applies local quality by providing different levels of information detail to different users or contexts. Instead of notifying all developers equally about all failures, the system tailors notifications based on risk scores. Low-risk failures receive simplified notifications that allow quick override, while high-risk failures receive detailed information requiring thorough investigation. This local differentiation maintains completeness of critical information while improving ease of operation by reducing information overload for routine cases.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS20250138989A1Risk analysis of test failures that occurred during a testing phase of a continuous integration pipeline
Publication Date: 2025.05.01 RED HAT INC
  • US20250138989A1 patent drawing
  • US20250138989A1 patent drawing
  • US20250138989A1 patent drawing

AI summary

Some examples of the present disclosure relate to risk analysis of test failures that occurred during a testing phase of a continuous integration pipeline. In one particular example, a system can detect a failure of a test during a testing phase of a continuous integration pipeline. The testing phase can involve executing a group of tests in a plurality of configurations prior to merging an update to source code into a code base of a software application. Based on detecting the failure of the test during the testing phase, the system can access historical data associated with prior executions of the test, determine a risk score associated with the failure of the test based on the historical data, and perform an action associated with the source code based on the risk score.