560 likes | 883 Views
Virtualizing your testing with Visual Studio Lab Management. Randy Pagels Sr. Developer Technology Specialist Microsoft Corporation www.teamsystemcafe.net. Application lifecycle management. Modern app development Continuous value delivery and rapid response to change. ALM your way.
E N D
Virtualizing your testing with Visual Studio Lab Management Randy Pagels Sr. Developer Technology Specialist Microsoft Corporation www.teamsystemcafe.net
Application lifecycle management Modern app development Continuous value delivery and rapid response to change
ALM your way Agile Planning Team Rooms Source Repos Test Case Management Feedback Management Build and Continuous Integration Team Foundation Server Visual Studio Online
Continuous acceptance testing Testing toolbox Role tailored tools • Manual testing • User testing • Ad-hoc exploratory testing • Planned manual testing • Automated testing • Keyword testing • UI automation testing • Performance testing Continuous integrations Build | Deploy | Test Virtual lab automation SIT Dev UAT Prod Automated testing Unit testing Integration testing Performance testing Load testing Stress Shortened cycle times
Why Lab Management? Test Matrix Lots of configurations to test Agile demands Faster build, test, deploy cycles Environments Multi-tier, multi-machine environments Debugging Significant % of bugs hard to repro Reset Machines Need build deployments on clean state Hardware Utilization is poor
What are the key features? Standard environments Simplified environment status Auto installation of test agents One test agent that does everything Support for clustered hosts using SCVMM
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
Lab management automation Development and Testing Environments Repro environments Development environments Test environments On-premise | Cloud Lab management services Environment provisioning Environment templates Environment snapshots
Benefits of Virtualization Testing Virtual test environments can be used for Testing CI builds using GUI automation Debugging Debug hard to reproduce defects Maintaining snapshots of older builds Demos Demos for customers Test Production hot-fixes Load Testing
Testing Architecture Team Foundation Server Test Controller Team Build System Center Virtual Machine Manager (SCVMM) VM Template Library SCVMM Environment Standard Environment VM Template 1 VM Template 2 Web Server VM Database Server VM VM Host Database Server Web Server Test Agent Test Agent Test Agent Test Agent Test Agent VMMAgent Test Agent
Build-Deploy-Test (1) Get Source Code (2) Compile projects Team Build Team Foundation Server (8) Publish results to Team Foundation Server (3) Copy build to running environment SCVMM Environment Test Controller (7) Send test results (4) Run deployment scripts for each machine (6) Execute automated tests Web Server VM Database Server VM VM Host (5) Create environment snapshot Test Agent Test Agent VMMAgent
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 Agents Manage 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 Tester IT Administrator • 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 Self Provisioned VM Environment VM Template Library SysPrepped “golden images’ Domain Controller Client VM Web Server VM Database Server VM Create Active Environments Win Server 2008 Win Server 2012 Win XP SP 3 Win Vista SP 2 Win 7 SP 1 Win 8 Save Environments in Library Test Agent OS Support 4 machine environment
DEMO Lab Management
Value Prop for Developers/Testers • Improved Productivity • Improved Quality • Improved dev/test relationship & collaboration Save costs by virtualizing your labs
FAQ • 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
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! blog’s blogroll freshly brewed news downloads evidence documents slides freshly brewed news training links lab management links user groups events in person webinars most popular items popular items help & how too training books FAQs FAQs TFS ALM azure & windows 8 resource links http://www.teamsystemcafe.net
Lab Management Case Studies • Confused.com - Price Comparison Site Increases Revenue Opportunities with Automated Development Tools • ICONICS - Global Software Developer Expects to Double Productivity, Cut Costs by 10 Percent • Notion Solutions - Consulting Company Uses Latest Development Tools to Improve Software Test Process • Minitab - Software Developer Uses Integrated Tool Set to Cut Costs and Streamline Development • Fujitsu Canada - Consulting Firm Improves Productivity with Expanded Reporting, Version Control Tools
Lab Management Case Studies (cont.) • EPiServer - Web Content Management Firm Streamlines Development, Testing with Integrated Tools • Readify - Software Vendor Speeds Testing, Improves Collaboration, and Wins New Business • Länsförsäkringar AB - Insurance Company Expects to Cut Software Development Time and Costs by 20 Percent • Equiniti - Share Registrar Cuts Testing Time and Improves Application Lifecycle Management • K2 - Software Company Improves Testing and Debugging Efficiency by 20 Percent
Lab Management Resources • 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
Best Practice Topology Guide Topology 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
Other resources • Visual Studio ALM + Team Foundation Server Blog • Visual Studio Team • Installing TFS 2012 with Lab Management 2012 Blog • By Martin Hinshelwood • Visual Studio Lab Management videos • Lab Management Team • Visual Studio Lab Management Guide • By the Visual Studio Rangers
Lab Management Summary • Built on Hyper-V • Integrated with TFS 2012 • Enabled by SCVMM 2012 • Integrated management • Multi-hypervisor management • P2V and V2V • Template deployment • Cloning • Optimize resource usage • Managed by Microsoft Test Manager Automated Build-Deploy-Test Workflow Reduces Hardware Utilization Remote Diagnostic Collection Virtual Environment Setup/Tear down Hyper-V Host Virtual Machines
Questions? Randy Pagels rpagels@microsoft.com www.teamsystemcafe.net
Lab Management Highlights Create richer actionable bugs Simplifies environment setup and snapshots Create checkpoints to aid defect resolution Quickly debug issues in the same environment Connect to the test environment snapshot with network isolation Automate end-to-end workflow Out of the box build-deploy-test automation workflow Revert to baseline configuration Requires Visual Studio Ultimate or Visual Studio Premium Team Foundation Server Microsoft Test Manager Includes System Center Virtual Machine Manager license
Network Isolation Internal network • An internal virtual network is created for each environment • VMs get the same MAC, IP address and computer name in all copies • VMs are also connected to the lab network with a unique IP address and computer name • Domain-based apps require and internal domain controller Copy 1 10.10.1.5 10.10.1.6 IIS DB 172.22.48.16 172.22.48.15 Lab network Copy 2 10.10.1.5 10.10.1.6 IIS DB 172.22.48.18 172.22.48.17
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
Lab Center – Tester Experience Create new multi-machine environment choices Start or Shutdown environments
Lab Center – Tester Experience A Choose between two environment types
A Configure machine to run UI tests
A Create a multi-machine environment as close to production as possible for testing
Team Build – Build Setup A Select the special lab build template Select an environment to deploy a build to C B Change the lab wizard workflow parameters
Team Build – Build Setup D Queue a new build or deploy an existing one
Team Build – Build Setup Select the Test Plans and Test Suites to run in environment Specify the deployment options to move application to servers E F
Team Build – Build~Deploy~Test A Workflow run for Deployment and Lab B Auto deployment of current build C Test against Lab Environments Automatically
Lab Center – Automated Test Execution Test Agent automatically started Thumbnail view of each machine in the environment
Visual Studio – A Rich Bug Developers can quickly debug issues on the exact same testing environment B A Environment snapshot taken and attached as a link with bug
Lab Center – Storing Environments Select environment to store A B Storing in Library
Lab Center – Retrieving Environments Easily deploy currently stored environments A B Names of all the environments stored in the library