Software testing in parallel with different database instances

US11714745B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-11714745-B1
Application numberUS-202117333739-A
CountryUS
Kind codeB1
Filing dateMay 28, 2021
Priority dateFeb 23, 2021
Publication dateAug 1, 2023
Grant dateAug 1, 2023

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • 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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11714745B1 cover?
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 app…
Who is the assignee on this patent?
State Farm Mutual Automobile Insurance Co
What technology area does this patent fall under?
Primary CPC classification G06F11/3688. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 01 2023 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).