Software testing in parallel with different database instances
AssigneeState Farm Mutual Automobile Insurance Company
InventorsShaktiraj Chauhan, Nate Shepherd
Life of this patent
Estimating the term…
Abstract
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.
Claims20
A method, comprising:
- dynamically distributing, by a processor, a group of test cases into different test sets prior to initiating execution of the group of test cases in association with parallel testing of a software application, wherein the group of test cases;
- is configured to test interactions between the software application and a database, and
- was initially configured for execution of individual test cases, of the group of test cases, in a sequential execution order in association with a same instance of the database;
- initiating, by the processor, different software application instances of the software application, wherein after initiation of the different software application instances:
- the different software application instances execute to create, as tightly-coupled in-memory databases, different database instances of the database that respectively correspond to the different software application instances;
- and
- executing, by the processor, the different test sets in parallel in association with corresponding instances of:
- the different software application instances, and
- the different database instances that respectively correspond to the different software application instances,
- wherein executing the different test sets in parallel causes the individual test cases to be executed in an order that differs from the sequential execution order.
A computing device, comprising:
- a processor;
- and
- memory storing computer-executable instructions that, when executed by the processor, cause the processor to perform operations comprising:
- dynamically distributing a group of test cases into at least a first test set and a second test set prior to initiating execution of the group of test cases in association with parallel testing of a software application, wherein the group of test cases:
- is configured to test interactions between the software application and a database, and
- was initially configured for execution of individual test cases, of the group of test cases, in a sequential execution order in association with a same instance of the database;
- initiating a first software application instance of the software application and a second software application instance of the software application, wherein the initiating causes:
- the first software application instance to, after initiation of the first software application instance, execute to create a first database instance of the database as a first in-memory database that corresponds to the first software application instance, and
- the second software application instance to, after initiation of the second software application instance, execute to create a second database instance of the database as a second in-memory database that corresponds to the second software application instance;
- and
- executing the first test set and the second test set in parallel, wherein:
- the first test set executes in association with the first software application instance and the first database instance,
- the second test set executes in association with the second software application instance and the second database instance, and
- executing the first test set and the second test set in parallel causes the individual test cases to be executed in an order that differs from the sequential execution order.
One or more non-transitory computer-readable media storing computer-executable instructions that, when executed by a processor, cause the processor to perform operations comprising:
- dynamically distributing a group of test cases into different test sets prior to initiating execution of the group of test cases in association with parallel testing of a software application, wherein the group of test cases:
- is configured to test interactions between the software application and a database, and
- was initially configured for execution of individual test cases, of the group of test cases, in a sequential execution order in association with a same instance of the database;
- initiating different software application instances of the software application, wherein after initiation of the different software application instances:
- the different software application instances execute to create, as in-memory databases, different database instances of the database that respectively correspond to the different software application instances;
- and
- executing the different test sets in parallel in association with corresponding instances of:
- the different software application instances, and
- the different database instances that respectively correspond to the different software application instances,
- wherein executing the different test sets in parallel causes the individual test cases to be executed in an order that differs from the sequential execution order.
A system comprising:
- means for dynamically distributing a group of test cases into different test sets prior to initiating execution of the group of test cases in association with parallel testing of a software application, wherein the group of test cases:
- is configured to test interactions between the software application and a database, and
- was initially configured for execution of individual test cases, of the group of test cases, in a sequential execution order in association with a same instance of the database;
- means for initiating different software application instances of the software application, wherein after initiation of the different software application instances:
- the different software application instances execute to create, as in-memory databases, different database instances of the database that respectively correspond to the different software application instances;
- and
- means for executing the different test sets in parallel in association with corresponding instances of:
- the different software application instances, and
- the different database instances that respectively correspond to the different software application instances,
- wherein executing the different test sets in parallel causes the individual test cases to be executed in an order that differs from the sequential execution order.
Dependencies are inferred from the claim text.