Dynamic Mock Output Store for Parallel Software Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In complex software systems, changes to one module often require extensive development and testing of downstream modules, making it difficult to generate desired output values, and existing methods like static mock responses are cumbersome and costly in terms of development time and computing power.

Innovation Solution

Implementing a mock-enabled software module that accesses a mock output store, allowing for dynamic generation of mock output values based on special input, which can be triggered to produce either normal or mock outputs, enabling flexible and parallel testing scenarios without modifying the software modules themselves.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If static mock response data is hard-coded into software modules, then downstream modules can be tested with predefined output values, but changing the mock output data requires changing and recompiling the software modules, which increases development time and computing costs

Engineering Contradiction:
Improvetesting capabilityVSAvoiddevelopment time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent creates a separate mock output store that contains copies of output data, allowing downstream modules to be tested with mock data without modifying the original upstream modules. This copying approach enables independent testing while preserving the original module integrity, eliminating the need for recompilation when test data needs to change.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent introduces a mock output store as an intermediary component between upstream and downstream modules. This mediator holds mock output data that can be dynamically configured and retrieved, allowing downstream modules to consume mock data without direct modification of upstream modules, thus avoiding recompilation requirements.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If trial-and-error testing is performed to determine input values that produce desired output values, then the changed module can generate needed output for downstream module testing, but the process becomes very time-consuming

Engineering Contradiction:
Improveoutput accuracyVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent pre-computes and stores mapping data that directly associates input values with output values in the mock output store. This preliminary action eliminates the need for time-consuming trial-and-error testing during actual testing, as the desired output values can be directly retrieved using the pre-established mappings.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements a mapping mechanism that provides direct feedback between input values and output values. Instead of requiring iterative trial-and-error testing, the system uses pre-established mappings to immediately determine which input values will produce the desired output values, significantly reducing testing time.

Inventive Principle:
Principle #23Feedback

3Productivity

If multiple different test scenarios need to be run simultaneously, then comprehensive testing can be performed, but hard-coded static mock responses restrict the ability to run multiple tests at once and coordinate different test groups

Engineering Contradiction:
Improvetesting throughputVSAvoidtest scenario flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent transforms the static, hard-coded mock response system into a dynamic one where the mock output store can be programmatically configured and modified at runtime. This dynamic approach allows multiple test scenarios to be activated simultaneously by simply changing the configuration data, without requiring module recompilation, thus enabling parallel testing and flexible coordination of different test groups.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent creates a universal mock output store that can serve multiple test scenarios and different test groups simultaneously. This multi-functional store can hold various sets of mock output data and can be configured to support different testing needs, allowing comprehensive parallel testing without the limitations of hard-coded static responses.

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Ease of manufacture

If control of changing test scenarios is taken out of testing professionals' hands by requiring software module changes, then mock output data can be modified, but testing professionals lose control and additional development overhead is created

Engineering Contradiction:
Improvemock data modificationVSAvoidtesting control
Core Design Contradiction:
Ease of manufactureVSEase of operation

Solution Approach 1:

The patent segments the testing control function from the software module code by creating a separate mock output store. This segmentation allows testing professionals to control and modify test scenarios through data configuration rather than code changes, maintaining their operational control while enabling easy mock data modification.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces the mock output store as an intermediary layer between testing professionals and the software modules. This mediator allows testing professionals to control test scenarios by configuring data in the store without needing to modify or recompile software modules, thus preserving their control while simplifying the modification process.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20200004664A1Automatic mock enablement in a multi-module software system
Publication Date: 2020.01.02 LENDINGCLUB BANK NAT ASSOC
  • US20200004664A1 patent drawing
  • US20200004664A1 patent drawing
  • US20200004664A1 patent drawing

AI summary

Embodiments allow a mock-enabled software module to access a store of mock output data. Sets of mock output values (“SMOVs”), stored within the mock output store, are mapped to one or more key input values. When input sent to a mock-enabled software module includes one or more key input values that map to a given SMOV, the SMOV is included in a mock response from a target module of the given SMOV. When a set of input values, sent to a mock-enabled software module, does not include key input values that map to a SMOV, the mock-enabled module produces output without triggering any mock response. The mock output store may contain one or more replacement templates that are used to replace one or more mock output values, in a mock response, with one or more corresponding input values from the set of input values received by the triggering module.