Parallel Software Testing via Annotation-Based Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing methods for software testing are time-consuming and inefficient, particularly when new versions of software applications need to be tested, as they often require executing a large number of tests sequentially, leading to delays and potential conflicts when tests are run in parallel.

Innovation Solution

The system and method for testing software applications involve using annotations to identify related test cases, which are then distributed among parallel threads for execution. This approach allows for the execution of test cases in parallel while minimizing database errors by ensuring that related test cases are executed within the same thread.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If tests are executed sequentially to maintain test dependencies and avoid database errors, then test reliability is improved, but testing time increases significantly

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

Solution Approach 1:

The patent segments the test suite into groups based on annotations, where each group contains tests with the same annotation. Tests within each group are executed sequentially to maintain dependencies, while different groups are executed in parallel. This segmentation allows the system to achieve both reliability (through sequential execution within groups) and efficiency (through parallel execution of groups).

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent dynamically determines the execution order and grouping of tests based on their annotations. The system analyzes test dependencies and dynamically creates execution groups, assigning tests to appropriate parallel threads while maintaining necessary sequential relationships. This dynamic approach allows flexible adaptation to different test dependency structures.

Inventive Principle:
Principle #15Dynamics

2Productivity

If tests are run in parallel to reduce testing time, then productivity is improved, but database errors increase due to violated test dependencies

Engineering Contradiction:
Improvetesting efficiencyVSAvoidtest accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The test suite is segmented into annotation-based groups that can be safely executed in parallel. Each group is self-contained with respect to its dependencies, allowing parallel execution without causing database errors. This segmentation strategy enables the system to maximize parallelism while maintaining test accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Annotations serve as intermediaries that carry dependency information between tests. The system uses these annotations to mediate the parallel execution process, determining which tests can run concurrently and which must maintain sequential relationships. This intermediary mechanism enables safe parallelization without violating test dependencies.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If all tests are executed to ensure comprehensive coverage, then test completeness is improved, but computing resource usage increases

Engineering Contradiction:
Improvetest completenessVSAvoidcomputing resource usage
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent applies partial action by executing only the necessary groups of tests in parallel, rather than forcing all tests into parallel execution. The system determines the optimal number of parallel groups based on available resources and test dependencies, running enough tests to ensure completeness while avoiding unnecessary resource consumption from over-parallelization.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS20250199945A1Parallel software testing based on annotations
Publication Date: 2025.06.19 STATE FARM MUTAL AUTOMOBILE INSURANCE COMPANY
  • US20250199945A1 patent drawing
  • US20250199945A1 patent drawing
  • US20250199945A1 patent drawing

AI summary

Annotations associated with test cases written to test a software application can allow related test cases to 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. The annotations can also allow test cases to be identified that are relevant to code changes, such that testing times can be further reduced by executing a subset of test cases relevant to code changes instead of a full set of test cases.