Cloud Controller for Automated Virtual Machine Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Automated testing of computer applications in cloud environments faces challenges in efficiently deploying and managing virtual machines based on capacity and scaling needs, particularly for interactive applications that require user interface commands.

Innovation Solution

A system and method for automated testing in a cloud environment that involves a controller determining the number of virtual machines to deploy based on specified needs and capacity, initializing test agents, providing test commands through a cloud data storage system, and monitoring command execution, with mechanisms to handle both interactive and non-interactive commands.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If virtual machines are deployed to handle testing capacity needs, then testing scalability is improved, but system complexity increases

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

Solution Approach 1:

The system employs self-service mechanisms where the automated testing platform automatically provisions, configures, and manages virtual machines based on testing requirements. The platform autonomously handles VM lifecycle operations including deployment, initialization of test agents, command distribution, and teardown, eliminating manual intervention and reducing operational complexity despite the increased number of virtualized components

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The testing system segments functionality across multiple virtual machines, allowing different testing workloads, test agents, and command execution environments to run in isolated VM instances. This segmentation enables scalable testing capacity while managing complexity through modular organization of testing components across discrete virtualized units

Inventive Principle:
Principle #1Segmentation

2Productivity

If automated test commands are provided to multiple test agents, then testing productivity is improved, but command management complexity increases

Engineering Contradiction:
Improvetesting productivityVSAvoidcommand management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system implements a universal command management mechanism that serves multiple test agents simultaneously through a centralized command distribution architecture. The same command infrastructure handles command issuance, execution monitoring, and result collection across all test agents, enabling scalable productivity without proportionally increasing management complexity

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

Solution Approach 2:

The system employs feedback mechanisms where test agents report command execution status and results back to the centralized management system. This automated feedback loop enables real-time monitoring and selective provision of next commands based on execution results, improving productivity while maintaining manageable command control through automated status tracking

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8826068B2Automated testing of applications in cloud computer systems
Publication Date: 2014.09.02 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8826068B2 patent drawing
  • US8826068B2 patent drawing
  • US8826068B2 patent drawing

AI summary

A system and method for performing automated testing of an application in a cloud environment. A controller initializes an manages a number of virtual machines (VM), each VM including a test engine. The controller retrieves configuration data, determines a number of VMs to deploy, and initializes the VMs. The controller manages each VM by providing test commands and monitoring the results. Each VM receives and executes the test commands. The system may be used to test interactive applications or non-interactive applications.