Monday, April 21, 2008

VMWare and applicances

Yet another tool that I use on a daily basis is the use of virtual machines. If you don't know what this is, basically its a complete emulator for an operating system within your current operating system. Think of it this way - you can run a complete version of Windows XP within Windows XP. This is useful when you don't want to contaminate your own environment with software that might be unstable, or vise versa. Another reason is that you can create a client-server environment that is completely isolated and running on a desktop without the need for multiple physical machines.

Now, this is not an out-of-the-box tool. Companies give this technology away for free to run on your own system. Microsoft Virtual PC/Server and VMWare Server are both freely available for you to try out. (At work, I run VMWare Workstation because it has a lot of the branch/snapshot features I like).

What got me jazzed a few days ago was that MS is giving free 30 day eval of Windows 2003! Very useful given the limited amount of licenses I have access to. This is an interesting development too because MS has their own competing product and they are bowing to VMWare's dominance at the moment.

What are appliances? Basically pre-built versions of OS's that have the basic configuration completed so you can run your tests. In general, this is useful because you don't spend time having to setup a whole new environment for this effort.

I have been using appliances for quite a while. I use VMWare at home to run a Linux box (well, that VM on a Mac, so... Linux on UNIX is an interesting divide too) This would be super cool - I can run windows on my mac box for free! I run VMWare Fusion on my Mac at home.

So, why I am I talking about VMWare and how is this useful for testing? Basically if you're doing any type of testing, such as but not limited to:
  • Regression tests
  • Configuration Testing
  • Compatibility / Conversion Testing
  • Installability Testing
  • Functionality Analysis Testing
  • Cross-function analysis
  • etc.
... this gives you the ability to do a whole lot of testing without having to have different physical environments available. All of this can be done virtually and with a lower setup time. A very effective tool for those in software development.