Software testing in parallel threads with a record-locking database

US11537508B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-11537508-B1
Application numberUS-202117333535-A
CountryUS
Kind codeB1
Filing dateMay 28, 2021
Priority dateFeb 23, 2021
Publication dateDec 27, 2022
Grant dateDec 27, 2022

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: instantiating, by one or more processors of a computing device, a record-locking database associated with a software application; identifying, by the one or more processors, a plurality of test cases associated with the software application; distributing, by the one or more processors, individual test cases of the plurality of test cases among a plurality of test sets, wherein different test sets of the plurality of test sets are configured to execute simultaneously in different parallel threads on the computing device; locking, by the one or more processors, a first record in the record-locking database based on an access attempt by a first test case executing via a first parallel thread; and granting, by the one or more processors, a second test case access to a second record in the record-locking database while the first record is locked, wherein the second test case executes, via a second parallel thread, substantially simultaneously with the first test case executing via the first parallel thread. 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, and the one or more methods are functions written in a programming language. 3. The computer-implemented method of claim 2 , wherein the distributing is performed at a class level. 4. The computer-implemented method of claim 2 , wherein the distributing is performed at a method level. 5. The computer-implemented method of claim 1 , further comprising: detecting, by the one or more processors, an attempt by a third test case to access the first record while the first record is locked, wherein the third test case executes, via a third parallel thread, substantially simultaneously with the first test case executing via the first parallel thread; determining, by the one or more processors, that the first record is unlocked following the access attempt by the first test case; and retrying, by the one or more processors, execution of the third test case based on determining that the first record is unlocked. 6. The computer-implemented method of claim 1 , wherein the record-locking database is an in-memory database. 7. The computer-implemented method of claim 1 , further comprising: generating, by the one or more processors, a local build of the software application based on code changes submitted locally, wherein the instantiating, the identifying, the distributing, the locking, and the granting are performed as part of a test process for the local build. 8. The computer-implemented method of claim 1 , further comprising: generating, by the one or more processors, a merge build of the software application based on code changes submitted locally and based on a master code branch associated with the software application, wherein the instantiating, the identifying, the distributing, the locking, and the granting are performed as part of a test process for the merge build. 9. The computer-implemented method of claim 1 , further comprising: collecting, by the one or more processors, a plurality of test results associated with the plurality of test sets configured to execute simultaneously in the different parallel threads; and generating, by the one or more processors, an aggregated test result report by combining the plurality of test results. 10. 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: instantiating a record-locking database associated with a software application; identifying a plurality of test cases associated with the software application; distributing individual test cases of the plurality of test cases among a plurality of test sets, wherein the plurality of test sets corresponds to a plurality of parallel threads; and simultaneously executing the plurality of test sets via the plurality of parallel threads, wherein the record-locking database permits different test cases of the plurality of test cases, executing via different parallel threads of the plurality of parallel threads, to simultaneously access different records in the record-locking database. 11. The computing device of claim 10 , wherein the plurality of test cases comprises a set of classes, and individual classes of the set of classes comprise one or more methods. 12. The computing device of claim 11 , wherein the distributing is performed at a class level. 13. The computing device of claim 11 , wherein the distributing is performed at a method level. 14. The computing device of claim 10 , wherein the record-locking database is an in-memory database. 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: instantiating a record-locking database associated with a software application; identifying a plurality of test cases associated with the software application; distributing individual test cases of the plurality of test cases among a plurality of test sets, wherein different test sets of the plurality of test sets are configured to execute simultaneously in different parallel threads; locking a first record in the record-locking database based on an access attempt by a first test case executing via a first parallel thread; and granting a second test case access to a second record in the record-locking database while the first record is locked, wherein the second test case executes, via a second parallel thread, substantially simultaneously with the first test case executing via the first parallel thread. 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 or a method level. 17. The one or more non-transitory computer-readable media of claim 15 , wherein the operations further comprise: detecting an attempt by a third test case to access the first record while the first record is locked, wherein the third test case executes, via a third parallel thread, substantially simultaneously with the first test case executing via the first parallel thread; determining that the first record is unlocked following the 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 record-locking database is an in-memory database. 19. The one or more non-transitory computer-readable media of claim 15 , wherein the operations further comprise: generating a new build of the software application based at least in part on code changes, wherein the instantiating, the identifying, the distributing, the locking, and the granting are performed as part of a test process for the new build. 20. The one or more non-transitory computer-readable media of claim 15 , wherein the operations further comprise: collecting a plurality of test results associated with the plurality of test sets configured to execute simultaneously in the different parallel t

Assignees

Inventors

Classifications

  • for test results analysis · CPC title

  • Locking methods, e.g. distributed locking or locking implementation details · CPC title

  • Encoding · CPC title

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

  • for test execution, e.g. scheduling of test suites · 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 US11537508B1 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 G06F16/2343. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 27 2022 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).