Test conflict guard for parallel software testing

US2024045792A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2024045792-A1
Application numberUS-202318482772-A
CountryUS
Kind codeA1
Filing dateOct 6, 2023
Priority dateFeb 23, 2021
Publication dateFeb 8, 2024
Grant date

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.

In association with unit and integration testing of a software application, a test conflict guard can detect whether test cases are independent and use distinct database data, or are related or dependent test cases that use the same database data. The test conflict guard can detect any related or dependent test cases in a group of test cases, which may cause testing errors if executed in different parallel threads. The test conflict guard can accordingly block test execution until the group of test cases are verified as independent test cases.

First claim

Opening claim text (preview).

What is claimed is: 1 . A computer-implemented method, comprising: blocking, by one or more processors, initiation of testing of a software application based on identification of a conflict between at least two test cases of a plurality of test cases, wherein the conflict is identified via a first analysis of source code performed, by the one or more processors, without executing the plurality of test cases; unblocking, by the one or more processors, the initiation of the testing based on a determination that the conflict has been resolved, wherein the determination that the conflict has been resolved is made via a second analysis of the source code performed, by the one or more processors, without executing the plurality of test cases; and initiating, by the one or more processors, and based on the unblocking, the testing by executing a plurality of test sets in parallel, the plurality of test sets comprising test cases distributed from among the plurality of test cases. 2 . The computer-implemented method of claim 1 , wherein: the first analysis of the source code is performed at a first time, and the second analysis of the source code is performed at a second time following at least one change to the source code made after the first time. 3 . The computer-implemented method of claim 1 , wherein the conflict between the at least two test cases is based on the source code being configured to cause the at least two test cases to access at least one of: a same global variable, a same database table, a same database record, or a same attribute of a database record. 4 . The computer-implemented method of claim 3 , wherein the second analysis of the source code determines that at least one change to the source code has reconfigured the at least two test cases to no longer access the at least one of the same global variable, the same database table, the same database record, or the same attribute of the database record. 5 . The computer-implemented method of claim 1 , wherein: the blocking of the initiation of the testing comprises preventing distribution of the test cases, from among the plurality of test cases, to the plurality of test sets to be executed in parallel, and the unblocking of the initiation of the testing comprises enabling the distribution of the test cases to the plurality of test sets. 6 . The computer-implemented method of claim 1 , wherein: a test case, of the at least two test cases associated with the conflict, is a draft test case prepared via a programming tool, the blocking of the initiation of the testing comprises preventing the programming tool from saving the draft test case, and the blocking of the initiation of the testing comprises enabling the saving of the draft test case. 7 . The computer-implemented method of claim 1 , wherein: a test case, of the at least two test cases associated with the conflict, is a draft test case prepared via a programming tool, and the blocking of the initiation of the testing comprises causing the programming tool to display a warning message that identifies one or more portions of the source code associated with the conflict between the at least two test cases. 8 . The computer-implemented method of claim 1 , wherein: the source code is checked out from a main code branch, and the blocking of the initiation of the testing comprises preventing merge operations to merge changes made to the source code into the main code branch. 9 . The computer-implemented method of claim 8 , wherein the blocking of the initiation of the testing comprises: preventing the merge operations to prevent main branch testing, and allowing local testing that is not associated with the main code branch. 10 . 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 rather than being executed in parallel. 11 . The computer-implemented method of claim 1 , wherein the plurality of test sets comprises test cases distributed, from among the plurality of test cases, based at least in part on predicting execution times of different test sets of the plurality of test sets. 12 . A computing system, comprising: one or more processors; and 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, via a first analysis of source code associated with a plurality of test cases performed without executing the plurality of test cases, a conflict between at least two test cases of the plurality of test cases; blocking, based on identification of the conflict, initiation of testing of a software application; determining, via a second analysis of the source code performed without executing the plurality of test cases, that the conflict has been resolved; unblocking, based on determining that the conflict has been resolved, the initiation of the testing; and initiating, based on the unblocking, the testing by executing a plurality of test sets in parallel, wherein the plurality of test sets comprises test cases distributed from among the plurality of test cases. 13 . The computing system of claim 12 , wherein: the blocking of the initiation of the testing comprises preventing distribution of the test cases, from among the plurality of test cases, to the plurality of test sets to be executed in parallel, and the unblocking of the initiation of the testing comprises enabling the distribution of the test cases to the plurality of test sets. 14 . The computing system of claim 12 , wherein: a test case, of the at least two test cases associated with the conflict, is a draft test case prepared via a programming tool, the blocking of the initiation of the testing comprises preventing the programming tool from saving the draft test case, and the blocking of the initiation of the testing comprises enabling the saving of the draft test case. 15 . The computing system of claim 12 , wherein: a test case, of the at least two test cases associated with the conflict, is a draft test case prepared via a programming tool, and the blocking of the initiation of the testing comprises causing the programming tool to display a warning message that identifies one or more portions of the source code associated with the conflict between the at least two test cases. 16 . A software testing system, comprising: a test manager configured, based on computer-executable instructions, to: distribute a plurality of test cases, configured to test a software application, among a plurality of test sets; and execute the plurality of test sets in parallel; and a test conflict guard configured, based on the computer-executable instructions, to: block the test manager from initiating testing of the software application based on identifying, via a first analysis of source code performed without executing the plurality of test cases, a conflict between at least two test cases of the plurality of test cases; and unblock the test manager from initiating the testing based on determining, via a second analysis of the source code performed without executing the plurality of test cases, that the conflict has been resolved. 17 . The software testing system of claim 16 , wherein the test conflict guard: is associated with a programming tool configured to at least one of view or edit the source code, and causes the programming tool to di

Assignees

Inventors

Classifications

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

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

  • Encoding · CPC title

  • Software maintenance or management · 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 US2024045792A1 cover?
In association with unit and integration testing of a software application, a test conflict guard can detect whether test cases are independent and use distinct database data, or are related or dependent test cases that use the same database data. The test conflict guard can detect any related or dependent test cases in a group of test cases, which may cause testing errors if executed in differ…
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 Thu Feb 08 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).