IP Library Granted Patent US 9,983,979
Granted Patent B1
US 9,983,979 · App. 14/539,642 · Granted May 29, 2018

Optimized dynamic matrixing of software environments for application test and analysis

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,983,979
App. No.
14/539,642
Granted
May 29, 2018
Kind
B1
Abstract

A method for matrixing of software environments is provided. The method includes receiving a selection of a plurality of aspects of a task environment for an application and executing the application in a task environment selected from a set of all possible combinations. The method includes selecting a next task environment from the set of all possible combinations, based on a result of executing the application in the task environment and reducing a matrix search scope, responsive to a failure in the executing the application in the task environment. The method includes repeating the executing, the selecting and the reducing until one of the matrix search scope as reduced, is less than or equal to a completed search scope, or the set of all possible combinations of the plurality of aspects of the task environment is in the completed search scope.

Claims (63)

1. A method for matrixing of software environments, comprising:

receiving a selection of a plurality of aspects of a task environment for an application;

executing the application in a task environment selected from a set of all possible combinations of the plurality of aspects of the task environment;

selecting a next task environment from the set of all possible combinations of the plurality of aspects of the task environment, based on a result of executing the application in the task environment;

reducing a matrix search scope, responsive to a failure in the executing the application in the task environment; and

repeating the executing, the selecting and the reducing until one of the matrix search scope as reduced, is less than or equal to a completed search scope, or the set of all possible combinations of the plurality of aspects of the task environment is in the completed search scope, wherein at least one action of the method is performed by a processor.

2. The method of claim 1 , further comprising:

generating the set of all possible combinations of the plurality of aspects of the task environment; and

tracking which combinations from the set of all possible combinations of the plurality of aspects of the task environment are members of the completed search scope, based on the executing the application in the task environment.

3. The method of claim 1 , further comprising:

prioritizing at least a subset of combinations of the aspects of the task environment from among the set of all possible combinations of the plurality of aspects of the task environment, based on a result of a previous test.

4. The method of claim 1 , further comprising applying a snapshot to revert to a clean task environment.

5. The method of claim 1 , further comprising setting a limit, for each cycle of the repeating, on a number of virtual machines, an amount of resources, or a ratio of resources as compared to a total amount of resources, wherein the repeating includes:

creating virtual machines in parallel or allocating resources in parallel, up to the limit;

executing applications in task environments in parallel, up to the limit; and

destroying the virtual machines created in parallel, or deallocating the resources allocated in parallel, in preparation for a next cycle of the repeating.

6. The method of claim 1 , further comprising:

identifying which task environments require more resources as compared to other task environments, based on at least one previous test;

selecting parallel task environments which fit within resource throttling, based on the identifying; and

applying the parallel task environments to the executing and the repeating.

7. The method of claim 1 , further comprising:

identifying files in common across shared libraries in the aspects of the task environment, wherein reducing the matrix search scope is further responsive to the identifying the files in common.

8. A tangible, non-transitory, computer-readable media having instructions thereupon which, when executed by a processor, cause the processor to perform a method comprising:

receiving a selection of a plurality of aspects of a task environment for an application;

executing the application in a task environment intelligently selected from a set of all possible combinations of the plurality of aspects of the task environment;

selecting a next task environment from the set of all possible combinations of the plurality of aspects of the task environment, based on a result of executing the application in the task environment;

reducing a matrix search scope, responsive to a failure in the executing the application in the task environment; and

repeating the executing, the selecting and the reducing until one of the matrix search scope as reduced, is less than or equal to a completed search scope, or the set of all possible combinations of the plurality of aspects of the task environment is in the completed search scope.

9. The computer-readable media of claim 8 , wherein the method further comprises:

generating the set of all possible combinations of the plurality of aspects of the task environment; and

tracking which combinations from the set of all possible combinations of the plurality of aspects of the task environment are members of the completed search scope, based on the executing the application in the task environment.

10. The computer-readable media of claim 8 , wherein the method further comprises:

prioritizing at least a subset of combinations of the aspects of the task environment from among the set of all possible combinations of the plurality of aspects of the task environment, based on a result of a previous test.

11. The computer-readable media of claim 8 , wherein the method further comprises applying a snapshot to revert to a clean task environment.

12. The computer-readable media of claim 8 , wherein the method further comprises setting a limit, for each cycle of the repeating, on a number of virtual machines, an amount of resources, or a ratio of resources as compared to a total amount of resources, wherein the repeating includes:

creating virtual machines in parallel or allocating resources in parallel, up to the limit;

executing applications in task environments in parallel, up to the limit; and

destroying the virtual machines created in parallel, or deallocating the resources allocated in parallel, in preparation for a next cycle of the repeating.

13. The computer-readable media of claim 8 , wherein the method further comprises:

identifying which task environments require more resources as compared to other task environments, based on at least one previous test;

selecting parallel task environments which fit within resource throttling, based on the identifying; and

applying the parallel task environments to the executing and the repeating.

14. The computer-readable media of claim 8 , wherein the method further comprises:

identifying files in common across shared libraries in the aspects of the task environment, wherein reducing the matrix search scope is further responsive to the identifying the files in common.

15. An apparatus for matrixing of software environments, comprising:

a processor, programmed to perform actions including receiving a selection of a plurality of aspects of a task environment for an application;

a workflow engine, configured to execute the application in a task environment selected from a set of all possible combinations of the plurality of aspects of the task environment;

an optimization engine configured to select a next task environment from the set of all possible combinations of the plurality of aspects of the task environment, based on a result of executing the application in the task environment, the optimization engine further configured to reduce a matrix search scope, responsive to a failure in the executing the application in the task environment; and

the workflow engine and the optimization engine configured to cooperate to repeat the executing the application, the selecting the next task, and the reducing the matrix search scope until one of the matrix search scope as reduced, is less than or equal to a completed search scope, or the set of all possible combinations of the plurality of aspects of the task environment is in the completed search scope.

16. The apparatus of claim 15 , further comprising:

a configuration and reporting module, configured to generate the set of all possible combinations of the plurality of aspects of the task environment; and

the configuration and reporting module configured to track which combinations from the set of all possible combinations of the plurality of aspects of the task environment are members of the completed search scope, based on the executing the application in the task environment.

17. The apparatus of claim 15 , further comprising:

the optimization engine configured to prioritize at least a subset of combinations of the aspects of the task environment from among the set of all possible combinations of the plurality of aspects of the task environment, based on a result of a previous test.

18. The apparatus of claim 15 , further comprising the optimization engine configured to apply a snapshot to revert to a prior task environment.

19. The apparatus of claim 15 , further comprising the workflow engine configured to set a limit, for each cycle of the repeating, on a number of virtual machines, an amount of resources, or a ratio of resources as compared to a total amount of resources, wherein the repeating includes:

creating virtual machines in parallel or allocating resources in parallel, up to the limit;

executing applications in task environments in parallel, up to the limit; and

destroying the virtual machines created in parallel, or deallocating the resources allocated in parallel, in preparation for a next cycle of the repeating.

20. The apparatus of claim 15 , further comprising:

the optimization engine configured to identify which task environments require more resources as compared to other task environments, based on at least one previous test;

the optimization engine configured to select parallel task environments which fit within resource throttling, based on the identifying; and

the workflow engine configured to apply the parallel task environments to the executing and the repeating.

Assignments (4)
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 →
MERGER Recorded Mar 25, 2020
From: VCE IP HOLDING COMPANY LLC
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052224/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2016
From: VCE COMPANY, LLC
To: VCE IP HOLDING COMPANY LLC
Reel/Frame 040576/0161 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2014
From: DOLINSKY, TODD JASON; KERBAWY, MATTHEW KEVIN; MOLNER, MATTHEW JOHN; CHENG, JEFFERY C
To: VCE COMPANY, LLC
Reel/Frame 034163/0725 →