Cross Browser Testing
What Is Cross Browser Testing?
Cross Browser Testing is a type of testing to verify if an application works across different browsers as expected and degrades gracefully.
It is the process of verifying your application’s compatibility with different browsers.
Many times, I have encountered an issue with a website and on calling the technical support, they simply tell me to try it in another browser? When I do, it works and I end up feeling like a total idiot, even though I earn my living working in the software industry.
We all might have observed that some websites are not properly displayed on some browsers and we just think that the website is broken. But, as soon as you open it on a different browser, the website opens just fine. This behavior explains the compatibility of a website with different browsers.
Each browser interprets the information on the website page differently. Thus, some browsers may lack the features that your website is trying to show and make your website look broken on that browser.
With the advancement in technology, there are several options available for browsers, and it’s not just enough to make a website work on one of the browsers.
Users should not be restricted to use any specific browser to access your application. Thus, it becomes necessary to test your website’s compatibility with different browsers. Some of the commonly used browsers include Chrome, Safari, Firefox, Internet Explorer etc.
Why Is It Performed?
For that matter, why is any kind of testing done?
- To know what is wrong and be able to fix it.
- To enhance efficiency and user experience and thereby, business.
- To be informed of any possible pitfalls.
But specifically, if we think: What is the intent of cross-browser testing? – This is twofold.
- The rendition or appearance of the page in different browsers- is it the same, is it different, if one is better than the other, etc.
- The functionality and the working of it. (Of course!)
Who Performs cross browser Testing?
- Are you thinking, “There are a million browsers, versions and platforms out there – which ones to choose?” This, thankfully, is not a decision that is the tester’s responsibility. The client, business analysis team and the marketing teams have a major role in this decision. Also, companies collect usage/traffic statistics to narrow down what browsers, environment and devices are mostly in use.
- The entire project team should have an invested interest, time, money and infrastructure to support this endeavor.
- The QA team can be involved in this process or it might be the design team who are keen on knowing how the application fares in multiple browsers.
- Whether it is performed by QA or any other team- the results are interpreted by the design and development teams and the relevant changes are made.
How to Perform Cross Browser Testing?
First things first- is it done manually or using a tool?
It can surely be done manually- multiple machines, multiple OSs, Multiple browsers, multiple machines and but clearly, this leads to multiple problems, multiple investments and multiple challenges.
In this case, a business identifies the browsers that the application must support. Testers then re-run the same test cases using different browsers and observe the application’s behavior and report bugs if any.
In this type of testing, it is not possible to cover many browsers and, the application might not be tested on major browser versions.
Also, performing cross-browser check manually is costly and time-consuming too.
Cross-browser testing is basically running the same set of test cases multiple times on different browsers.
This type of repeated task is best suited for automation. Thus, it’s more cost and time effective to perform this testing by using tools.
So, lots of tools are available in the market to make this easier.
The tools help us with one or more or all the following depending on the tool itself and the licensing types:
- They provide a VPN (Virtual Private machine) using which you can connect to remote machines and check the working and rendition of your JAVA, AJAX, HTML, Flash and other pages. Most of these are secure, but since you are submitting your information to a third party, a certain analysis on discretion is advised.
- Screenshots are provided for the pages and links submitted of how they appear in multiple browsers. This is, of course, static.
- Multiple browsers are synchronized with respect to operations performed on one and the results are presented browser wise.
- Show the rendition of a page at multiple screen resolutions.
- When a problem is encountered, a video or screenshots are recorded to transport the problem for further analysis.
- Support generally is available for both web and mobile apps.
- Private pages that require authentication to be accessed can also be tested
- Local, within a private network/firewall pages, can be tested too.
When to Start this Testing?
The time to start Cross-Browser test completely depends on your testing methodology and your testing timeline.
1. As soon as possible:
Start this testing even when a single page is ready for testing.
Test that page on each browser. When the next page is available, test that also on multiple browsers. This will increase the efforts, but it will help to fix the errors as early as possible in the life cycle. Thus, fixing errors, in this case, is much cost-effective.
2. When the application is complete:
Start this testing when the application development is complete.
This will test the application on different browsers. Fixing the errors won’t be as cost-effective as in the above case but it will still help in fixing the errors before releasing the application to the users.
3. When the application is released:
This is the least favored time for performing a cross-browser test for your application. But it’s better to do it than to not do it and let the end-users have a bad experience.
After the application is released for the end-users, this testing can be performed, and bugs can be fixed as a part of the change requests in the application. This is very costly and requires multiple deployments depending on the bug fixes.
Rigorous cross-browser testing can only be done when the testing team members who have knowledge of tools do this testing. High level or checking some specific browsers can also be done by business users or even developers.
This testing involves testing the application thoroughly using different browsers. Testing thoroughly includes functional and non-functional testing of the application.
In most of the companies, a product team has separate teams for functional and non-functional testing. Thus, this testing needs to be performed by the team(s) who is (are) responsible for functional and non-functional testing of the application.
For this testing, a tester needs the browsers on which the application needs to be tested.
These browsers can either be provided to the tester as:
- Locally installed on tester’s machine.
- A virtual machine or different machines which a tester has access to.
- Tools which provide their own browsers and their versions for testing.
- On cloud – so that multiple testers can use the browsers as and when required.
This testing is independent of the deployment environments. Thus, it can be done in dev, test, QA or even production environment depending upon the availability of the application in each of these environments.
What to Test?
- Base Functionality – Links, dialogs, menus etc.
- Graphical User Interface – Look and feel of the application.
- Response – How well the application responds to user actions.
- Performance – Loading of the pages within allowed the time frame.
If your application works well on one browser, that doesn’t imply that it will work well on the other browsers too. Thus, this testing helps you to ensure that an application runs on different browsers without any errors.
To identify what breaks on which browser and to fix the website accordingly we need to perform this testing. If a browser is not at all supported, then the users can easily be informed about it.
To summarize “how” to cross-browser test:
- Traffic statistics help determine what browsers to test.
- A detailed analysis should be done on the AUT (Application under test) itself to determine what parts of the application or if all of it must undergo this. It is advisable that all of it be tested on multiple browsers, but again costs and time must be considered. “A good strategy is to perform 100% testing on one browser per platform and for the other just test the most critical/widely used functionality“.
- Once the decision of “What” to test and “Where (browsers)” is made- infrastructure decisions are to be made- do we acquire tools or perform this manually etc. Again, the cost must be considered. Viability, risks, security concerns, people to be involved, time, acceptance criteria, issue/defect fixing schedules/process – are few things that must be addressed.
- Perform the testing. The regular functional testing test cases can be used when validating the efficiency of the system. For look-and-feel/rendition test cases are not necessary.
- The operation I was talking about at the beginning of this article that failed for me was an online bank transfer. I logged into my bank account, chose the amount for transfer as about one lakh and tried to perform the transfer and a servlet error was showing up no matter how many times I tried.
So, if the transfer operation is chosen for browser compatibility testing, this is how the test script is going to look like.
- Log in to the online bank account.
- Select the account from which the transfer is to be done.
- Enter the transfer amount: 100,000.
- Select payee and click “Transfer”.
- Expected result: The transfer should be successful.
- This will simply be run on all the browsers chosen.
Again, please note that this does not look different to a functional test case. Please check this non-functional testing article for further information on this.
Report the results back to the design team, if they were not involved in the testing process. Change follows.
When is the best time to do this?
Any testing reaps the best benefits when it is done early on. Therefore, the industry recommendation is to start with it as soon as the page designs are available.
But it also can be performed when the site is fully integrated and functional.
If you have missed the bus on performing the cross-browser test during design, development and QA phases, it can still be done while the application is in production. However, this is the costliest of all and risky too.
Where is browser compatibility testing performed?
Usually, the answer to this question would be one of- Dev/QA/Production environments. But for cross-browser checking, this is not a definite and irrelevant (if I may say so). It can be done in any one or all of them.
A few points to note,
- Having been a QA teacher for a while now, I can tell what’s coming next and that is –the question, is it functional and non-functional testing? I think it is neither and both.
- It also should not be confused with Cross-Platform testing, which is testing your application in multiple target environments like Windows, Linux, Mac etc. Although sometimes the two must integrate as some of the older browser versions might be compatible only with the older versions of the platforms.
- It is also a continues to process as software environments, browsers and devices are evolving every day and to make sure there are no unpleasant surprises, this browser Testing should be added to the repertoire of regression suites.
As you know, each type of testing helps in improving the quality of the application and so does the cross-browser test too.
Cross-browser testing helps in creating a good impression on the users by providing them a consistent experience throughout the application irrespective of the browser or Operating system.
Fixing bugs is cost-effective during the early stages of the development lifecycle, and the same applies to the defects found as a part of this testing too.
This testing helps in improving your business which in turn results in Happy Customers, Happy You!!
This is yet another testament to the concept that QA field or software testing is a multi-dimensional field and there is something for everyone to excel in.