Concurrent Integration Test Framework for Multi-User Simulation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional integration test cases are executed sequentially, failing to capture software code behavior in multi-user environments, leading to missed performance and stress test scenarios, database locking issues, and untested static class usages, which are critical for simulating real-world concurrent user conditions.

Innovation Solution

A method and system for simulating a multi-user test environment that allows concurrent execution of integration tests by dissociating the target assembly from the executing assembly, using a parallel task library to run tests multiple times, thereby preventing locking and enabling the testing of performance and stress scenarios under expected loads.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If integration test cases are executed sequentially, then the test execution is simple and manageable, but the software code behavior in multi-user environment cannot be captured

Engineering Contradiction:
Improvetest execution simplicityVSAvoidmulti-user environment testing accuracy
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The test execution process is segmented into multiple independent test runs, each simulating a user session. The test framework divides the integration test suite into separate executions that can run concurrently, with each execution representing a different user interacting with the software. This segmentation allows multi-user scenarios to be tested while maintaining manageable individual test cases.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An intermediary test framework layer is introduced between the test cases and the software under test. This framework manages the complexity of multi-user simulation by handling test orchestration, data persistence across executions, and coordinate management. The intermediary absorbs the complexity, allowing simple individual test cases to collectively represent complex multi-user scenarios.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If performance tests are performed after development is complete, then development can proceed without interruptions, but the time for performing performance test is too late and inappropriate

Engineering Contradiction:
Improvedevelopment speedVSAvoidtime for performance testing
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

Performance and multi-user testing capabilities are built into the integration test framework during the development phase. Developers can execute multi-user simulation tests concurrently with development activities, performing testing actions in advance rather than waiting until development completion. This preliminary testing approach identifies issues earlier without significantly impacting development productivity.

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If target assembly is used directly in test execution, then test setup is simple, but the target assembly gets locked and prevents concurrent execution

Engineering Contradiction:
Improvetest setup complexityVSAvoidconcurrent test execution capability
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

Instead of directly using the target assembly during test execution, the framework creates a copy or representation of the assembly that can be safely loaded and executed. This copying approach allows multiple test executions to run concurrently without locking conflicts, as each execution works with its own instance rather than sharing the original assembly lock.

Inventive Principle:
Principle #26Copying

4Use of energy by moving object

If sequential execution of integration tests is used, then resource consumption is low, but database locking and deadlock issues are not tested

Engineering Contradiction:
Improveresource consumptionVSAvoiddatabase concurrency issue detection
Core Design Contradiction:
Use of energy by moving objectVSReliability

Solution Approach 1:

The framework implements partial concurrency by allowing a configurable number of test executions to run simultaneously, rather than full parallel execution. This partial action approach detects database locking and deadlock issues that require multiple concurrent users, while controlling resource consumption through configurable concurrency levels. The testing is excessive enough to reveal concurrency problems but constrained to manage resources.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10353809B2System and method for executing integration tests in multiuser environment
Publication Date: 2019.07.16 TATA CONSULTANCY SERVICES LTD
  • US10353809B2 patent drawing
  • US10353809B2 patent drawing
  • US10353809B2 patent drawing

AI summary

System and method for executing integration tests for testing software code are disclosed. The system comprises multi-user integrated test framework to simulate a multi-user test environment for executing integration tests concurrently. Multi-user integrated test framework receives ā€˜N’ as number of concurrent users for integration test project comprising integration tests associated with software code. The multi-user integrated test framework simulates multi-user test environment comprising locating a target assembly associated with the integration test project and generating executing assembly by using the integration tests from the target assembly. Simulating the multi-user test environment further comprises dissociating target assembly from executing assembly such that target assembly is prevented from locking and concurrently executing the integration tests, N number of times, by using executing assembly and parallel task library to obtain outcome of each of the plurality of the integration tests.