IP Library Granted Patent US 11,132,288
Granted Patent B2
US 11,132,288 · App. 15/963,413 · Granted Sep 28, 2021

Data-driven scheduling of automated software program test suites

Inventors: Avitan Gefen (Tel Aviv, IL); Omer Sagi (Mazkeret Batya, IL); Ran Taig (Beer Sheva, IL)
Assignee: EMC IP Holding Company LLC
G06F11/3688G06N20/00G06F11/3668
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 11,132,288
App. No.
15/963,413
Granted
Sep 28, 2021
Kind
B2
Abstract

Techniques are provided for data-driven scheduling of automated software program test suites. An exemplary method comprises: obtaining a plurality of test cases that test software programs; obtaining a failure likelihood for each of the plurality of test cases; and scheduling the test cases in an order based on the failure likelihoods. Generally, test cases that are more likely to fail are scheduled before test cases that are less likely to fail. Dependencies and/or priorities among the plurality of test cases are also optionally obtained and the scheduling of the test cases is based on the dependencies and/or priorities. The dependencies among the plurality of test cases comprise, for example, an indication of whether a given test case constrains one or more additional test cases.

Claims (34)

1. A method, comprising:

obtaining a plurality of test cases that test one or more software programs;

obtaining dependencies among two or more of the plurality of test cases, wherein the dependencies among the two or more test cases comprise an indication of whether a given identified test case constrains one or more additional test cases;

obtaining a failure likelihood for each of the plurality of test cases, wherein the failure likelihood for at least one of the plurality of test cases is calculated using a Bayesian inference that calculates a generalized weighted probability for the at least one test case using a weight based at least in part on a number of prior executions of the at least one test case; and

scheduling, using at least one processing device, an execution of a plurality of the test cases in a particular order based at least in part on the failure likelihoods and the dependencies such that the given identified test case is executed before the one or more additional test cases, wherein the failure likelihoods and the dependencies are distinct from one another.

2. The method of claim 1 , wherein the failure likelihoods are based on historical test data.

3. The method of claim 1 , wherein the scheduling is further based on one or more of (i) test cases that were already scheduled and (ii) one or more portions of the one or more software programs that were modified.

4. The method of claim 1 , wherein test cases that are more likely to fail are scheduled before test cases that are less likely to fail.

5. The method of claim 1 , further comprising the step of assessing the failure likelihoods of the plurality of test cases using one or more machine learning techniques.

6. The method of claim 1 , further comprising obtaining priorities among two or more of the plurality of test cases from a user and wherein the scheduling is further based on the priorities.

7. The method of claim 1 , wherein the failure likelihoods are estimated using one or more parameters obtained by conducting a grid search over a dataset of prior test suites to find values of the one or more parameters that substantially minimize a run-time over the prior test suites.

8. The method of claim 1 , wherein the failure likelihoods are estimated using one or more parameters configured by a user.

9. A system, comprising:

a memory; and

at least one processing device, coupled to the memory, operative to implement the following steps:

obtaining a plurality of test cases that test one or more software programs;

obtaining dependencies among two or more of the plurality of test cases, wherein the dependencies among the two or more test cases comprise an indication of whether a given identified test case constrains one or more additional test cases;

obtaining a failure likelihood for each of the plurality of test cases, wherein the failure likelihood for at least one of the plurality of test cases is calculated using a Bayesian inference that calculates a generalized weighted probability for the at least one test case using a weight based at least in part on a number of prior executions of the at least one test case; and

scheduling, using at least one processing device, an execution of a plurality of the test cases in a particular order based at least in part on the failure likelihoods and the dependencies such that the given identified test case is executed before the one or more additional test cases, wherein the failure likelihoods and the dependencies are distinct from one another.

10. The system of claim 9 , wherein test cases that are more likely to fail are scheduled before test cases that are less likely to fail.

11. The system of claim 9 , further comprising the step of assessing the failure likelihoods of the plurality of test cases using one or more machine learning techniques.

12. The system of claim 9 , further comprising obtaining priorities among two or more of the plurality of test cases from a user and wherein the scheduling is further based on the priorities.

13. The system of claim 9 , wherein the failure likelihoods are estimated using one or more parameters obtained by conducting a grid search over a dataset of prior test suites to find values of the one or more parameters that substantially minimize a run-time over the prior test suites.

14. The system of claim 9 , wherein the failure likelihoods are estimated using one or more parameters configured by a user.

15. A computer program product, comprising a non-transitory machine-readable storage medium having encoded therein executable code of one or more software programs, wherein the one or more software programs when executed by at least one processing device perform the following steps:

obtaining a plurality of test cases that test one or more software programs;

obtaining dependencies among two or more of the plurality of test cases, wherein the dependencies among the two or more test cases comprise an indication of whether a given identified test case constrains one or more additional test cases;

obtaining a failure likelihood for each of the plurality of test cases, wherein the failure likelihood for at least one of the plurality of test cases is calculated using a Bayesian inference that calculates a generalized weighted probability for the at least one test case using a weight based at least in part on a number of prior executions of the at least one test case; and

scheduling, using at least one processing device, an execution of a plurality of the test cases in a particular order based at least in part on the failure likelihoods and the dependencies such that the given identified test case is executed before the one or more additional test cases, wherein the failure likelihoods and the dependencies are distinct from one another.

16. The computer program product of claim 15 , wherein test cases that are more likely to fail are scheduled before test cases that are less likely to fail.

17. The computer program product of claim 15 , further comprising the step of assessing the failure likelihoods of the plurality of test cases using one or more machine learning techniques.

18. The computer program product of claim 15 , further comprising obtaining priorities among two or more of the plurality of test cases from a user and wherein the scheduling is further based on the priorities.

19. The computer program product of claim 15 , wherein the failure likelihoods are estimated using one or more parameters obtained by conducting a grid search over a dataset of prior test suites to find values of the one or more parameters that substantially minimize a run-time over the prior test suites.

20. The computer program product of claim 15 , wherein the failure likelihoods are estimated using one or more parameters configured by a user.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (046366/0014) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060450/0306 →
RELEASE OF SECURITY INTEREST AT REEL 046286 FRAME 0653 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0093 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046286/0653 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 046366/0014 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2018
From: GEFEN, AVITAN; SAGI, OMER; TAIG, RAN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 045646/0417 →