Assuming your web AUT(application under test) has lot of features which will result in huge number of testcases. Let's say AUT has hundreds of testcases as it has been the case for me, most of time. Basic requirement for test team is to make sure all features works fine on every web browser we support. Best way to achieve this is to run every testcase on every browser which will be an exhaustive way. I really don't like this way and I feel there should be a way to optimize this. Validating your web application for all web browser is callled cross-browser compatibility thats what i am going to focus on .
From my experience what I have discovered is that there are two areas where behavior of your application changes from browser to browser. If I concentrate on those two areas then I can optimize on testing for browser compatibility.
Those areas are
- CSS is guidelines which tells browser how to display your page. These guidelines are stored in a file( with .css extension) with web pages.There are standard for these guideline but different browser interpret these files differently, which causes your web pages to display incorrectly. Most common issue you will find due to CSS are,
- label size not proper.
- Text font vary across browser.
- pop-up menu does not render properly. In general you can say all UI rendering issues.
- navigate through all pages/dialog box and popup menus on your web application.If there is any UI problem due to CSS you will easily observe it .
- Javascript is scripting language for browsers to perform some dynamic operation on browser.Usually inputs given by user can be processed immediately on browser itself rather getting it processed from server .Every browser has there own javascript engine and browser sometimes fail to execute these javascripts in runtime. Issues mostly due to javascript are,
- WebElements(links,buttons and images etc ) calling javascript does not work at all
- Test all links which call javascript or uses javascript in some way .You can use developer tool like firebug .Firebug is add-on to firefox which helps you see internal of web pages you are browsing
According to me, if you attack these two areas you can optimize on browser compatibility and avoid running every testcase on every browser.
Nitin,
ReplyDeleteNice post. It is a colossal waste to execute every test in every supported browser.
Instead, it is far preferable to use Design of Experiments-based software testing methods (such as pairwise testing and more powerful hexawise testing) to identify a relatively small set of test cases that will accomplish as much coverage as possible - across multiple different browser types. These approaches will maximize coverage of features and browser combinations (a commonly stated important goal) while at the same time minimizing repetition between test cases (that receives far less attention than it should in the software testing industry).
It is almost criminally inefficient to follow standard practices of executing the same exact test cases again and again in each browser.
A couple examples of what I'm talking about are shown in the links below.
http://hexawise.com/intro-video
https://app.hexawise.com/share/E7SN3E9E
- Justin
(Founder of Hexawise)