Using a Lab Environment for Your Application Lifecycle

You can create and manage lab environments with the Lab Management features of Microsoft Test Manager. A lab environment is a collection of virtual and physical machines, which you can use to develop and test applications. A lab environment can contain multiple roles needed to test multi-tiered applications, such as workstations, web servers, and database servers. In addition, you can use a build-deploy-test workflow with your lab environment to automate the process of building, deploying, and running automated tests on your application.

Requirements

  • Visual Studio Ultimate, Visual Studio Premium, Visual Studio Test Professional

You must use a lab environment to gain the following benefits:

  1. Use a test plan to run automated tests − You can run a collection of automated tests, called a test plan, and view the progress using Microsoft Test Manager.

  2. Use a build-deploy-test workflow − You can use a build-deploy-test workflow to test multi-tiered applications automatically. A typical example is a workflow that starts a build, deploys the build files onto the appropriate machines in a lab environment, and then performs automated tests. In addition, you can schedule your workflow to run at specific intervals.

  3. Collect diagnostic data from all machines, even during manual testing − You can collect diagnostic data from multiple machines simultaneously. For example, during a single test run, you can collect IntelliTrace, test impact, and other forms of data from a web server, a database server, and a client.

  4. Automatic test agent installation − Lab Management automatically installs test agents on every machine in your environment.

If you use Lab Management in conjunction with System Center Virtual Machine Manager (SCVMM), you can also get these benefits when you use lab environments:

  • Quickly reproduce machine configurations − You can store collections of virtual machines that are configured to recreate typical production environments. You can then perform each test run on a new copy of a stored environment.

  • Reproduce the exact conditions of a bug – When a test run fails, you can store a copy of the state of your lab environment, and access it from your build results or a work item.

  • Run multiple copies of a lab environment at the same time – You can run multiple copies of your lab environment at the same time without naming conflicts.

Here are examples of common types of lab environments:

Client-server lab environment
  • This lab environment has a client/server topology, which is often used to test an application that has server and client components. In a client/server topology, all of the client and server machines used to test your application are in your lab environment. When you use this topology, you can collect test data from every machine that impacts your tests.

Server only topology
  • This lab environment has a server topology, which is often used to run manual tests on server applications, and which allows testers to use their own client machines to verify bugs in the environment. In a backend topology, your lab environment contains only servers. When you use this type of topology, you typically connect to the servers in the lab environment using a client machine that is not part the environment.

See Video: Managing lab environments for testing.

Standard Environments and SCVMM Environments

There are two types of lab environments that you can create with Visual Studio Lab Management—standard Environments and SCVMM Environments. However, the capabilities of each type of environment are different.

Standard Environments: Standard environments can contain a mix of virtual and physical machines. You can also add virtual machines to a standard environment that are managed by third-party virtualization frameworks. In addition, standard environments do not require additional server resources such as an SCVMM server.

SCVMM environments: SCVMM environments can only contain virtual machines that are managed by SCVMM (System Center Virtual Machine Manager), so the virtual machines in SCVMM environments can only run on the Hyper-V virtualization framework. However, SCVMM environments provide the following automation and management features that are not available in standard environments:

Note

For information on SCVMM, see Virtual Machine Manager.

  • Environment snapshots: Environment snapshots contain the state of a lab environment, so you can quickly restore a clean environment, or save the state of an environment that has been modified. You can also use a build-deploy-test workflow to automate the process of saving and restoring environment snapshots.

  • Stored environments: You can store a copy of an SCVMM environment, and then deploy multiple copies of that environment.

  • Network isolation: Network isolation allows you to simultaneously run multiple identical copies of an SCVMM environment without computer name conflicts.

  • Virtual machine templates: A virtual machine template is a virtual machine that has had its name and other identifiers removed. When a VM template is deployed in an SCVMM environment, Microsoft Test Manager generates new identifiers. This allows you deploy multiple copies of a virtual machine in the same environment, or multiple environments, and then run the virtual machines simultaneously.

  • Stored Virtual Machines: A virtual machine that is stored in your Team Project library and includes unique identifiers.

For more information about these features, see Guidance for Creating and Managing SCVMM Environments.

Standard environments and SCVMM environments support many of the same features. However, there are some important differences to consider. The following table compares the features that are available for standard environments and SCVMM environments.

Capability

SCVMM Environments

Standard Environments

Testing

Run manual tests

Supported

Supported

Run coded UI and other automated tests

Supported

Supported

File rich bugs using diagnostic adapters

Supported

Supported

Build deployment

Automatic build-deploy-test workflows

Supported

Supported

Environment creation and management

Use physical machines in addition to virtual machines

Not supported

Supported

Use third-party virtual machines

Not supported

Supported

Automatically install test agents onto machines in the lab environment

Supported

Supported

Save and deploy the state of a lab environment using environment snapshots

Supported

Not supported

Create lab environments from VM templates

Supported

Not supported

Start/stop/snapshot environment

Supported

Not supported

Connect to the environment using Environment Viewer

Supported

Supported

Run multiple copies of an environment at the same time using network isolation

Supported

Not supported

Lab management concepts

Here are some additional concepts that you should be familiar with before you continue:

Term

Description

Lab Center

The area of Microsoft Test Manager where you create and manage lab environments.

Team Project Lab

The collection of lab environments that have been set up so you can connect to them and run their virtual machines.

Team Project Library

An archive of stored virtual machines, templates, and stored lab environments that have been imported into the host group of your team project. You can use the items in your library with SCVMM environments; however, you can’t add them directly to a standard environment. You can’t run the items in your library; instead you use them to deploy a new environment.

Deployed Environment

A lab environment that has been deployed to your team project lab so that you can connect to it and run its machines.

Next Steps

Task

Related content

Configure Lab Management components: Determine the components that you need to configure before you can create, view, or modify lab environments.

Getting Started with Lab Management

Plan your SCVMM environments: Before you create or manage an SCVMM environment, decide whether to use running virtual machines, stored virtual machines, templates, a stored environment, and whether to enable network isolation.

Guidance for Creating and Managing SCVMM Environments

Learn more about network isolation: If you want to run multiple identical copies of a lab environment, including unique identifying information, use an SCVMM environment and enable network isolation.

Cloning Virtual Machines through Network Isolation

Create new lab environments: After you configure lab management, you can create standard environments and SCVMM environments, or you can deploy a copy of an SCVMM environment.

Creating Lab Environments

Manage your lab environments and virtual machines After you create a lab environment, you can connect to the environment, view the environment, modify the environment, and create environment snapshots. You can then manage your environments, virtual machines, and templates in your Team Project Library.

Managing Lab Environments and Virtual Machines

Run tests in your lab environment: You can run manual and automated tests in your lab environment, using Microsoft Test Manager, the Tcm.exe command line utility, or a build-deploy-test workflow.

Running Tests in Lab Environments

Configure automated build, deployment, and testing: Create build-deploy-test workflows to automate the process of creating a build of your application, deploying the build to your lab environment, and running tests on the deployed application.

Setting Up Automated Build-Deploy-Test Workflows

Fix issues in your lab environment: If you encounter trouble creating or connecting to your lab environment, you might need to repair the environment, or in some configurations, take extra steps to configure the environment.

Troubleshooting Lab Management

External resources

Guidance and hands-on lab

Testing for Continuous Delivery with Visual Studio 2012

Testing for Continuous Delivery with Visual Studio 2012– Chapter 3: Lab Environments

Visual Studio Lab Management Guide

Videos

Managing lab environments for testing

Forum

Visual Studio ALM + Team Foundation Server Blog

See Also

Concepts

Testing the Application

Setting Up Test Machines to Run Tests or Collect Data