Nearly everything works better if you have some kind of plan or strategy. This holds especially true for tasks with a lot of variables like cross browser testing. Below I would like to share our tested and proven cross browser testing strategy we have now used in well over 100 testing projects. Hopefully it will be usefully for some of our fellow developers and testers.
A good plan is often half of the solution to any problem. This is especially true for any type of software testing which rarely works that well if it is done as an afterthought long after the development is finished. So we always make sure to consider the following as soon as we start a new project:
- Know your audience and research in advance what browsers / devices / operating system they are using. Use real world data where ever possible.
- Start testing as soon as you start developing. Encourage your team members to use different browsers and devices.
- Develop against a reference list of browsers to avoid being bogged down with bug reports for obscure browsers.
- Automate functional tests early on if possible. This will also ease the burden of testing during the development phase
Verify The Technical Side
Many common cross browser issues can be fixed with a few simple technical checks. Even better there are tools available to test these sort of things automatically.
- Always, always use a proper DOCTYPE
- Be aware of the X-UA-Compatibility meta tag you are using
- Validate your HTML to find errors
- Validate your CSS to find problems
Even after all the tools and automation you will still need to do a fair amount of work to get the cross browser testing done. But don’t just jump into it, think prior to testing!
- Whenever possible create automated tests for functionality. Try Selenium if you want to code or BrowserStage if you don’t.
- Don’t do any final layout tests until the layout is final.
- Make a full test run prior to fixing any bugs to minimize the retest effort.
- Start testing with the browser set of highest usage and work your way down in iterations.
I think this strategy is a good starting point to base any serious testing effort on. Anything you can add to this? Feel free to tell us in the comments below!
Photo by GotCredit