Cross-browser testing: All major browsers on ONE machine

browsercross-browserinternet explorervirtualization

Aim of this guide:

  • Running multiple unmodified native versions of Internet Explorer,
    Safari, Opera, Chrome and Firefox on a single machine, side-by-side.

Covered in part 1:

  • Table of contents
  • Which browsers have to be tested?
  • How to create a Windows XP VM which boots quickly, and never expires?
  • Where can the necessary software (VM image, browsers, … ) be downloaded?

Also covered in part 2:

  • Installation and configuration guide for IE, Firefox, Opera, Chrome and Safari.
  • Developer tools and shortcuts.
  • Time and disk space costs.

Many sections are independent. Eg, instructions on running multiple versions of a browser are generally applicable.

Best Answer

Contents

  1. Which browsers have to be tested?
    • Rules of thumb: Which browsers should be included?
  2. Preparation
    • Windows XP
    • Windows 7+ (for IE9+)
    • Browser downloads
      • Internet Explorer
      • Firefox
      • Opera
      • Chrome
      • Safari
      • Adobe Flash Player
    • Download summary
  3. Sandboxie

    Part 2: Installation and configuration
  4. Internet Explorer
  5. Firefox
  6. Opera
  7. Chrome
  8. Safari
  9. Developer tools (and shortcuts)
  10. Measured set-up time and disk space
    • Time needed per browser (install & config)
  11. Optimal usage
    • Homepage at http://10.0.2.2:8888/

1. Which browsers have to be tested?

Statistics are quickly outdated. For this reason, I refer to Usage share of web browsers on Wikipedia, and the following sites for the latest browser version information. Each site is suffixed by a brief usage guide.

  • Can I use - Browser usage table, based on data from StatCounter and other sources.
  • StatCounter - Statistic: Browser version | Time period: Last month screenshot.
  • W3Counter - View archived reports: January 2012 (Choose the last month). screenshot.
  • Wikimedia - Go to the bottom to open the latest report, SquidReportClients.
  • Clicky - This site offers statistics for individual versions screenshot.

Rules of thumb: Which browsers should be included?

  • Firefox: Latest ESR release + latest stable major version. Release notes | For developers | Rapid release schedule
  • Opera: 12.x + Latest stable version. Version history
    Since Opera 15, Opera uses the same engine as Chrome. Quite a lot of users are still using Opera 12 though (when Opera 15 was released, the UX significantly changed).
  • Safari: 5.1.7 (Windows) + Latest version. Release notes
    Unfortunately, Apple dropped support for Windows, so you need to get a Mac or run OS X in a VM to test pages in Safari.
  • Chrome: Latest stable version. Release notes
  • Internet Explorer: IE8+. Feature history
    This actually depends on your clients. This guide teaches how to get IE6 and 7 as well, but these browsers are already dead, or close to dead. IE8 is the last supported version of Internet Explorer on Windows XP, which is still used a lot.

Remark

These days, most web browsers use some form of rapid releases with automated updates. When this guide was written, the releases were not as frequent, and thus it was useful to set up a set of browsers without having to look back.
Unless you intentionally want to test applications in old browsers, just get the latest version of the browser and let the auto-updater take care of managing the version.

If you don't need too much flexibility, and quickly want to test a page, I recommend to take a look at BrowserStack.com. After signing up, you can get a 30-minute free trial that grants you access to a lot of desktop and mobile browsers, directly within your browser.


2. Preparation

Before setting up the machine, download all necessary files (see "Download summary" at the end of this section). All files are going to be shared with the virtual machine through a shared folderWhat? How?.

  • Virtualization software (VirtualBox is recommended, it is free even for commercial use. The instructions below are written with VirtualBox in mind.)
  • Windows XP
    • Download the IE6 XP image for VirtualBox from the modern.IE website. Extract the .ova file inside and run it to import it into VirtualBox. (Images are also available for other virtualization products such as VMware, Parallels, Virtual PC and Hyper-V)
    • Preparing the image for use:
      • VirtualBox settings: Enable the network adapter, but do not connect the VM to a real network.
      • VirtualBox settings: Create a read-only shared folder. This folder is going to be used to transfer data between the Host OS and the guest OS.
      • Run net use x: \\vboxsvr\WinShared (assuming that the shared folder is called WinShared. This will bind the network directory to the x: drive).
      • Optional: Install AntiWPA to disable the activation check if you will use the image for more than 30 days.
      • Optional: Disable the paging file (Computer > Properties > Advanced > Performance > Advanced > Virtual Memory > Change > No paging > Set [confirm]).
      • Optional: Disable unnecessary services via Start > Run > services.msc
        Order the rows by column Startup Type, and switch all "Automatic" services to "manual", according to the image. Whenever you want to install a MSI package, run net start msiServer ("Windows Installer"):
        Windows XP - services.msc
      • Optional: Disable Desktop clean-up wizard: Desktop > Properties > Desktop > Customize Desktop > Disable "Desktop Cleanup wizard every 60 days"
      • Optional: Install and configure Sandboxie (used for running IE7 and IE8 in the same IE6 virtual machine)
      • Optional: Install CCleaner, run it to configure it and clean junk.
      • Optional: Install 7-Zip (used for multiple Chrome's)
      • Shutdown the system via the guest OS (WinXP).
      • VirtualBox settings: Connect the VM to a real network.
        (Only Internet Explorer requires Internet during installation)
      • Optional: Create a snapshot of your VM, so that you can restore when you mess up in the next step.
  • Windows 7+ (for IE9+)
    • Download pre-built virtual machine images from the modern.IE website.
      These images are time-bombed, they expire 30 days after first use. When the images are expired, they shut down after an hour of use. If you do not wish to re-create the images every time, change the hardware clock of your VM before activating the image.
      In VirtualBox, for example, you can use VBoxManage modifyvm NAME_OF_VM --biossystemtimeoffset +3600000000 to set the time to 1000 hours in the future (use minus if you want to set it to some point in the past).
  • Browsers downloads

Download summary

For convenience, it's wise to have all installation files in the shared folder. Here's a brief (complete) list of all necessary files (ordered per step):


3. Sandboxie

Sandboxie is a lightweight tool which runs applications in a sandbox. It can also be used to install multiple versions of IE/Safari on a single Windows machine.

  • Download: http://sandboxie.com/index.php?DownloadSandboxie
  • Patch: The extended version is required to enable multiple sandboxes at a time. Pay them or visit YouTube.
    Running multiple IE/Safari versions simultaneously requires the extended version. If you don't mind testing one IE/Safari version at a time, the standard version is sufficient.

    Post-install:
  • Disable tips: "Configure > Tips > Hide All Tips"
  • By default, a yellow border appears around sandboxed applications. If you don't like this, go to Configure base: "Sandbox > DefaultBox > Sandbox Settings > Appearance".

    For each new IE/Safari version, you have to follow the following steps:
  • Create: "Sandbox > Create New Sandbox" - Enter a name, eg "IE8" and confirm.
  • Install: "IE8 > Run Sandboxed > Run Any Program"
    Select the desired installer, and press OK.
  • Shortcut: Upon finishing installation, use "IE8 > Explore contents", locate the binary and create a Desktop shortcut to the application.

All sandboxed file/registry changes are saved in C:\Sandbox. Applications in this directory start in a sandbox by default. Other programs can easily be started in a sandbox via the contextmenu: "Run Sandboxed" or "Send To > Sandboxie > IE8".

Cleaning up using CCleaner: Run CCleaner in the main environment, then in the individual sandboxes.

Navigate to: Part 2