IP Library Granted Patent US 11,379,351
Granted Patent B2
US 11,379,351 · App. 17/025,054 · Granted Jul 5, 2022

Change list-based snapshots of applications for testing and development

Inventors: Rui Han (Richmond, CA); Armin Bahramshahry (West Vancouver, CA)
Assignee: Salesforce, Inc.
G06F11/3688G06F8/30G06F8/41G06F8/71G06F9/45558G06F11/3664G06F11/3692G06F2009/45562
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,379,351
App. No.
17/025,054
Granted
Jul 5, 2022
Kind
B2
Abstract

Change list-based snapshots of applications for testing and development are described. A system selects a change list corresponding to at least one change in an application executed by a virtual machine. The system creates a snapshot of the application corresponding to the change list. The system creates at least one additional virtual machine based on the snapshot of the application. The at least one additional virtual machine executes a test of the application which includes the at least one change corresponding to the change list.

Claims (58)

1. A system for change list-based snapshots of applications for testing and development, the system comprising:

one or more processors; and

a non-transitory computer readable medium storing a plurality of instructions, which when executed, cause the one or more processors to:

select a change list corresponding to at least one change in an application executed by a virtual machine;

create a snapshot of the application corresponding to the change list;

create at least one additional virtual machine based on the snapshot of the application; and

execute, by the at least one additional virtual machine, a test of the application which includes the at least one change corresponding to the change list.

2. The system of claim 1 , wherein the change list corresponds to at least one change of at least one of source code in the application and metadata associated with the application.

3. The system of claim 1 , wherein the change list that corresponds to the snapshot of the application is selected from a plurality of change lists corresponding to the application, and the change list that corresponds to the application being tested is selected from a subset of the plurality of change lists corresponding to the application.

4. The system of claim 1 , wherein the plurality of instructions further causes the processor to:

determine whether executing the test of the application which includes the at least one change corresponding to the change list results in any test failures; and

execute a test of a version of the application that includes another change corresponding to another change list which chronologically precedes the change list, in response to a determination that executing the test of the application which includes the at least one change corresponding to the change list results in any test failures.

5. The system of claim 1 , wherein the plurality of instructions further causes the processor to

associate the snapshot of the application with the change list;

store the snapshot of the application with a plurality of snapshots of versions of the application associated with a plurality of change lists;

receive a request to create another virtual machine based on a version of the application corresponding to at least one of a specified time and a specified change list;

retrieve an application snapshot that is associated with at least one of the specified time and the specified change list;

create the other virtual machine based on the application snapshot; and

execute, by the other virtual machine, the version of the application corresponding to at least one of the specified time and the specified change list.

6. The system of claim 5 , wherein creating the other virtual machine based on the application snapshot comprises synchronizing source code from the application snapshot with source code from at least one of a change list associated with the specified time and the specified change list, downloading any changes in metadata associated with at least one of the change list associated with the specified time and the specified change list, and compiling any downloaded changes in metadata.

7. The system of claim 5 , wherein the other virtual machine executing the version of the application comprises at least one of running an additional test in a testing environment and enabling changes of source code in a development environment.

8. A computer program product comprising a non-transitory computer-readable medium having computer-readable program code embodied therein to be executed by one or more processors the program code including instructions to:

select a change list corresponding to at least one change in an application executed by a virtual machine;

create a snapshot of the application corresponding to the change list;

create at least one additional virtual machine based on the snapshot of the application; and

execute, by the at least one additional virtual machine, a test of the application which includes the at least one change corresponding to the change list.

9. The computer program product of claim 8 , wherein the change list corresponds to at least one change of at least one of source code in the application and metadata associated with the application.

10. The computer program product of claim 8 , wherein the change list that corresponds to the snapshot of the application is selected from a plurality of change lists corresponding to the application, and the change list that corresponds to the application being tested is selected from a subset of the plurality of change lists corresponding to the application.

11. The computer program product of claim 8 , wherein the program code includes further instructions to:

determine whether executing the test of the application which includes the at least one change corresponding to the change list results in any test failures; and

execute a test of a version of the application that includes another change corresponding to another change list which chronologically precedes the change list, in response to a determination that executing the test of the application which includes the at least one change corresponding to the change list results in any test failures.

12. The computer program product of claim 8 , wherein the program code includes further instructions to:

associate the snapshot of the application with the change list;

store the snapshot of the application with a plurality of snapshots of versions of the application associated with a plurality of change lists;

receive a request to create another virtual machine based on a version of the application corresponding to at least one of a specified time and a specified change list;

retrieve an application snapshot that is associated with at least one of the specified time and the specified change list;

create the other virtual machine based on the application snapshot; and

execute, by the other virtual machine, the version of the application corresponding to at least one of the specified time and the specified change list.

13. The computer program product of claim 12 , wherein creating the other virtual machine based on the application snapshot comprises synchronizing source code from the application snapshot with source code from at least one of a change list associated with the specified time and the specified change list, downloading any changes in metadata associated with at least one of the change list associated with the specified time and the specified change list, and compiling any downloaded changes in metadata.

14. The computer program product of claim 12 , wherein the other virtual machine executing the version of the application comprises at least one of running an additional test in a testing environment and enabling changes of source code in a development environment.

15. A computer-implemented method for change list-based snapshots of applications for testing and development, the computer-implemented method comprising:

selecting a change list corresponding to at least one change in an application executed by a virtual machine;

creating a snapshot of the application corresponding to the change list;

creating at least one additional virtual machine based on the snapshot of the application; and

executing, by the at least one additional virtual machine, a test of the application which includes the at least one change corresponding to the change list.

16. The computer-implemented method of claim 15 , wherein the change list corresponds to at least one change of at least one of source code in the application and metadata associated with the application, the change list that corresponds to the snapshot of the application is selected from a plurality of change lists corresponding to the application, and the change list that corresponds to the application being tested is selected from a subset of the plurality of change lists corresponding to the application.

17. The computer-implemented method of claim 15 , wherein the computer-implemented method further comprises:

determining whether executing the test of the application which includes the at least one change corresponding to the change list results in any test failures; and

executing a test of a version of the application that includes another change corresponding to another change list which chronologically precedes the change list, in response to a determination that executing the test of the application which includes the at least one change corresponding to the change list results in any test failures.

18. The computer-implemented method of claim 15 , wherein the computer-implemented method further comprises:

associating the snapshot of the application with the change list;

storing the snapshot of the application with a plurality of snapshots of versions of the application associated with a plurality of change lists;

receiving a request to create another virtual machine based on a version of the application corresponding to at least one of a specified time and a specified change list;

retrieving an application snapshot that is associated with at least one of the specified time and the specified change list;

creating the other virtual machine based on the application snapshot; and

executing, by the other virtual machine, the version of the application corresponding to at least one of the specified time and the specified change list.

19. The computer-implemented method of claim 18 , wherein creating the other virtual machine based on the application snapshot comprises synchronizing source code from the application snapshot with source code from at least one of a change list associated with the specified time and the specified change list, downloading any changes in metadata associated with at least one of the change list associated with the specified time and the specified change list, and compiling any downloaded changes in metadata.

20. The computer-implemented method of claim 18 , wherein the other virtual machine executing the version of the application comprises at least one of running an additional test in a testing environment and enabling changes of source code in a development environment.

Assignments (2)
CHANGE OF NAME Recorded Oct 30, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 065394/0169 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 20, 2021
From: HAN, RUI; BAHRAMSHAHRY, ARMIN
To: SALESFORCE.COM, INC.
Reel/Frame 057239/0001 →
Continuity (1)
Related Publication 20220091970A1 · Mar 24, 2022