

What is test environment management?

Test environment management is the process by which test machines (clients, servers, or both) are managed. Learn how to implement proper test environment management.

What is test environment management? How can it be achieved?

Test environment management is the process by which test machines (clients, servers, or both) are managed. There's a lot of data center management happening here. It's super-critical to have clean machines when running automated and manual tests; some groups I've worked with in Microsoft have thousands of physical or virtual machines (VMs) for running tests -- enough that it could require multiple full-time resources to manage them!

Modern lab management tools abound -- probably the best tool for managing labs is the use of virtual machines managed by a central tool. Microsoft's recent release of System Center Virtual Machine Manager (SCVMM) is a great tool for doing this -- it automates provisioning of machines, allows for state saving and quick image recovery, and provides centralized management of all of this. Coupled with enterprise-quality server hardware, test organizations can win significant reductions in both manual resource requirements and power, cooling and floor space. Note that the biggest constraint I have seen in virtualized test labs is hard disk space; most organizations find they need to invest either in a SAN or some very serious RAID array technologies. A knowledgeable virtualization vendor contact will help you determine the correct hardware for you.

Other vendors (VMware, for example) also offer competitive virtualization solutions.

So how would you implement this? First you need to capture your requirements -- do you need to be cross-platform, or do you support/test only on one platform? Do you require complete automation, or can some manual intervention be tolerated? How many virtualized machines do you need, and what are the required hardware specs? Can you run the automation you need in this environment?

Once you have researched and selected your virtualization technology, you need to ensure that the vendor supplying the technology also offers sufficient management control. Can you deploy VMs remotely with a touch of a button? Can you save state? (This is an incredible feature for testing -- when you find a bug, you can just "freeze" the machine's state until your developer has time to investigate.)

When you have all your requirements figured out, and you've selected your vendor, implement the solution. Factor in a serious amount of time for your test team to really figure out the environment and the new tools (expect as low as 50% efficiency during the first couple of weeks). Over the course of a few weeks, though, your productivity should end up net-positive.

Dig Deeper on Topics Archive