Testcase Synchronization via Phase Events

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software testing in enterprise data processing environments is time-consuming due to the complexity of modern software applications and the need to execute testcases across multiple hosts and platforms, often resulting in race conditions that require synchronization of testcase processes.

Innovation Solution

A method for executing testcases in a sequence of phases with asynchronous execution across multiple processes, using synchronization events triggered externally to manage synchronization, allowing each phase to initiate only upon completion of the previous phase, thereby mitigating race conditions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If testcases are executed across multiple hosts and platforms simultaneously, then testing coverage and productivity are improved, but race conditions occur requiring complex synchronization mechanisms

Engineering Contradiction:
Improvetesting efficiencyVSAvoidexecution correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The testcase is divided into multiple phases, where each phase represents a distinct execution stage. This segmentation allows different phases to be executed independently on different hosts while maintaining a clear execution sequence, thereby enabling parallel testing without race conditions between phases.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A synchronization event is established before each phase execution to ensure that all processes are ready and properly initialized before the phase begins. This preliminary synchronization action prevents race conditions by ensuring consistent initial states across all hosts before execution starts.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If multiple testcase processes execute concurrently to cover multiple platforms, then testing throughput increases, but synchronization complexity increases to manage race conditions

Engineering Contradiction:
Improvetesting throughputVSAvoidsynchronization mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

A centralized synchronization event acts as an intermediary between all testcase processes. Instead of each process managing its own synchronization, the external synchronization event coordinates all phase transitions, simplifying the synchronization mechanism while enabling concurrent execution across multiple platforms.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

Multiple synchronization requirements are merged into a single external synchronization event that all processes wait for. This consolidation reduces the complexity of managing multiple synchronization mechanisms while maintaining the ability to execute testcases concurrently across different hosts and platforms.

Inventive Principle:
Principle #5Merging (Combining)

3Reliability

If testcases are broken into phases for synchronized execution, then race conditions are mitigated, but execution time increases due to sequential phase dependencies

Engineering Contradiction:
Improveexecution correctnessVSAvoidtestcase execution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The execution model dynamically adapts to platform-specific requirements while maintaining phase synchronization. Each phase can be executed asynchronously on different hosts once the synchronization event is triggered, allowing the system to optimize execution time while preserving the correctness guarantees of synchronized phase transitions.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS7984427B2System and methods for synchronizing software execution across data processing systems and platforms
Publication Date: 2011.07.19 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US7984427B2 patent drawing
  • US7984427B2 patent drawing
  • US7984427B2 patent drawing

AI summary

Systems and methods for software automation are provided. Software testcases are distributed across multiple data processing systems (equivalently, “machines” or “hosts”) that may collectively include multiple platforms (equivalently, “operating systems”). A testcase may be executed as one or more processes progressing through a sequence of phases, with execution within a phase being asynchronous among processes. Synchronization of the testcase processes across the data processing systems and platforms may be effected by managing an event; the testcase processes block on the event upon completion of the current testcase phase. A testcase phase execution service on each host handles synchronization events. The definition of the testcase may include metadata that identifies the particular phases in sequence, that is phase names, for the testcase; the phase names identifies the phases to the synchronization process that triggers the synchronization events which initiate each succeeding phase of the testcase.