At Talis were developing a number of web based applications built upon our platform. When building any web based application testing across different browsers is vitally important due to compatability issues across browsers – these issues arise from differing levels of compliance to standards, and because browser vendors don’t support common baselines. This makes testing not only important but also very frustrating at times.
Here’s some browser usage statistics I found over at w3schools which show’s how commonly used each of these browsers are, the most common at the moment is IE6 followed closely by FireFox:
2007 | IE7 | IE6 | IE5 | FireFox | Mozilla | Safari | Opera |
May | 19.2% | 38.1% | 1.5% | 33.7% | 1.3% | 1.5% | 1.6% |
April | 19.1% | 38.4% | 1.7% | 32.9% | 1.3% | 1.7% | 1.6% |
March | 18.0% | 38.7% | 2.0% | 31.8% | 1.3% | 1.7% | 1.6% |
February | 16.4% | 39.8% | 2.5% | 31.2% | 1.4% | 1.7% | 1.5% |
January | 13.3% | 42.3% | 3.0% | 31.0% | 1.5% | 1.7% | 1.5% |
Now, when developing a web based application it is possible for developers to have most of these browsers installed on a single machine. For example it is now possible for me as a developer to install Firefox, Safari, Netscape, Opera and a single version of IE on my Windows desktop.
The problem that Im often faced with though is that more often than not we have to test applications across multiple versions of IE. Out of the box it isn’t possible to have two different versions of IE installed on the same machine. This is largely due to the fact that IE is integrated so tightly into the OS so as soon as you update to IE7 it removes IE6.
There are some standalone installers out there that allow you to run multiple IE’s under windows. Here’s one such utility that some of my colleagues are using successfully. Unfortunatly I haven’t managed to get it to work for me, it crashes a lot on my machine, as is often the case when your forced to hack around with DLL’s. So I started looking for some alternatives.
I use VMWare a lot – the funky laptop I have has hardware support for virtualisation which means my Virtual Machines run fast enough for me to use them for day to day development work, I like the flexibility this approach gives me, for example I think I currently have a Red Hat, Ubuntu, Fedora Core 5, 6 and 7 VM’s built on my laptop and depending on what I want to do I just fire up the one I want to use. Since I do use linux quite a lot I was intrigued when I came across ies4Linux.
IEs4Linux is a simple way to have Microsoft Internet Explorer running on Linux. It currently installs IE6, IE5.5, IE5.0 as well as several service pack versions of these onto a single box. To install it under Fedora Core, as I did, just follow these simple instructions:
Open a terminal, login as a root and install the following dependencies:
Now open a terminal, logging in with your normal user account and do the following:
The installer is interactive and will ask you which particular versions you wish to install. After that’s all done it will place icons on your desktop. A VM can see the host machine so it really doesn’t matter whether your developing your site under linux natively or if your doing the bulk of your development under Windows. You can still fire up IE on your VM and test how your web application looks and behaves. I’ve used this approach on a couple of projects and it seems to be working out quite well.
Additionally, sometimes you don’t actually want to see to test the behaviour of the web app, you simply want to verify that it renders consistently across different browsers. A number of web based services have started appearing that allow you to specify a URL and will capture an image of that page rendered inside a particular version of a browser, or even a set of browsers. NetRenderer is one such service, which I quite like because of its simplicity, that will capture images of a page in different flavours of IE and display them immediately. On the hand there is also BrowserShots which is a far more comprehensive service that will take images of web pages on different browsers across different OS’s, this service however does not return those images immediately but batches them up and you have to wait around half an hour which can be tedious – however the service is still being developed and we should be seeing real-time offerings at some point in the future.