56
Randy Pagels Sr. Developer Technology Specialist Microsoft Corporation www.teamsystemcafe.net Virtualizing your testing with Visual Studio Lab Management

Visual Studio Lab Management · PDF fileManual testing Automated testing. ... Visual Studio Lab Management Guide ... US Lab - Redmond US Lab - Hyderabad Library Server Host Machine

Embed Size (px)

Citation preview

Randy PagelsSr. Developer Technology SpecialistMicrosoft Corporation

www.teamsystemcafe.net

Virtualizing your testing with Visual Studio Lab Management

Modern app development Continuous value delivery and rapid response to change

User

Interface

Services

Business Processes

Business Rules and Logic

Service integrations

Data access

Identity

Data

Automated testing

Manual testing

Automated testing

Lab Management Overview

Lab Management Basics

Environments Create and manage virtual or physical dev/test

environments

Snapshots Take snapshots or revert to existing snapshots

Works on any virtual machine

Deploy current or any build to environment

Environment Viewer Interact with machines through the environment viewer

Define test settings for environments

Leveraging Virtualization

Lab management services

Environments

On-premise | Cloud

Benefits of Virtualization

TestingVirtual test environments can be used for

Testing CI builds using GUI automation

DebuggingDebug hard to reproduce defects

Maintaining snapshots of older builds

DemosDemos for customers

Test Production hot-fixes

Load Testing

Leveraging virtualization for ALM

Testing Architecture

VM Template Library SCVMM Environment Standard Environment

VM Template 2VM Template 1

Test Agent Test Agent Test AgentTest AgentVMMAgent

Web Server

VMDatabase Server

VMVM Host Web Server Database Server

Test AgentTest Agent

Team Foundation Server

System Center Virtual Machine Manager (SCVMM)

Team Build

Test Controller

Build-Deploy-Test

SCVMM Environment

Test AgentTest AgentVMMAgent

Web Server

VMDatabase Server

VMVM Host

Team Foundation Server

Test Controller

Team Build

(1) Get Source Code (2) Compile projects

(7) Send test

results

(6) Execute

automated tests

(3) Copy build to running

environment

(4) Run deployment scripts for

each machine

(5) Create environment snapshot

(8) Publish results to

Team Foundation Server

Environment DifferencesSCVMM Environment Standard Environment

Build-Deploy-Test

Snapshot / Restore

Share Bug Snapshots

Network Fencing

3rd Party Virtualization

Physical Machines

Test Controller

Run automated tests remotely

Distribute automated tests to multiple

environments

Run tests and collect test data remotely

using Microsoft Test Manager

Run tests in a lab environment

Deploy applications using a build-deploy-

test workflow

Test AgentsManage testing, workflow, and network

isolation

Scale out load generation

Distributed data collection

Distributed test execution

Automatically installs test environments

Can be manually installed/maintained

using the VMPrepTool

Sharing and Libraries

IT Administrator Tester

Import VMs

Create Environments

Test in Environments

Store Environments

Manage virtual machine infrastructure

Create, deploy, and manage virtual machines

Monitor and manage hosts/library servers

Manage global configuration settings

Save Environments in Library

Create Active Environments

VM Template Library

Test Agent

SysPrepped “golden images’

Win Server 2008

Win Server 2012

Win XP SP 3

Win Vista SP 2

Win 7 SP 1

Win 8

OS Support

4 machine environment

1) Domain Controller

2) Client VM

3) Web Server VM

4) Database Server VM

Self Provisioned VM Environment

Lab Management

Save costs by

virtualizing your

labs

Licensing

Lab Management is per CPU license for the hosts you want to manage

For client you need either Ultimate/Test Professional

SCVMM license for dev/test is included.

Guest OS license is part of MSDN subscriptions

VMWare Support

Support through use of Standard Environments

Resources

Visit Team System Café Today!The door is open 24/7 at the café! Stop by for a cup of joe and delicious tidbits on AppDev topics!

http://www.teamsystemcafe.net

Using a Lab Environment for Your Application Lifecycle

Getting Started with Lab Management

Guidance for Creating and Managing SCVMM Environments

Cloning Virtual Machines through Network Isolation

Creating Lab Environments

Managing Lab Environments and Virtual Machines

Testing for Continuous Delivery with Visual Studio 2012

Setting Up Automated Build-Deploy-Test Workflows

Lab Management Resources

Best Practice Topology GuideTopology 1 - Multiple AT, Load Balancer and Test network with firewall settings, controlling the test traffic in and out of Corp network

Network load balancer

Firewall rules

Topology 2 - Multiple ATs and DTs without load balancers and Test network with SAN based library and host

SAN support

Topology 3 - TMG, Windows NLB and with Test apps having DB tier outside of virtual environment

Setting up rules in Threat Management Gateway

Deployment and testing on a shared machine outside the envt

Topology 4 - Multiple ATs and DTs, load balancers and environments joined to a different domain

DNS conditional forwarding

Visual Studio ALM + Team Foundation Server BlogVisual Studio Team

Installing TFS 2012 with Lab Management 2012 BlogBy Martin Hinshelwood

Visual Studio Lab Management videosLab Management Team

Visual Studio Lab Management GuideBy the Visual Studio Rangers

Other resources

Lab Management Summary

Virtual Machines

Hyper-V Host

Automated Build-

Deploy-Test Workflow

Reduces Hardware Utilization

Remote Diagnostic Collection

Virtual Environment Setup/Tear

down

Built on Hyper-V

Integrated with TFS 2012

Enabled by SCVMM 2012Integrated management

Multi-hypervisor management

P2V and V2V

Template deployment

Cloning

Optimize resource usage

Managed by Microsoft Test Manager

Appendix

Lab Management HighlightsCreate richer actionable bugs

Simplifies environment setup and snapshots

Create checkpoints to aid defect resolution

Quickly debug issues in the same environmentConnect to the test environment snapshot with network isolation

Automate end-to-end workflowOut of the box build-deploy-test automation workflow

Revert to baseline configuration

RequiresVisual Studio Ultimate or Visual Studio Premium

Team Foundation Server

Microsoft Test Manager

IncludesSystem Center Virtual Machine Manager license

IIS DB

10.10.1.5 10.10.1.6

172.22.48.15 172.22.48.16

Copy 1

IIS DB

10.10.1.5 10.10.1.6

172.22.48.17 172.22.48.18

Copy 2

Internal network

Lab

network

Lab Management Walkthrough

Reviewing a Rich Bug

Detailed test steps including indexed video recording of test session and

exact failed step

A

• Environment snapshot taken and attached

• Screen capture showing exact point of failure

B

SCVMM 2012

Create new multi-machine environment

choices

Start or Shutdown environments

Choose between two environment types

Configure machine to run UI tests

Create a multi-machine environment as close to production

as possible for testing

Select the special lab build

template

Change the lab wizard

workflow parameters

Select an environment to

deploy a build to

Queue a new build or

deploy an existing one

Specify the deployment options to

move application to servers

Select the Test Plans and Test

Suites to run in environment

Test against Lab

Environments Automatically

Auto deployment of current

build

Workflow run for

Deployment and Lab

Thumbnail view of each machine in

the environment

Test Agent automatically started

Environment snapshot taken

and attached as a link with bug

Developers can quickly debug

issues on the exact same testing

environment

Storing in Library

Select environment to store

Easily deploy currently stored

environments

Names of all the environments

stored in the library

Right-click to connect to an

environment

Connect to individual machines via

the environment viewer

See each machine in

environment

Shows desktop on individual

machine via the environment

viewer

Complete Snapshot

maintenance across ALL

machines in environment

Shows test execution in

environment

Support for GEO-Distributed Labs

Host Group-US

TFS App Tier

Library Share-US

Library Share-India

Host Group-India

Host MachineHost Machine

Host Machine

US Lab - Redmond

US Lab - Hyderabad

Library Server

Host MachineHost Machine

Host Machine

Library Server

SCVMM Environments Standard Environments

Testing

Run manual tests

Run coded UI and other automated tests

File rich bugs using diagnostic adapters

Build deployment

Automatic build-deploy-test workflows

Environment creation and management

Use physical machines in addition to virtual machines

Use third-party virtual machines

Automatically install test agents

Save and deploy lab environment snapshots

Create lab environments from VM templates

Start/stop/snapshot environment

Connect to the environment using Environment Viewer

Run multiple copies of an environment using network isolation

Environment Differences

REQUIREMENTS

MonitorSprint

WORKING SOFTWARE

DefineIdeation

DevelopIdea to working software

• PowerPoint Storyboarding

• Agile Planning Tools

• Sprint, Backlog, Portfolio

• Code Lens

• Team Rooms

• Suspend & Resume

• Code Reviews

• Feedback Collection

• Unit Testing

• Exploratory Testing

• Continuous Integrations

• Continuous Deployments

• SCOM Integration

• IntelliTrace in Production

• PreEmptive Analytics

• Understand the Domain

• Understand Code Complexity

• Maintain Control

OperateDeployment to feedback

ArchitectArchitectural Discovery

MeasureActionable learning

• Continuous Integration

Continuous Value Delivery