Dynamic Environment Manager for Automated Test Deployment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Large production environments with distributed servers and data centers face significant manual overhead in maintaining and testing systems, limiting the ability to simulate test data or scenarios and deploy mainline-built binaries effectively.

Innovation Solution

A dynamic environment manager that automates the creation and management of resources for testing binary files, allowing deployment on local machines or distributed clusters, using binary configuration files to specify paths and token settings for creating resources, and enabling simplified configuration for various testing stages without conflicts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual deployment and maintenance of production-like systems is used, then system testing can be performed, but significant manual overhead is involved and systems become stale

Engineering Contradiction:
Improvetesting reliabilityVSAvoidmanual overhead time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system enables self-service automation where the testing framework automatically deploys binaries to test environments, manages resource provisioning, and tears down environments after testing. This eliminates manual intervention in deployment and maintenance tasks, allowing systems to be tested reliably without becoming stale due to manual oversight delays

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The framework performs preliminary actions by automatically provisioning test environments and deploying binaries before testing begins. Configuration files pre-define test scenarios and environment requirements, allowing the system to prepare everything needed for testing in advance without manual intervention during the actual testing process

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If production binaries are pointed to for system tests, then testing can be performed, but the ability to simulate test data or scenarios is limited

Engineering Contradiction:
Improvetest scenario flexibilityVSAvoidtesting accuracy
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system segments the testing infrastructure into separate concern areas: production binary deployment, test data generation, and scenario configuration. This allows test data and scenarios to be independently configured and simulated without affecting the actual production binaries, enabling versatile testing while maintaining reliability through isolated test environments

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The framework introduces an intermediary test environment layer between production binaries and test scenarios. This intermediary layer allows simulation of various test data and scenarios while using real production binaries, providing both the flexibility to test different scenarios and the reliability of using actual production code

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If distributed clusters are used for load or integration testing, then comprehensive testing is enabled, but manual deployment and maintenance overhead increases

Engineering Contradiction:
Improvetesting coverageVSAvoiddeployment complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The testing framework provides universal functionality that automatically handles deployment, resource management, and teardown across different test environments including distributed clusters. The same framework manages both simple local testing and complex distributed cluster testing, enabling comprehensive testing coverage without proportionally increasing deployment complexity

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Productivity

If test environments share common servers, then resource utilization is efficient, but conflicts between test environments occur

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidtest environment isolation
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system dynamically provisions and isolates test environments as needed. When tests require isolated environments, the framework creates separate resource allocations. When isolation is not required, resources can be shared. This dynamic approach maintains both resource utilization efficiency and test environment isolation reliability based on specific testing requirements

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9058423B1Dynamic environment deployment within system tests to clusters, local machines or production
Publication Date: 2015.06.16 GOOGLE LLC
  • US9058423B1 patent drawing
  • US9058423B1 patent drawing
  • US9058423B1 patent drawing

AI summary

A continuous build and test system, method, and computer-readable medium, performed by one or more processors is described. The system includes an input for inputting a test specification that imports an environment manager. An environment manager object is created upon processing of the test specification, and delegates management functions to one or more specialized manager objects. The environment manager includes config data that designate paths to one or more binary files, and token settings specifying resources to be used during testing of the binary files. The environment manager selects a test platform to be used in testing the one or more binary files. The specialized manager objects perform testing, including bringing up the one or more binary files in the selected test platform, creating the data resources based on the token settings, performing the instructed tests, and cleaning up created data resources.