R – What are the key use cases for use of virtualization in software development

development-environmentvirtual-pcvirtualizationvmware

What are the key use cases for the use of virtualization — that is, running one or more "virtual PCs" using software such as VMWare and Microsoft Virtual PC — for software development?

Also — are there other instances/uses of virtualization that aren't covered by my definition above (use of a tool like MS Virtual PC or VMWare), and that are useful to developers?

My impetus for asking is this StackOverflow comment by Metro Smurf asserting "You'll wonder how you ever developed without it!", regarding use of virtualization.

(Please include just one use case per response. Thanks!)

Best Answer

Application testing in multiple environments is one obvious use of virtualization that I'm aware of. Testing your application on other operating systems (without requiring additional physical computers to do so), as well as testing that involves software that generally only allows you to install a single version on a given machine (such as the Internet Explorer browser; running both IE6 and IE7 on the same machine is not an officially supported configuration), are good candidates for virtual machine usage.