The majority of the development I did in the past was on a PC running Microsoft Windows, mainly XP Pro. As a default set of development tools, I would have the newest version of the different available browsers including Firefox, Opera, Safari and Chrome. This was a great setup for testing in the latest and greatest browser versions but did nothing for testing in those older versions that the majority of the Web population were using. I explored many different avenues to fulfill my testing obligations and came up with a variety of solutions. None were optimal but they served their purpose. I initially had an older PC that I used only for testing purposes that had older versions of IE, Opera, Netscape and Firefox. This worked to a point but was a real pain switching amongst multiple machines just to do testing. I started using standalone versions of IE from evolt.org but this did nothing for testing in other browsers. There were a few online services that provided you with a screenshot of your page running in a variety of browsers and versions. This was good, but all it showed you was a picture – you can’t easily develop from that. There had to be a better way but I had not found it. But then…
As part of my teaching duties I had to teach 2 sections of Windows Server Administration. The lab I was provided was full of outdated, mostly donated PCs and a rack with 20 Dell servers. I thought this would be a piece of cake; students would install their server OS at the rack and then administer them remotely from their desktops. Then reality set in. It took nearly a week of class periods to get every students’ OS installed at the rack because only a limited number of students could be in front of the terminal at a time. That first semester was an absolute nightmare but it got me looking for a solution to this problem. Being a Web guy I had to think outside of the box on this one. I looked at server virtualization using VMware and found it to be a viable solution. I petitioned for new PCs and the next semester I was in business. I had the students install a virtual instance of their server OS and all was completed in a single class period. What an amazing tool.
It eventually dawned on me that I could provide my students with multiple virtual machines with a variety of OS and browser combinations to facilitate testing. Praise ye the Web Gods, I have been enlightened… Not really, but I had found a solution to my testing woes. The best solution? No. But a step in the right direction I thought. There was still that little issue of not being able to test on the Mac platform. Once again I petitioned for some shiny new Mac’s for my lab and was approved. I eventually received a new Mac Pro and 3 new MacBook Pros to use in the lab. The students received a healthy dose of Mac goodness and we were able to do some proper testing of our web pages and applications.
I have recently converted to the Mac platform for most of my development tasks. I fell back on the virtualized OS for browser testing but grew tired of switching between virtual machines. I again started searching for another solution. My wife found the ies4osx project and I gave it a shot. It worked ok but was not without the occasional bug. This still didn’t solve the problem for other browser versions. I went back to the browser based solutions and found great improvements on that front and most solutions had a version that was free. Who can argue with free right?
I checked out a number of solutions starting with browsershots.org. Currently BrowserShots offers some 96 different OS and browser combinations to choose from. Their free service is great but has a major limitation; you have to wait on paid users to get access first and again, you only get a picture. I ran across litmusapp.com. Litmus provided the somewhat useful screenshot of your page in a variety of browsers like BrowserShots, but their free plan only allowed you access to IE7 and FF2. In order to gain access to their lineup of 23 different OS/browser combos you had to pony up a minimum of $24.00 USD per month, a steep price for what you get IMHO. There is browsrcamp.com for testing those Mac versions of your favorite browsers and, for a very reasonable price (starting at $3.00 USD for a 2 day subscription), they even give you the ability to take control over a Mac OS X system preconfigured with all the Mac browsers.
The majority of my findings were screenshot based services. A number of relatively new offerings give you the ability to do live testing through a Java applet in the browser, a local VNC client, or a virtualized technology. CrossBrowserTesting was the first of these offerings I ran across. They offer both the Java applet and VNC connections with a 5 minute limit per session for free accounts. They have the widest available OS / browser combinations I’ve been able to find. Next is XenoCode which offers virtualized browser versions running in your browser. Unfortunately this is a windows only offering which did nothing for testing from my shiny Mac.
Over time there has been a marked improvement in the services and techniques available for testing web apps in a multitude of OS and browser configurations. I can assure you that these services and offerings will only continue to improve and flourish in the future.
My question to you is this: Will we ever see a day where these cross browser services will NOT be needed?
I use these services in order to provide the users of the sites I build the greatest possible experience no matter what browser they choose to surf the Web. Am I promoting non-standards compliance by supporting these older browsers? I feel that is part of the problem, but what is the solution? I can honestly say I have mixed feelings on the subject. On one hand I’d like to only support standards and be damned with the older browsers. On the other, I don’t think my clients would be all that enthused about leaving the majority of their projected audience with an unsatisfactory user experience.
So what’s the solution? I wish I knew… Maybe someone out there has the answer and is willing to share.
All hail “The Bear” (that’s me) solver of all some problems Web.