Wednesday, August 4, 2010

Browser compatibility what i understood

Now a days most of desktop based application moving towards web based. I guess everyone sometime or other get to test web applications.

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
  1. CSS 
  2. Javascript
  • 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.
         To find CSS 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
          To find issues related to javascript,
    • 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.

1 comment:

  1. Nitin,

    Nice 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.

    - Justin
    (Founder of Hexawise)