Parallel Software Testing With Isolated Database Instances
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software testing methods that run tests in parallel often result in database conflicts, such as table-locking errors and record-locking errors, due to tests attempting to access the same database instance concurrently, leading to increased testing time and potential code incompatibilities.
Innovation Solution
Distribute test cases among different instances of a software application, each associated with a separate database instance, allowing parallel execution to avoid database conflicts and reduce testing time.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If tests are executed sequentially to avoid database conflicts, then test reliability is maintained, but testing time increases significantly
Solution Approach 1:
The patent segments the test suite into multiple independent test sets that can be executed in parallel. Each test set is assigned to a separate thread and operates on its own isolated database instance, allowing concurrent execution without database conflicts. This segmentation enables the system to maintain reliability while reducing overall testing time from hours to minutes.
2Productivity
If tests are executed in parallel to reduce testing time, then productivity improves, but database conflicts and test errors increase
Solution Approach 1:
The patent creates multiple copies of the database instance, with each parallel test thread operating on its own isolated database copy. This copying approach allows tests to run in parallel with high productivity while maintaining test accuracy, as each test set has exclusive access to its database instance and cannot interfere with other concurrent tests.
3Speed
If multiple database instances are created to enable parallel testing, then testing speed increases, but system complexity increases
Solution Approach 1:
The patent changes the parameter of database instance isolation from single-shared to multiple-isolated instances, enabling parallel test execution at different speed levels. By adjusting this parameter, the system achieves faster testing speeds while managing complexity through automated instance management and teardown procedures.
Data Source
AI summary
Test cases written to test a software application can be dynamically distributed among a set of software application instances such that different sets of test cases can execute simultaneously in parallel, thereby speeding up testing relative to executing the test cases sequentially. To avoid database conflicts that may occur when different test cases are executed in parallel, each software application instance can be associated with a different database instance. Accordingly, a first test case executing in association with a first database instance can avoid interfering with a second test case executing in association with a second database instance.


