Change List-Based Application Snapshots for Virtual Machine Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current source control management systems face inefficiencies in synchronizing and compiling source code and metadata changes across virtual machines for testing, leading to increased computing resources and potential false test failures due to version inconsistencies.

Innovation Solution

Implementing a system that creates snapshots of applications based on change lists, allowing for the retrieval and execution of specific application versions at specified times, thereby reducing the need for frequent synchronization and compilation across virtual machines.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If source code and metadata are frequently synchronized and compiled across virtual machines for testing, then testing accuracy is improved, but computing resources are increased

Engineering Contradiction:
Improvetesting accuracyVSAvoidcomputing resources
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The system creates snapshots of the application at specific points in time and stores them for later retrieval. When testing is needed, the snapshot is already prepared and available, eliminating the need for frequent synchronization and compilation operations. This preliminary action ensures testing accuracy while reducing computing resource consumption.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If source code revisions are not immediately reflected in the repository, then developer productivity is improved, but version consistency is worsened

Engineering Contradiction:
Improvedeveloper productivityVSAvoidversion consistency
Core Design Contradiction:
ProductivityVSStability of the object's composition

Solution Approach 1:

The system separates the development workflow into distinct segments: local revision work (improving productivity) and snapshot creation (ensuring version consistency). Developers can work on revisions locally without immediate repository reflection, and snapshots capture specific versions for testing purposes, maintaining consistency without hindering development flow.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If multiple virtual machines are created for distributed testing, then testing coverage is improved, but setup time is increased

Engineering Contradiction:
Improvetesting coverageVSAvoidsetup time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

Instead of creating multiple virtual machines from scratch for distributed testing, the system creates snapshots of the application and distributes these copies to multiple virtual machines. This copying approach maintains testing coverage across multiple environments while dramatically reducing setup time, as the snapshots are pre-prepared and can be quickly deployed.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11416382B2Change list-based snapshots of applications for development and testing
Publication Date: 2022.08.16 SALESFORCE INC
  • US11416382B2 patent drawing
  • US11416382B2 patent drawing
  • US11416382B2 patent drawing

AI summary

Change list-based snapshots of applications for development and testing 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 associates the snapshot of the application with the change list. The system stores the snapshot of the application with snapshots of versions of the application associated with change lists. The system receives a request to create another virtual machine based on a version of the application corresponding to a specified time and/or a specified change list. The system retrieves an application snapshot that is associated with the specified time and/or the specified change list. The system creates the other virtual machine based on the application snapshot. The other virtual machine executes the version of the application corresponding to the specified time and/or the specified change list.