Back in 1991, the world wide web was introduced. Users around the world viewed the first web page in August of that year. People were amazed by the fact that they could share information with one another or with people across countries.
With time, the internet and the world of web pages evolved. Earlier, people used only Internet Explorer for viewing web pages. But now, there are hundreds of browsers that people use worldwide. The percentage of browser usage share varies. The varied share depends on users’ locations, age groups, and devices used. But guess what came with so many browsers and devices? Browser compatibility issues. And that’s when people understood the need for cross-browser testing.
Building on that, in this post, we’re going to discuss cross-browser testing. We’ll learn what cross-browser testing is and why we need it. We’ll also take a look at some strategies to follow while executing cross-browser testing. So, let’s get started.
What Is Cross-Browser Testing?
As noted earlier, back in the old days, people used only Internet Explorer (IE) to view web pages. But nowadays, multiple options are available. There are more than 100 browsers, and people have the option to view sites in their preferred browser.
The four major browsers that dominate the browser market share in the United States are Chrome, Firefox, Safari, and Edge. Apart from that, there are many others like Opera, UC Browser, etc. Now, UI developers might have seen that some features don’t run on all browsers. For example, IE doesn’t support box-shadow and certain other CSS styles.
The form of front end testing that verifies whether a site works perfectly in all browsers is cross-browser testing. The aim? To verify that the website you’re developing runs properly on all targeted browsers. Testers either do this test manually or by using automated tools like Selenium WebDriver.
Now that you know what cross-browser testing is, let’s understand why we need it.
Why Do You Need Cross-Browser Testing?
Ever wondered what might happen if a user opens your site and finds out that they can’t see the layout properly? What if you added a nice font but it doesn’t appear the same in a specific browser? The user won’t think twice. They’ll switch to another website that provides the same features. The only way to avoid that is by testing the site across multiple browsers.
Once the testing team runs cross-browser tests, they get clarity on the following:
- What’s wrong with the site
- In which browser the defect is occurring
- Who will fix the defect
For instance, let’s suppose a client wants a website to run in a combination of Safari and macOS. Now, the development team developed the site using Google Chrome, the browser preferred by most developers. But what if a carousel plugin that works in Chrome doesn’t work in Safari? Only cross-browser testing will detect it and save the team before deployment.
Strategies to Perform Cross-Browser Testing
Now that you know what cross-browser testing is and why we need it, let’s discuss some strategies that will ease your website’s cross-browser testing phase.
Prepare a List of Browsers to Target and Test Scenarios
There are more than hundreds of browsers that people use worldwide. Testing a site across all these browsers will consume a lot of time. How do we prevent that? Target your browsers. If you’re developing a site for a client, ask them to provide a list of browsers on which they wish to run the site. Are they unable to provide any such list? No problem at all. Prepare a list. According to StatCounter, the four browsers that hold the major usage share worldwide are Chrome, Safari, Firefox, and Samsung Internet. Target these four first.
Next, check the platforms where the end users are going to run your site. Prepare a list of browsers accordingly. For instance, if your site is meant for mobile users, check the major browsers from StatCounter. The browser usage share may also vary based on geolocation. For instance, in the following graphs, we find out the difference in browser usage share between the United States and China.
Image source: https://gs.statcounter.com/
Now, let’s come to the test cases. Prioritize the features and build test cases accordingly. In this step, you can test the entire application in one browser and move on to another browser. Or you can sort the features. In that case, you have to perform cross-browser testing of critical features at first and then move on to testing low-priority features. For instance, a “Log-in” button is more important than the “Contact Us” button. Check if the log-in button works fine across all targeted browsers. After that, move on to test the contact button.
Some of the most important features you have to test for are as follows:
- The intent for what the application was built for should be working. Basic functionalities of the applications involving elements, database transactions, navigation, functions, etc., should be tested.
- A common issue with cross-browser compatibility is the overlapping of elements and misalignment. Such bugs ruin the effect of a great design and displeasures the user.
- Modern web applications are complicated. A lot of effort is put just to make something as simple as clicking a button feel good. All this, to make the web application more responsive. Hence, testing for responsiveness across browsers and platforms is essential.
Use Virtual Machines and Emulators in the Right Way
While running the test cases, you may come across a cross-platform scenario. This means testing the site across a combination of different browsers and operating systems. And believe me, you may want to test these scenarios carefully. A site may run perfectly in Safari on Windows. This doesn’t mean that the site will run perfectly in the Safari on macOS.
So, what do we do in this scenario? Don’t rely on emulators. They often fail to show how a website will behave on a real device. Instead, set up a few virtual machines on the testers’ systems. Install separate operating systems on each virtual machine. Install the required browsers as well. A better option is to create an account in a cloud-based cross-browser testing platform. Platforms like Testim provide the option to run parallel tests of the website across hundreds of OS, browser, and device combinations.
Automate Test Scenarios
Automate the test cases as much as possible. Nowadays, lots of tools and frameworks are available for cross-browser testing. You can use Resemble.js, for example. This tool compares snapshots of the website running on two different browsers. The tool also generates a report after spotting the differences. When talking about automation, Selenium WebDriver is a tool that web testers always prefer. WebDriver allows testers to run test cases of a website across different browsers.
In today’s world, agile is dominating the industry. Clients expect a speedy delivery. Hence, companies need testers to deliver their tasks earlier. Without automation, prompt testing of a website becomes difficult. Let’s say you have a large testing team, and they can quickly complete testing. After generating a bug report, they assign these bugs to the developer. But after fixing the bug, testers have to execute regression testing. In regression testing, testers have to test the entire module.
The aim is to check if the code changes for fixing the bug caused any breakage in code. While doing so, there’s a small chance that a minor bug may have skipped the tester’s eye. This is because, when you’re checking the same thing repeatedly, a minor change may go unnoticed. Is there any way to avoid that? Use automated regression testing tools like Wraith or Spectre.
Do you want to hear another advantage of automation? Once the test scripts are written, you can reuse them to test another similar website with the same features.
Testing on Mobile Devices
Users today mostly access websites via their mobile devices. This is why most companies are following the mobile-first approach while developing a website. This means developers start coding while keeping in mind that the site should run on a mobile device. This is different from the traditional approach. Earlier, development started while keeping in mind that the site should run properly on a desktop. But testing these responsive websites is quite challenging.
For iPhone, there’s only one hardware, OS, and browser combination. But for Android, there are multiple devices, each with different resolutions and sets of browsers. A user may want to open a website in either the device’s default browser or Chrome. So how do we test a website on mobile devices? Again, with the help of a cross-browser testing platform.
Set up a test environment with your required mobile device, browser, and OS combinations. Start running the test cases and report any bug as soon as you find it. Developers and testers often use Chrome device emulators or other third-party emulators. But when testing, use real devices. This is because, as noted earlier, emulators often fail to show how a website behaves on a real device.
When Things Go Wrong
Nobody is perfect. Browsers and codes are also a part of that club. When you test for cross-browser compatibility, you’re prepared to find bugs and most of the times, you will. So, what do you do when you find one? When multiple testers are testing the web application, there’s a high chance that you’ll find multiple issues. In such cases, prioritize these bugs. Analyze which issues would affect the application the most and put them on top of the list.
Once, priority is set, check if this issue occurs in multiple browsers and platforms. If it’s just for one combination, then the fix could be simple. But if it exists for multiple combinations, you might want to find a general fix. List down the combination of browsers and platforms the issue exists for.
Now that you know where the problem exists, set on finding the root cause of the problem. Testing blocks of codes is helpful here because you can narrow down the search area. Once you find the reason, see how you can fix it.
If the cause is due to poor code, you will have to modify the core code. And if the code is fine but the problem is due to something in the browser or a platform, figure out what works for it. You could also have different configurations for cases where the solution isn’t universal. If neither the modification in code nor changing configurations work, and if you’re sure the problem is with the browser or platform, you can simply write a bug report. We, the developer community always appreciate the feedback.
Alright, so you’ve figured out the issue and fixed it. But your application is not ready for production yet. We go all the way to the starting line and start testing all over again.
Never test only the part you’ve fixed.
A common fix or change in code might break a different part of the application that you might not even have thought of. You might also face instances where you fix the issue for a browser or platform and that fix creates a problem for a different browser. So every time you fix something, test the complete application.
Running tests, again and again, would affect your users’ impression about your business. Always aim for the most efficient way. So how to plan so you spend the least time fixing issues? By testing at the best time in the development life-cycle.
Execute Cross-Browser Testing at the Best Time
Do you want to increase the efficiency of cross-browser testing? Run the test cases at the earlier stages of development. If you’re following agile, as soon as developers complete coding of a user story, start unit testing. Run regression tests and sanity tests after the entire website development is done.
What if you keep cross-browser testing for a later phase? The task becomes more difficult. Since back-end features and databases also get involved, any bug fixes increase the chance of regression defects.
The software industry is rapidly evolving. New web technologies are on their way to dominating the market. Also, new browsers and devices are making their way into the daily lives of users. Cross-browser testing may seem to be a little scary initially. But fear not. Plan a cross-browser testing phase and properly devise a testing strategy. The task will become a lot easier.