IP Library Granted Patent US 8,201,023
Granted Patent B2
US 8,201,023 · App. 12/856,510 · Granted Jun 12, 2012

Test optimization

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 8,201,023
App. No.
12/856,510
Granted
Jun 12, 2012
Kind
B2
Abstract

A method for optimizing tests of a software application. The method includes determining a test run time for each test of a plurality of tests of a software application; and dividing the tests into a plurality of test groups. The method further includes assigning a worker system of a plurality of worker systems to each test group; and causing the worker systems to run the tests.

Claims (42)

1. A method for optimizing tests of a software application, the method comprising:

determining a test run time for each test of a plurality of tests of a software application;

dividing the tests into a plurality of test groups;

assigning a worker system of a plurality of worker systems to each test group based on an offset value assigned to the respective worker system, the offset value being based on a start time when the respective worker system is available to begin executing tests or a speed of the respective worker system; and

causing the worker systems to run the tests.

2. The method of claim 1 , further comprising computing an average test run time for each test for a past predefined number of executions.

3. The method of claim 1 , further comprising:

computing an average test run time for each test for a past predefined number of executions; and

using the average test run times in the dividing step.

4. The method of claim 1 , further comprising ordering the tests by length of test run time.

5. The method of claim 1 , wherein a number of worker systems is the same as a number of test groups.

6. The method of claim 1 , wherein assigning the worker system of the plurality of worker systems to each test group comprises assigning the plurality of worker systems to the plurality of test groups to complete the plurality of tests as soon as possible.

7. The method of claim 1 , wherein assigning the worker system of the plurality of worker systems to each test group comprises assigning the plurality of worker systems to the plurality of test groups to complete the plurality of tests at substantially the same time.

8. The method of claim 1 , wherein assigning the worker system of the plurality of worker systems to each test group comprises:

assigning the worker system to a first test group having a longer test run time when the offset value is indicative of a jump start or a fast performance for the worker system; and

assigning the worker system to a second test group having a shorter test run time when the offset value is indicative of a delayed start or a slow performance for the worker system.

9. The method of claim 4 , wherein dividing the tests into the plurality of test groups comprises assigning a first test having a longest test run time of the ordered tests to a first test group of the plurality of test groups having a shortest test run time.

10. A non-transitory computer-readable storage medium having one or more instructions thereon for optimizing tests of a software application, the instructions when executed by a processor causing the processor to:

determine a test run time for each test of a plurality of tests of a software application;

divide the tests into a plurality of test groups;

assign a worker system of a plurality of worker systems to each test group based on an offset value assigned to the respective worker system, the offset value being based on a start time when the respective worker system is available to begin executing tests or a speed of the respective worker system; and

cause the worker systems to run the tests.

11. The computer-readable storage medium of claim 10 , wherein the instructions further cause the processor to compute an average test run time for each test for a past predefined number of executions.

12. The computer-readable storage medium of claim 10 , wherein the instructions further cause the processor to:

compute an average test run time for each test for a past predefined number of executions; and

use the average test run times in the dividing step.

13. The computer-readable storage medium of claim 10 , wherein the instructions further cause the processor to order the tests by length of test run time.

14. The computer-readable storage medium of claim 10 , wherein the instructions further cause the processor to assign offset values to one or more worker systems.

15. The computer-readable storage medium of claim 10 , wherein a number of worker systems is the same as a number of test groups.

16. An apparatus for optimizing tests of a software application, the apparatus comprising:

a processor including hardware that processes data, signals, or other information; and

one or more stored sequences of instructions which, when executed by the processor, cause the processor to:

determine a test run time for each test of a plurality of tests of a software application;

divide the tests into a plurality of test groups;

assign a worker system of a plurality of worker systems to each test group based on an offset value assigned to the respective worker system, the offset value being based on a start time when the respective worker system is available to begin executing tests or a speed of the respective worker system; and

cause the worker systems to run the tests.

17. The apparatus of claim 16 , wherein the one or more sequences of instructions cause the processor to compute an average test run time for each test for a past predefined number of executions.

18. The apparatus of claim 16 , wherein the one or more sequences of instructions cause the processor to:

compute an average test run time for each test for a past predefined number of executions; and

use the average test run times in the dividing step.

19. The apparatus of claim 16 , wherein the one or more sequences of instructions cause the processor to order the tests by length of test run time.

20. The apparatus of claim 16 , wherein to identify which changes caused the failures, the one or more sequences of instructions cause the processor to assign offset values to one or more worker systems.

Assignments (2)
CHANGE OF NAME Recorded Oct 24, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069270/0655 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 1, 2010
From: CHEN, ZHIQIANG
To: SALESFORCE.COM, INC.
Reel/Frame 025082/0091 →