Event-Driven Failure Simulation Framework for Java Software

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software testing methods are inadequate for simulating realistic error scenarios, especially when interacting with distributed and third-party software, as they require intrusive techniques or reliance on inaccurate mock implementations, failing to accurately model failure scenarios without manipulating the actual code.

Innovation Solution

A framework that uses Java Debugging Interfaces to monitor Java processes for specific events, allowing arbitrary routines to be executed in response, simulating failures and analyzing software states without altering the monitored code, including scenarios like communication loss or security information manipulation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If intrusive techniques are used to create special test builds with error simulations introduced into the software itself, then functional testing can be performed, but the software development process is threatened and the testing accuracy is insufficient

Engineering Contradiction:
Improvetesting accuracyVSAvoidsoftware development process
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a testing framework as an intermediary layer between the test system and the software under test. This framework uses event monitoring and reaction mechanisms to simulate failures without modifying the software code itself, thereby maintaining testing accuracy while avoiding intrusion into the software development process

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

Instead of modifying the original software code to create test builds, the patent creates a virtual copy of failure scenarios through event monitoring and reaction mechanisms. This allows failure simulation without altering the actual software, resolving the contradiction between testing accuracy and development process integrity

Inventive Principle:
Principle #26Copying

2Ease of operation

If mock implementations are used to simulate third-party software failures, then testing can be performed without actual third-party systems, but the potentially unexpected behavior of the actual system is lost and accuracy relies on third-party implementations

Engineering Contradiction:
Improvetesting capabilityVSAvoidfailure simulation accuracy
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent implements a feedback mechanism where the testing framework monitors actual software execution events and triggers appropriate failure reactions. This feedback loop ensures that the simulated failures accurately reflect real-world scenarios while maintaining ease of testing without requiring actual third-party systems

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The framework enables the software under test to essentially test itself by monitoring its own execution events and triggering failure scenarios through predefined reactions. This self-service capability eliminates the need for external mock implementations while maintaining high accuracy in failure simulation

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS7877733B2Failure test framework
Publication Date: 2011.01.25 ORACLE INT CORP
  • US7877733B2 patent drawing
  • US7877733B2 patent drawing
  • US7877733B2 patent drawing

AI summary

A framework by which arbitrary routines may be executed in reaction to specific events for analysis and testing, while avoiding the need to manipulate the actual code being monitored. A method for performing functional failure testing of a software-based system comprises monitoring execution of target software for occurrence of a specified event, in response to detecting occurrence of the specified event, performing an action to cause or simulate a failure of the target software or of software or hardware that operatively interacts with the target software, and monitoring the target software for a response to the performed action.