Dynamic Test Rerun System for High Concurrency Stability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing application development practices face instability in test executions due to high concurrency, leading to inconsistent results and inefficient resource utilization, as unstable tests are either ignored or rerun a fixed number of times, potentially integrating poor quality code or wasting computing resources.

Innovation Solution

Implement a system that dynamically determines the number of reruns for failed test executions based on captured data, distinguishing between real application failures and test instability, and automatically reruns tests until they pass, tailored to individual tests, test owners, or committers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If tests are rerun a fixed number of times for each failure, then test stability is improved, but computing resources are wasted and development efficiency deteriorates

Engineering Contradiction:
Improvetest stabilityVSAvoiddevelopment efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements dynamic test rerun determination by analyzing test execution data, error patterns, and historical performance to adaptively decide whether and how many times to rerun failed tests. This replaces fixed rerun counts with a dynamic system that adjusts rerun behavior based on actual test conditions, resolving the contradiction between maintaining test stability and preserving development efficiency.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameter of rerun count from a static fixed value to a dynamic variable determined by multiple factors including test execution metrics, error analysis, and historical data. This parameter transformation allows the system to optimize between reliability and productivity by adjusting rerun behavior according to specific test conditions rather than applying a uniform fixed approach.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If unstable tests are ignored, then development speed is improved, but code quality deteriorates

Engineering Contradiction:
Improvedevelopment speedVSAvoidcode quality
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements a feedback mechanism that continuously monitors test execution results, analyzes failure patterns, and uses this information to make informed decisions about test reruns. The system provides feedback loops that evaluate whether tests represent genuine failures or instability, allowing development to proceed while maintaining code quality through intelligent differentiation between test types.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system segments tests into different categories based on their failure characteristics, distinguishing between tests that indicate real application failures and those that exhibit instability. This segmentation allows the system to handle different test types differently - pursuing rapid development for stable tests while applying additional verification for tests indicating genuine issues, thus resolving the contradiction between speed and quality.

Inventive Principle:
Principle #1Segmentation

3Loss of energy

If tests are rerun dynamically based on captured data, then resource utilization is improved, but system complexity increases

Engineering Contradiction:
Improveresource utilizationVSAvoidsystem complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The patent implements a self-service system where the test execution framework automatically captures data, analyzes failure patterns, determines rerun necessity, and executes reruns without external intervention. The system serves itself by using its own execution data to make intelligent decisions, reducing the need for complex external control mechanisms while improving resource utilization through automated adaptive behavior.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10860465B2Automatically rerunning test executions
Publication Date: 2020.12.08 MICRO FOCUS LLC
  • US10860465B2 patent drawing
  • US10860465B2 patent drawing
  • US10860465B2 patent drawing

AI summary

Example implementations relate to automatically rerunning test executions. Some implementations may capture data during executions of a test. The data may include test status data, test rerun data, test owner data, and/or code committer data. Some implementations may also dynamically determine, for a failed execution of the test, a number of reruns to execute based on the captured data. Additionally, some implementations may cause in response to the dynamic determination, automatic rerun executions of the test until one of the rerun executions passes, the rerun executions being performed up to the number of times.