Parallel Test Retry Mechanism for Software Testing Bottlenecks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The time-consuming process of sequentially executing large sets of software tests can lead to delays in software development, particularly when multiple developers are working on the same application. Additionally, parallelizing tests can cause errors and failed tests due to out-of-order execution of dependent tests.

Innovation Solution

The system and method involve distributing test cases among parallel threads, identifying and re-executing failed test cases, and aggregating test results to ensure that the overall set of tests ultimately succeeds. This approach mitigates errors caused by parallel execution by retrying failed tests.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If tests are executed sequentially to ensure proper ordering of dependent tests, then test reliability is improved, but testing time increases significantly

Engineering Contradiction:
Improvetest execution reliabilityVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the test execution process into multiple independent threads that can run simultaneously. Tests are divided into test suites that are distributed across parallel threads, allowing concurrent execution while maintaining necessary dependencies through retry mechanisms for failed tests.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary error handling by anticipating parallel execution failures and built-in retry logic. When a test fails due to parallelization issues, the system automatically retries that specific test case, preventing false failures from compromising overall test reliability.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If tests are parallelized to reduce testing time, then productivity is improved, but test execution reliability deteriorates due to out-of-order execution

Engineering Contradiction:
Improvetesting throughputVSAvoidtest execution reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The test suite is segmented into multiple independent test cases that can be distributed across parallel threads. Each test case is designed to be independently executable, with dependencies managed through the retry mechanism rather than strict sequential ordering.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements feedback through automatic retry logic that monitors test execution results. When a test fails, the system provides feedback by retrying the test case, using the outcome to determine whether the failure was due to parallelization issues or actual code defects.

Inventive Principle:
Principle #23Feedback

3Reliability

If the full set of tests is re-executed after parallelization causes failures, then test completeness is improved, but time consumption increases

Engineering Contradiction:
Improvetest completenessVSAvoidre-testing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts and identifies only the specific test cases that failed during parallel execution, rather than re-executing the entire test suite. This selective approach isolates the problematic tests for targeted retry, saving time while ensuring completeness.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of performing a complete re-execution of all tests, the system applies partial action by retrying only the subset of tests that failed. This reduces unnecessary re-execution of tests that already passed, optimizing time consumption while maintaining test completeness.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS12282417B2Retrying failed test cases in software testing using parallel threads
Publication Date: 2025.04.22 STATE FARM MUTAL AUTOMOBILE INSURANCE COMPANY
  • US12282417B2 patent drawing
  • US12282417B2 patent drawing
  • US12282417B2 patent drawing

AI summary

Test cases written to test a software application can be dynamically distributed among different sets of test cases that can be executed simultaneously in different parallel threads, thereby speeding up testing relative to executing the test cases sequentially in a single thread. Although executing the test cases in parallel threads can cause the test cases to execute in a different order than intended by developers, any test cases that fail due to database conflicts or other errors as a result of the parallelization can be retried at least once. Re-executing failed test cases at a later time can lead to the full set of test cases ultimately succeeding, despite errors that may have been caused by the parallelization.