Virtual Servers for Testing

With the recent change in licensing fees (Free!!) for both Windows virtual PC and VMWare I’m starting to think that using a virtual server is the best way to setup a test environment for my company. We’re going to be getting a new ERP package early next year and we need a test server to try out all the software updates, windows updates, and other changes before applying them to the production server.

Does anyone else use virtulization technology for testing like that? Are there any drawbacks that you could share with me? It sounds almost too good to be true, I’m wondering what the catch is.

A couple of the very senior guys I work with swear by VMWare. I’ll ask if there are any drawbacks, but I wouldn’t be surprised if they say no. I’m looking into using the free edition myself, but just haven’t got around to it.

I use virtual machines for testing at my small home software company. They work well, certainly better than keeping 5-10 extra computers around.

Cons:

  • They’re a little slower than a “real” machine. VMWare’s faster than VirtualPC, but still not “native” speed.

  • You’re basically out of luck if your software needs any kind of video speed (animation, 3D acceleration, video), because these tend to emulate slow video cards, or fast video cards slowly.

  • You need a license for Windows (or whatever) on each virtual machine. If you’re a Windows shop and have more than one or two of these, I HIGHLY recommend the MSDN subscriptions that come with unlimited test licenses.

  • Networking can be a challenge to set up, depending on the networking of the host machine. I’ve had pretty poor luck having a host and client “share” a wireless connection, better luck with ethernet. One of my machines has two physical ethernet connections; I haven’t tried dedicating one of them to the virtual machine, but I suspect that would be the best case.

  • There’s a setup time involved in each one: you’ve got to install the test OS, do the updates, and configure your environment. On Windows you’ve pretty much got to activate in order to get the updates, so you’ll use up your activations quickly and have to call for more. Hint: COPY the virtual machine image once you get it “barely” set up, so that you can always return to a clean state instantly without all that re-installation.

  • VMs can allow your system to get viruses that it otherwise would be immune to. For example, if you use the Mac VirtualPC or Parallels, or Linux VMWare, you’re suddenly susceptible to Windows viruses and trojans (assumuing that’s the OS you’re hosting). So you basically have to manage security for multiple OSes simulataneously (which isn’t as big a deal as it used to be. Use a firewall and keep on top of your updates.)

Note that many of these “cons” apply to having real computers as well. Generally, unless I’m doing video/3D work, they don’t outweigh the benefits for me, and I almost always use virtual machines.

Outstanding, sounds very promising. I was thinking that in order to test an application properly the VM needs to emulate the same hardware that the production server will use. Is it an issue to get that going or do virtual machines emulate different hardware than the server it runs on? Thanks for the helpful replies!