Software testing in parallel threads with a record-locking database

US11860772B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11860772-B2
Application numberUS-202218070120-A
CountryUS
Kind codeB2
Filing dateNov 28, 2022
Priority dateFeb 23, 2021
Publication dateJan 2, 2024
Grant dateJan 2, 2024

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 different sets of test cases that can be executed simultaneously in different parallel threads, thereby speeding up testing relative to executing the test cases sequentially in a single thread. To avoid database conflicts that may occur when different test cases in different parallel threads attempt to access the same database simultaneously, testing of the software application can be performed in association with a record-locking database that locks database records individually instead of locking entire database tables or locking data structures that are larger than individual records. Locking individual database records can reduce and/or eliminate the chances that a test case in one parallel thread will be unable to access a record in the database because another test case in another parallel thread is simultaneously accessing the same database.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method, comprising: distributing a plurality of test cases, configured to test interactions between a software application and a database, among a plurality of test sets; executing at least a first test set and a second test set, of the plurality of test sets, in parallel; locking, based on a first access attempt by a first test case in the first test set, a first record in the database; and granting a second test case in the second test set, based on a second access attempt by the second test case, access to a second record in the database while the first record is locked. 2. The computer-implemented method of claim 1 , wherein: the plurality of test cases comprises a set of classes, individual classes, of the set of classes, comprise one or more methods, the one or more methods are functions written in a programming language, and the distributing is performed at one or more of: a class level associated with the set of classes, or a method level associated with the one or more methods. 3. The computer-implemented method of claim 1 , further comprising: executing a third test set, of the plurality of test sets, in parallel with the first test set and the second test set; detecting a third access attempt, by a third test case in the third test set, to access the first record while the first record is locked; and blocking the third access attempt by the third test case based on the first record being locked. 4. The computer-implemented method of claim 3 , further comprising: determining that the first record is unlocked following the first access attempt by the first test case; and retrying execution of the third test case based on determining that the first record is unlocked. 5. The computer-implemented method of claim 1 , wherein the database is instantiated based on loading or instantiation of the software application. 6. The computer-implemented method of claim 1 , wherein the plurality of test cases was created based on an expectation of individual test cases, of the plurality of test cases, being executed in a sequential execution order. 7. The computer-implemented method of claim 1 , further comprising: collecting test results associated with the plurality of test sets, based on execution of the plurality of test sets in parallel, and combining the test results into an aggregated test result report. 8. The computer-implemented method of claim 1 , wherein the distributing of the plurality of test cases among the plurality of test sets is based at least in part on predicting execution times of different test sets of the plurality of test sets. 9. 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: distributing individual test cases, of a plurality of test cases configured to test interactions between a software application and a database, among a plurality of test sets; simultaneously executing the plurality of test sets in parallel; and granting different test cases, in different test sets of the plurality of test sets, simultaneous access to different records in the database while the different test cases are executing in parallel. 10. The computing device of claim 9 , wherein: the plurality of test cases comprises a set of classes, individual classes, of the set of classes, comprise one or more methods, and the distributing is performed at one or more of: a class level associated with the set of classes, or a method level associated with the one or more methods. 11. The computing device of claim 9 , wherein the operations further comprise: loading the software application, and instantiating the database in response to loading the software application. 12. The computing device of claim 9 , wherein the operations further comprise: at a first time, blocking a first test case in a first test set from accessing a particular record in the database during access of the particular record by a second test case in a second test set; and at a second time after the second test case has finished accessing the particular record, granting the first test case access to the particular record. 13. The computing device of claim 9 , wherein the plurality of test cases was created based on an expectation of the individual test cases being executed in a sequential execution order. 14. The computing device of claim 9 , wherein the operations further comprise: collecting test results associated with the plurality of test sets, based on execution of the plurality of test sets in parallel; and combining the test results into an aggregated test result report. 15. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed by one or more processors, cause the one or more processors to perform operations, comprising: distributing a plurality of test cases, configured to test interactions between a software application and a database, among a plurality of test sets; executing at least a first test set and a second test set, of the plurality of test sets, in parallel; locking, based on a first access attempt by a first test case in the first test set, a first record in the database; and granting a second test case in the second test set, based on a second access attempt by the second test case, access to a second record in the database while the first record is locked. 16. The one or more non-transitory computer-readable media of claim 15 , wherein: the plurality of test cases comprises a set of classes, individual classes, of the set of classes, comprise one or more methods, and the distributing is performed at one or more of: a class level associated with the set of classes, or a method level associated with the one or more methods. 17. The one or more non-transitory computer-readable media of claim 15 , wherein the operations further comprise: executing a third test set, of the plurality of test sets, in parallel with the first test set and the second test set; detecting a third access attempt, by a third test case in the third test set, to access the first record while the first record is locked; blocking the third access attempt by the third test case based on the first record being locked; determining that the first record is unlocked following the first access attempt by the first test case; and retrying execution of the third test case based on determining that the first record is unlocked. 18. The one or more non-transitory computer-readable media of claim 15 , wherein the plurality of test cases was created based on an expectation of individual test cases, of the plurality of test cases, being executed in a sequential execution order. 19. The one or more non-transitory computer-readable media of claim 15 , wherein the operations further comprise: collecting test results associated with the plurality of test sets, based on execution of the plurality of test sets in parallel, and combining the test results into an aggregated test result report. 20. A system for software testing in parallel, the system comprising: means for distributing a plurality of test cases, configured to test interactions between a software application and a database, among a plurality of test sets, means for executing at least a first test set and a second test set, of the plurality of test sets, in paralle

Assignees

Inventors

Classifications

  • Environments for analysis, debugging or testing of software · CPC title

  • for test execution, e.g. scheduling of test suites · CPC title

  • Encoding · CPC title

  • for test design, e.g. generating new test cases · CPC title

  • for test results analysis · 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 US11860772B2 cover?
Test cases written to test a software application can be dynamically distributed among different sets of test cases that can be executed simultaneously in different parallel threads, thereby speeding up testing relative to executing the test cases sequentially in a single thread. To avoid database conflicts that may occur when different test cases in different parallel threads attempt to access…
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 Jan 02 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). 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).