White box code concurrency testing for transaction processing
US-2020065235-A1 · Feb 27, 2020 · US
US11860772B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11860772-B2 |
| Application number | US-202218070120-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 28, 2022 |
| Priority date | Feb 23, 2021 |
| Publication date | Jan 2, 2024 |
| Grant date | Jan 2, 2024 |
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 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.
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
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.