IP Library › Granted Patent US 9,921,951
Granted Patent B2
US 9,921,951 · App. 15/175,519 · Granted Mar 20, 2018

Optimizations for regression tracking and triaging in software testing

Inventors: Richard Rauenzahn (Palo Alto, CA); Michael Wenig (Palo Alto, CA)
Assignee: VMWARE, INC.
G06F11/3688
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,921,951
App. No.
15/175,519
Granted
Mar 20, 2018
Kind
B2
Abstract

An example system configured to perform regression tracking and triaging includes a processor and memory coupled with the processor. The memory is configured to provide the processor with instructions to schedule the testing of a first list of equidistant revisions associated with a software application. The memory is configured to provide the processor with instructions to schedule the testing of a second list of equidistant revisions associated with the software application. The memory is further configured to provide the processor with instructions to, for a first revision selected from the first list of equidistant revisions and a second revision selected from the second list of equidistant revisions, upon a determination that an equidistance between the first revision and the second revision is below a predetermined threshold, test the second revision using a first build generated based on the first revision, wherein the first build is executable by the processor.

Claims (47)

1. A system configured to perform regression tracking and triaging, the system comprising a processor and memory coupled with the processor, wherein the memory is configured to provide the processor with instructions for:

scheduling testing of a first list of equidistant revisions associated with a software application, wherein the equidistant revisions have a common difference in distance between two adjacent revisions in the first list;

scheduling testing of a second list of equidistant revisions associated with the software application, wherein the equidistant revisions have a common difference in distance between two adjacent revisions in the second list; and

for a first revision selected from the first list of equidistant revisions and a second revision selected from the second list of equidistant revisions, upon a determination that an equidistance between the first revision and the second revision is below a predetermined threshold, testing the second revision using a first build generated based on the first revision, wherein the first build is executable by the processor.

2. The system of claim 1 , wherein the memory is further configured to provide the processor with instructions for:

if a regression is detected during the testing of the second revision, performing a binary search to identify a regression revision of the software application having a first occurrence of the regression.

3. The system of claim 2 , wherein the performing of the binary search comprising:

identifying a non-regressing revision of the software application;

selecting a first middle revision between the non-regressing revision and the second revision for testing; and

if the regression is detected when testing the first middle revision, performing recursive binary search based on the non-regressing revision and the first middle revision until the regression revision is identified.

4. The system of claim 3 , wherein the performing of the binary search further comprising:

if the regression is not detected when testing the first middle revision, performing recursive binary search based on the first middle revision and the second revision until the regression revision is identified.

5. The system of claim 3 , wherein the performing of the binary search further comprising:

concurrent to the testing of the middle revision, generating a second build and a third build, wherein the second build is based on a second middle revision between the non-regressing revision and the first middle revision, and the third build is based on a third middle revision between the first middle revision and the second revision;

if the regression is detected when testing the first middle revision, using the second build in identifying the regression revision; and

if the regression is not detected when testing the first middle revision, using the third build in identifying the regression revision.

6. A method for a processor to perform regression tracking and triaging, the method comprising:

scheduling testing of a first list of equidistant revisions associated with a software application, wherein the equidistant revisions have a common difference in distance between two adjacent revisions in the first list;

scheduling testing of a second list of equidistant revisions associated with the software application, wherein the equidistant revisions have a common difference in distance between two adjacent revisions in the second list; and

for a first revision selected from the first list of equidistant revisions and a second revision selected from the second list of equidistant revisions, upon a determination that an equidistance between the first revision and the second revision is below a predetermined threshold, testing the second revision using a first build generated based on the first revision, wherein the first build is executable by the processor.

7. The method of claim 6 , further comprising:

if a regression is detected during the testing of the second revision, performing a binary search to identify a regression revision of the software application having a first occurrence of the regression.

8. The method of claim 7 , wherein the performing of the binary search comprising:

identifying a non-regressing revision of the software application;

selecting a first middle revision between the non-regressing revision and the second revision for testing; and

if the regression is detected when testing the first middle revision, performing recursive binary search based on the non-regressing revision and the first middle revision until the regression revision is identified.

9. The method of claim 8 , wherein the performing of the binary search further comprising:

if the regression is not detected when testing the first middle revision, performing recursive binary search based on the first middle revision and the second revision until the regression revision is identified.

10. The method of claim 8 , wherein the performing of the binary search further comprising:

concurrent to the testing of the middle revision, generating a second build and a third build, wherein the second build is based on a second middle revision between the non-regressing revision and the first middle revision, and the third build is based on a third middle revision between the first middle revision and the second revision;

if the regression is detected when testing the first middle revision, using the second build in identifying the regression revision; and

if the regression is not detected when testing the first middle revision, using the third build in identifying the regression revision.

11. A non-transitory computer-readable storage medium, containing a set of instructions which, in response to execution by a processor, cause the processor to perform a method for regression tracking and triaging, the method comprising:

scheduling testing of a first list of equidistant revisions associated with a software application, wherein the equidistant revisions have a common difference in distance between two adjacent revisions in the first list;

scheduling testing of a second list of equidistant revisions associated with the software application, wherein the equidistant revisions have a common difference in distance between two adjacent revisions in the second list; and

for a first revision selected from the first list of equidistant revisions and a second revision selected from the second list of equidistant revisions, upon a determination that an equidistance between the first revision and the second revision is below a predetermined threshold, testing the second revision using a first build generated based on the first revision, wherein the first build is executable by the processor.

12. The non-transitory computer-readable storage medium of claim 11 , wherein the method further comprising:

if a regression is detected during the testing of the second revision, performing a binary search to identify a regression revision of the software application having a first occurrence of the regression.

13. The non-transitory computer-readable storage medium of claim 12 , wherein the performing of the binary search comprising: identifying a non-regressing revision of the software application;

selecting a first middle revision between the non-regressing revision and the second revision for testing; and

if the regression is detected when testing the first middle revision, performing recursive binary search based on the non-regressing revision and the first middle revision until the regression revision is identified.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the performing of the binary search further comprising:

if the regression is not detected when testing the first middle revision, performing recursive binary search based on the first middle revision and the second revision until the regression revision is identified.

15. The non-transitory computer-readable storage medium of claim 13 , wherein the performing of the binary search further comprising:

concurrent to the testing of the middle revision, generating a second build and a third build, wherein the second build is based on a second middle revision between the non-regressing revision and the first middle revision, and the third build is based on a third middle revision between the first middle revision and the second revision;

if the regression is detected when testing the first middle revision, using the second build in identifying the regression revision; and

if the regression is not detected when testing the first middle revision, using the third build in identifying the regression revision.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2016
From: RAUENZAHN, RICHARD; WENIG, MICHAEL
To: VMWARE, INC.
Reel/Frame 038837/0763 →
Continuity (1)
Related Publication 20170351598A1 · Dec 7, 2017