Background
A few months ago, I was asked to investigate a method for testing multiple web browsers inside a corporate environment where each desktop is governed by a corporate standardized image. I'm sure you know this scenario, where a testing team is required to ensure compatibility with multiple released and pre-released internet browsers. However, having multiple individual PC's configured with multiple IE versions is costly and difficult from a corporate standards perspective.
Furthermore, the browser market is rapidly changing. The entrenchment of Microsoft Internet Explorer is slowly eroding with Firefox, Safari and newcomer Chrome taking a substantial portion of the browser market. Even operating system usage is more diversified than ever before in the Internet Age, with MacOS and Linux making significant inroads.
How might this be of benefit
Functional testing, automation and security testing should be performed against multiple browsers and environments. Every browser is designed differently, and follows its own interpretation of the "road rules". So, not only can a web site look different, it can also behave differently too. If you only test your website on Internet Explorer 7, you could be inadvertently displaying a broken website to over 50% of your website visitors.
Furthermore, other solutions (such as using separate standalone PCs, or VMWare) incurs additional hardware and/or licensing costs. This proposal allows this testing to be performed with no additional cost.
Solution Overview
The Internet Explorer approach involves using Microsoft Virtual PC, which is a virtual machine platform (you've probably heard of VMWare). Using virtual machines allows the software tester to run a second operating system on their computer as if it were just another application. In addition, Microsoft provides a method to do this with minimal effort, and zero-cost.
The Non-Internet Explorer approach simply involves installing any non-IE browsers on your local testing machine. Firefox, Chrome and Safari will all run side-by-side and multiple versions can be installed by specifying different install locations.
Introducing Microsoft Virtual PC
Originally designed to allow Apple computers to run a copy of Windows (and hence Windows applications). It has since been released freely for use on the Windows operating system. Nowadays, Microsoft Virtual PC is a very useful testing tool for ensuring cross-browser compatibility for web-applications.
Please note, that Microsoft Virtual PC is quite demanding on system memory therefore at an absolute minimum you should have at least 1Gb of system memory. However 2Gb is strongly recommended.
Microsoft Virtual PC can be downloaded from the following location: http://www.microsoft.com/windows/downloads/virtualpc/default.mspx
Internet Explorer Application Compatibility VPC Images
Normally using virtual machines requires additional Microsoft Windows licenses, in addition to the license that comes with your computer. This can be very cost-prohibitive, as providing and maintaining extra licenses for an entire test team.
Microsoft provides freely available virtual machine images for Virtual PC of popular Microsoft operating system and browser combinations. These images do not require licenses, however they do have an expiry date (normally 3-4 months). This means that when your VM image expires you will need to re-download another copy.
Despite the inconvenience, it allows you to ensure you are testing against the most pertinent operating system/browser combinations. In addition, these images are preconfigured and ready to go.
The Internet Explorer VPC Images are available at: http://www.microsoft.com/Downloads/details.aspx?FamilyID=21eabb90-958f-4b64-b5f1-73d0a413c8ef&displaylang=en
IMPORTANT: Please ensure you read and understand the license agreement that is displayed when you install the VPC image. This is a non-standard EULA, and therefore you should read it thoroughly before continuing.
Getting Started with Microsoft Virtual PC
When you start Microsoft Virtual PC for the first time, you will be presented with a Virtual PC Console. A New Virtual Machine wizard should appear (if it doesn't, click "New...").
Click Next, and select the second option.
Click Next, and enter the name for your virtual machine.
Complete the rest of the wizard, and click Finish. Now in the settings dialog, select Hard Disk 1 and specify the Virtual Hard Disk File as the VPC image that you previously downloaded.
In addition, also configure the amount of memory to use. At a minimum select 512Mb, however 1Gb is recommended (particularly for Windows Vista images). In addition, set Network Adapter 1 to be "Shared Networking (NAT)" (NAT means that your virtual machine will be able to access your organization’s network, but will not directly connect to it).
When you're done, click Ok and Start your new Virtual Machine.
Up And Running! Remember that your VPC image will periodically expire every few months and you will need to redownload it.
Tips for ensuring maximum cross-browser compatibility
The following tips will help to reduce browser compatibility problems:
- Develop using Firefox and test on other browsers.
- Develop using XHTML standards rather than vanilla HTML.
- Use HTML validators to identify non-conforming code. See http://validator.w3.org/
- Use http://browsershots.org/ to check public-accessible pages on multiple environments.
Tech tips from JDS

Browser Console
Read More

Glide Variables
Read More

Understanding Database Indexes in ServiceNow
Read More

Fast-track ServiceNow upgrades with Automated Testing Framework (ATF)
Read More

Read More

Splunk .conf18
Read More

ServiceNow Catalog Client Scripts: G_Form Clear Values
Read More

Is DevPerfOps a thing?
Read More

The benefits of performance testing with LoadRunner
Read More

Monitoring Atlassian Suite with AppDynamics
Read More

5 quick tips for customising your SAP data in Splunk
Read More

How to maintain versatility throughout your SAP lifecycle
Read More

How to revitalise your performance testing in SAP
Read More

Reserve and import data through Micro Focus ALM
Read More

How to effectively manage your CMDB in ServiceNow
Read More

ServiceNow and single sign-on
Read More

How to customise the ServiceNow Service Portal
Read More

Integrating a hand-signed signature to an Incident Form in ServiceNow
Read More

Integrating OMi (Operations Manager i) with ServiceNow
Read More

Implementing an electronic signature in ALM
Read More

Service portal simplicity
Read More

Learning from real-world cloud security crises
Read More

Static Variables and Pointers in ServiceNow
Read More

Citrix and web client engagement on an Enterprise system
Read More

Understanding outbound web services in ServiceNow
Read More

How to solve SSL 3 recording issues in HPE VuGen
Read More

How to record Angular JS Single Page Applications (SPA)
Read More

Calculating Pacing for Performance Tests
Read More

Vugen and GitHub Integration
Read More

What’s new in LoadRunner 12.53
Read More

Filtered Reference Fields in ServiceNow
Read More

ServiceNow performance testing tips
Read More

Monitor Dell Foglight Topology Churn with Splunk
Read More

Straight-Through Processing with ServiceNow
Read More

Splunk: Using Regex to Simplify Your Data
Read More

ServiceNow Choice List Dependencies
Read More

Tips for replaying RDP VuGen scripts in BSM or LoadRunner
Read More

Incorporating iSPI metric reports into MyBSM dashboard pages
Read More

Using SV contexts to simulate stored data
Read More

What’s new in LoadRunner 12.02
Read More

Recycle Bin for Quality Center
Read More

LoadRunner Correlation with web_reg_save_param_regexp
Read More

LoadRunner 11.52
Read More

QC for Testers – Quiz
Read More

Agile Performance Tuning with HP Diagnostics
Read More

What’s new in HP Service Virtualization 2.30
Read More

Understanding LoadRunner Virtual User Days (VUDs)
Read More

Problems recording HTTPS with VuGen
Read More

Improving the management and efficiency of QTP execution
Read More

Performance testing Oracle WebCenter with LoadRunner
Read More

Generating custom reports with Quality Center OTA using Python
Read More

Asynchronous Communication: Scripting For Cognos
Read More

How to fix common VuGen recording problems
Read More

Monitoring Active Directory accounts with HP BAC
Read More

URL Attachments in Quality Center
Read More

What’s new in LoadRunner 11.00?
Read More

Restore old License Usage stats after upgrading Quality Center
Read More

Changing LoadRunner/VuGen log options at runtime
Read More

Restricting large attachments in Quality Center
Read More

Retrieving Quality Center user login statistics
Read More

A comparison of open source load testing tools
...
Read More

Worst practices in performance testing
Read More

LoadRunner Sales Questions
Read More

LoadRunner Analysis: Hints and tips
Read More

LoadRunner in Windows 7
HP Loadrunner 11 is now available. This new version now natively supports Windows 7 and Windows Server 2008. I ...
Read More

Using the QuickTest Professional “commuter” license
Read More

Installing HP Diagnostics
Read More

Understanding LoadRunner licensing
Read More

VuGen scripting for YouTube video
Read More

Creating a Web + MMS vuser
Read More

Why you should use backwards dates
Read More

How to get the host’s IP address from within VuGen
Read More

VuGen scripting for BMC Remedy Action Request System 7.1
Read More

Unique usernames for BPM scripts
Read More

Mapping drives for LoadRunner Windows monitoring
Read More

VuGen feature requests
Read More

LoadRunner script completion checklist
Read More

Querying Quality Center user roles
Read More

Querying the Quality Center Database
Read More

HPSU 2009 Presentation – Performance Testing Web 2.0
Read More

Scaling HP Diagnostics
Read More

Global variables aren’t really global in LoadRunner
Read More

Client-side certificates for VuGen
Read More

Detect malicious HTML/JavaScript payloads with WebInspect (e.g. ASPROX, Gumblar, Income Iframe)
Read More

VuGen code snippets
Read More

Integrating QTP with Terminal Emulators
Read More

Why you must add try/catch blocks to Java-based BPM scripts
Read More

Querying a MySQL database with LoadRunner
Read More

ANZTB 2009 Presentation: Performance Testing Web 2.0
Read More

How to make QTP “analog mode” steps more reliable
Read More

Testing multiple browsers in a Standardized Operating Environment (SOE)
Read More

DNS-based load balancing for virtual users
Read More

What’s new in LoadRunner 9.50?
Read More

Calculating the difference between two dates or timestamps
Read More

The “is it done yet” loop
Read More

Think time that cannot be ignored
Read More

Understanding aggregate variance within LoadRunner analysis
Read More

Load balancing vusers without a load balancer
Read More

Harvesting file names with VuGen
Read More

Parameterising Unix/Posix timestamps in VuGen
Read More

HP Software trial license periods
Read More

How to handle HTTP POSTs with a changing number of name-value pairs
Read More

VuGen string comparison behaviour
Read More

Persistent data in VuGen with MySQL
Read More

How to write a Performance Test Plan
Read More

Unable to add virtual machine
To get ...
Read More

LoadRunner scripting languages
Read More

WDiff replacement for VuGen
Read More

Testing web services with a standard Web Vuser
Read More

Why your BPM scripts should use Download Filters
Read More

Querying your web server logs
Read More

Importing IIS Logs into SQL Server
Read More

QTP “Uninstall was not completed” problem
Read More

VuGen correlation for SAP Web Dynpro
Read More

How to save $500 on your HP software license
Read More

Testing and monitoring acronyms
Read More

Solving VuGen script generation errors
Read More

An introduction to SiteScope EMS Topology
Read More

Using the BAC JMX Console
Read More
For those testing against IE apps:
Internet Explorer is a web browser based on the Trident render engine, which does not follow the W3C Web Standards. Internet Explorer Collection contains multiple standalone versions of IE, which can be used at the same time.
http://www.softpedia.com/get/Internet/Browsers/Internet-Explorer-Collection.shtml
Your solution to the problem is valid but it doesn’t really discuss any other options than a Microsoft provided solution, so to play devils advocate for a time:
– your solution still has the same extra hardware costs as using any other virtual machine solution (needing more memory for example)
– other virtual machine host software (players) are also free just like VirtualPC (VMware Player and others)
– other virtual machine players can easily load the VirtualPC images and run them effectively (but there may be licensing issues with the images you download from Microsoft, they may only legally let you use them in VirtualPC, check the EULA)
– other players may give better performance than VirtualPC (my experience is the VMWare performs better but others may as well)
I suppose in ending I just wanted to raise that the only difference in costs between the proposed VirtualPC and other free virtual machine players is whether or not you can use the freely provided images from Microsoft based on the EULA.
My personal preference is to build and manage my own virtual machine images as the costs in licensing really aren’t that significant to most testing efforts. I prefer the flexibility of being able to build a VM that matches “generic users” or multiple “corporate SOE” versions or just wierd version mixes that MS may not provide in their downloadable images (eg up to date XP with ‘most’ service packs but with IE6 not IE7 or IE7 but without MediaPlayer11 to test a video streaming site).