Database analysis service
US-10628394-B1 · Apr 21, 2020 · US
US11714745B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-11714745-B1 |
| Application number | US-202117333739-A |
| Country | US |
| Kind code | B1 |
| Filing date | May 28, 2021 |
| Priority date | Feb 23, 2021 |
| Publication date | Aug 1, 2023 |
| Grant date | Aug 1, 2023 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
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.
Opening claim text (preview).
What is claimed is: 1. A computer-implemented method, comprising: instantiating, by one or more processors of a computing device, a plurality of software application instances, wherein different software application instances of the plurality of software application instances: are executable copies of a software application that interacts with a database, and are configured to execute simultaneously in parallel on the computing device; instantiating, by the one or more processors, a plurality of database instances, wherein different database instances of the plurality of database instances: are separate instances of the database, correspond to the different software application instances, and are created as in-memory databases by the different software application instances after initiation of the different software application instances; dynamically distributing, by the one or more processors, a plurality of test cases among a plurality of test sets prior to execution of the plurality of test cases, wherein: the plurality of test cases is configured to test interactions between the software application and the database, and different test sets, of the plurality of test sets, correspond with the different software application instances; executing, by the one or more processors, the different test sets in parallel, in association with the different software application instances and the different database instances, wherein execution of the different test sets causes the different database instances to store different data; collecting, by the one or more processors, a plurality of test results associated with the plurality of test cases; and aggregating, by the one or more processors, the plurality of test results. 2. The computer-implemented method of claim 1 , wherein the plurality of database instances comprises record-locking databases. 3. The computer-implemented method of claim 1 , wherein: code of the plurality of test cases is expressed in a set of class files that each include one or more methods, and the one or more processors dynamically distribute the plurality of test cases, among the plurality of test sets prior to the execution of the plurality of test cases, at a class level by assigning different groups of one or more class files, of the set of class files, to the different test sets. 4. The computer-implemented method of claim 1 , further comprising: identifying, by the one or more processors, one or more failed test cases of the plurality of test cases based on execution of the different test sets in parallel; and re-executing, by the one or more processors, the one or more failed test cases, wherein aggregating the plurality of test results comprises determining whether all test cases in the plurality of test cases succeeded during at least one of: execution of the different test sets in parallel, or re-execution of the one or more failed test cases. 5. The computer-implemented method of claim 1 , wherein the plurality of software application instances and the plurality of database instances are instantiated in a plurality of virtual machines executing on the computing device. 6. The computer-implemented method of claim 1 , wherein the different software application instances, of the plurality of software application instances, are each associated with a different processing thread on the computing device. 7. The computer-implemented method of claim 1 , wherein the different software application instances, of the plurality of software application instances, are each associated with a different set of parallel threads on the computing device. 8. The computer-implemented method of claim 7 , further comprising: distributing, by the one or more processors, a group of test cases of a particular test set among a plurality of test subsets, wherein the particular test set and the plurality of test subsets are associated with a particular software application instance and a particular database instance; and executing, by the one or more processors, the group of test cases in parallel, wherein different test subsets of the plurality of test subsets execute: via different parallel threads associated with the particular software application instance, and in association with the particular database instance. 9. The computer-implemented method of claim 1 , wherein: code of the plurality of test cases is expressed in a set of class files that each include one or more methods, and the one or more processors distribute the plurality of test cases, among the plurality of test sets prior to execution of the plurality of test cases, at a method level by assigning different groups of methods, from across the set of class files, to the different test sets. 10. The computer-implemented method of claim 1 , wherein dynamically distributing the plurality of test cases among the plurality of test sets, prior to the execution of the plurality of test cases, comprises: determining predicted execution times associated with the plurality of test cases; and distributing the plurality of test cases, among the plurality of test sets, based on the predicted execution times. 11. A computing device, comprising: one or more processors; memory storing computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising: identifying a plurality of test cases that is configured to test interactions between a software application and a database; instantiating, in the memory, a plurality of database instances, wherein different database instances of the plurality of database instances: are separate instances of the database, correspond with different executable copies of the software application, and are created as in-memory databases in association with the different executable copies of the software application after initiation of the different executable copies of the software application; dynamically distributing the plurality of test cases, among the different executable copies of the software application, prior to execution of the plurality of test cases; executing a first test set of the plurality of test cases, in association with a first executable copy of the software application and a first database instance of the plurality of database instances; executing a second test set of the plurality of test cases, in association with a second executable copy of the software application and a second database instance of the plurality of database instances, wherein: the first test set and the second test set execute in parallel, and execution of the first test set and the second test causes the first database instance and the second database instance to store different data; collecting a plurality of test results associated with the plurality of test cases; and aggregating the plurality of test results. 12. The computing device of claim 11 , wherein the operations further comprise: identifying one or more failed test cases of the plurality of test cases; and re-executing the one or more failed test cases, wherein aggregating the plurality of test results comprises determining whether all test cases in the first test set and the second test set succeeded during at least one of: execution of the first test set and the second test set in parallel, or re-execution of the one or more failed test cases. 13. The computing device of claim 11 , wherein the operations further comprise: creating a plurality of virtual machines on the computing device; and associating the different executable copies of the software application w
for test execution, e.g. scheduling of test suites · CPC title
Program synchronisation; Mutual exclusion, e.g. by means of semaphores · CPC title
for test results analysis · CPC title
between a Database Management System and a front-end application · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.