Wednesday, 26 August 2015

Ensuring Multi Browser Compatibility of an application .



The complexity of software applications have increased due to the rapid evolution of web technologies. Certain web browsers are compatible with selective operating systems while certain browsers provide advanced privacy and automated features. Cross Browser Testing, or
Browser Compatibility Testing, for an application needs to be performed across multiple cross browser platforms, operating systems and mobile devices to uncover discrepancies. To ensure the browser compatibility of an application, it is important to consider all the methods that end users utilize to interact with the application.

The need for Cross-Browser Testing: 

One of the main reasons, to put an application through multi-browser testing, is to monitor the CSS style rendering across different browsers. Older versions of Internet Explorer are unable to support the newer CSS elements and HTML tags.

All the browsers do not interpret the Javascript/Jquery codes in the same way. Thus, a script may work on one browser and get rendered as non-responsive on the other. 

Web browsers today are not just limited to personal computers, but they extend to mobiles also. Hence, cross browser testing needs to be performed on mobile browsers as well.

The main reasons for performing Cross-Browsertesting can be summarized as follows:

            - Display text mismatch.
            - Difference in Page Layout, Div Size, Image Orientation.
            - CSS elements and HTML/HTML5 tags support.
            - Animation effects.
            - Ajax, JQuery functionality support.
            - Browser incompatibility.
            - Header and Footer Sections
            - Date Formats
            - Special Character Encoding

How to perform Cross-Browser Testing:

The first criteria, for performing a cross browser testing, is to select the most important and the most used ones from a plethora of available browsers. Reviewing the site analytic report of the application can aid the testers to determine the main browsers for testing.

The traditional way to get started with this testing procedure is to open up the application on multiple browsers sequentially and cross check against a set of desired results. Most of the time, the common browsers considered for testing are the latest versions of Mozilla Firefox and Google Chrome. However due to considerable differences in the operating system, the following browsers need to be considered:

  • Google Chrome (Windows and Mac)
  • Internet Explorer (Windows, Version 7 – 11)
  • Mozilla Firefox(Windows and Mac)
  • Safari (Windows and Mac)
  • iPhone
  • Droid
  • Windows Phone
  • iPad

By testing the application in a preferred browser, an idea of the application display and functionality is made. Then, testing is started with the primitive versions of the Internet Explorer gradually moving up the versions. This helps to identify the issues that are specifically related to Internet Explorer.  When testing with all the desktop browsers are completed, focus is shifted on the mobile web browsers.

Testing with all the desktop and mobile browsers can be a long process. Hence, the main checks performed include display, animations and those functionality that use background processes.


Testing Tools:

To automate the process of testing, there are certain cross browser testing tools available in the market. They are mentioned as follows:

Free:
            - Spoon Browsers
            - Browsershots
            - IE NetRenderer
            - IE Tab
            - IE Tester
            - Microsoft SuperPreview
Paid:
            - Browsera
            - Adobe browserLab
            - BrowserCam
            - Browsereal
            - Cross Browser Testing
            - Browserling
            - Selenium Web Driver
            - Rapise


There are certain versions of browsers which have gone almost extinct or those which are very troublesome. Fixing application issues may not be possible or might not be worth the trouble. In such cases, rather than fixing all style and animation issues, the main focus can be put on functionality and usability.

Conclusion:

With the constant releases of new browser versions, it is very important to keep track of the upgradations that may affect the application functionality. Cross browser Testing ensures that the website content displays and functions correctly on all preferred browsers.

Wednesday, 12 August 2015

Application Success Demands Compatibility Testing



Success generally means the achievement of something desired, planned or attempted. Without emphasizing on the technicalities as of now, a software or an application is said to be successful when 
-          Its popularity, downloads and usage continues to grow at an exponential rate.
-          It can adapt to changing environment maintaining its robustness.
-          It results into a continuous as well as a substantial source of income for the vendor.



The very first step towards achieving the above goals lies in making the application available globally. Not only that, the application should also easily load on any operating system, devices, network and user interface. Compatibility Testing addresses these issues.
An application is generally developed in a single environment. Compatibility testing is done when the application is runs successfully on the base system. It is a non-functional testing which ensures that the application runs without glitches on different permutations and combinations of supporting software and hardware environment.
The Basics:
Compatibility is the ability to co-exist with other attributes of an environment with least inconsistencies. This article covers the various aspects of software compatibility testing. In IT industry, compatibility refers to a system that is scalable in different computing environments with the same efficiency level. Such an environment consists of the following components:
·         Operating System
·         Database System
·         Software System
·         Browser Attributes
·         Multiple Devices
·         Network System

Additional factors that can affect the application can be 
·         Different versions of the software
·         Screen resolution
·         Internet Speed and system configuration

Two considerations within the scope of an application compatibility testing are:
·         Backward compatibility – that checks the efficiency of the application in previous versions.
·         Forward Compatibility – that checks the efficiency of the application in future versions.

The Need:

  • User expectations are very crucial for the success of the  application. Hence the predefined scope of development should keep these requirements and expectations in consideration. Compatibility Testing is performed to ensure that the application is functional with a wide range of software and hardware systems and stays ahead in the competition. This testing is done to upgrade the application with the emergence of new technology.

  • A satisfied user is the best bet for product endorsement. Once users get what they look for, they serve as indirect marketing tools for the product brand. They refer the product into their social circle which in turn increases the popularity of the product.

  • A major percentage of the customer care issues can be classified under the compatibility complaints. This requires deployment of live resources to interact and solve these issues at the earliest. Maintaining an efficient customer support staff requires additional and continuous investment.  If this test is carried out efficiently, it results into a substantial savings for the company as the number of complaints are reduced to a greater extent.

  • Testing always aims at improving the product quality. The software testing procedures and the experience gathered during this phase serve as references for future product enhancements. This also improves the professional maturity of the company. 

As a non-functional test, compatibility testing is not concerned with the output. It mainly intends to validate that the applications runs on the different types of devices and operating systems.