Concurrent Integration Test Framework for Multi-User Simulation
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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
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.
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
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.
Data Source
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.


