Mobile Testing Pyramid : How it can help Agile Teams
Shreya Bose, Technical Content Writer at BrowserStack - May 15, 2021
Be it a game, an online clothing store, or a dating site, there is no digital success without a top-notch website that serves and delights users across the world. However, developing and releasing a website that meets users’ high expectations is not exactly easy. Users do not take kindly to bugs, errors or anomalies of any kind, simply because they always have the option to bounce from your site and switch to any of the multiple other options available to them.
Obviously, this makes website testing exceptionally important. Each website must render and function perfectly not just on desktop devices but on mobile. Statista reveals that more than half of global web traffic comes from mobile devices.
That means every website needs to be optimized for multiple mobile devices, browsers, and operating systems. Given the state of global device fragmentation, this can seem like a daunting task.
This is where the mobile testing pyramid comes in. Much like the automation testing pyramid, it offers a structure that can help organize website tests for maximum speed and efficiency.
What is the Mobile Testing Pyramid?
A previous article discussed the automation testing pyramid that helps developers and QAs create high-quality software. A mobile testing pyramid does the same but modifies it to respond to websites being optimized for mobile devices.
Note: The Mobile Testing Pyramid was first introduced by Kwo Ding in 2017.
The mobile testing pyramid has three layers (going from bottom to top)
- Real devices
- Mobile simulators & emulators
- Desktop browsers (with mobile simulation)
Desktop browsers with mobile simulation
At this level, simulate website behavior in desktop browsers such as Chrome, Firefox, Safari, and the like – as they would appear on mobile devices. This can be used to accomplish basic functional tests, check user paths, responsive design, etc. The tests at this stage are usually executed quickly and easily because a desktop is easier to work on than mobile devices. It is also possible to scale up testing since testers can run multiple test instances on a single machine.
However, these tests are extremely limited in coverage. These tests don’t include native mobile device features such as incoming calls, battery strength, network connectivity, etc. Therefore, this layer can be used to run a few basic tests in order to validate rudimentary functions in the early stages.
Mobile simulators & emulators
In this layer, the tester sets up and uses simulators and emulators to validate certain functions such as touch interactions visual validation testing. However, once again, emulators and simulators are extremely inadequate in providing test coverage as well as results.
Here are a few features that cannot be tested on emulators and simulators:
- Low battery, battery drainage, abrupt power off
- Website performance during incoming interruptions such as calls or SMS
- Multiple networks – Wifi, 3G, 4G, etc.
- Network density
- Localized features
Additionally, testing on emulators and simulators can throw up false positives, which adds additional obstacles in the mobile testing process.
For a clear understanding of the limitations of emulators and simulators, read more on Emulators vs Real Devices.
This layer is where the actual testing takes place. Here’s a mantra for software testing in all forms:
There is no way to publish a successful website or app without testing it on real devices. At the previous layers, preliminary tests are quickly run so that developers know if the basic features are working before building upon them.
At this stage, every feature of the website is tested on actual mobile devices installed with actual browsers. This means that the website is tested in real user conditions and the tester can see exactly how it would act when being used in the real world. Real device testing ensures that when a website is opened by a customer on their smartphone or tablet, it does not throw up errors.
Remember, every feature of a website has to be tested on multiple real device-browser-OS combinations. This ensures intuitive, error-free performance in all circumstances.
In the event that testers do not have access to a real device lab that contains the necessary devices, a cloud-based option can serve exceptionally well. BrowserStack offers thousands of real devices, each installed with real browsers (multiple versions of each) and operating systems. Testers can sign up, log in, select the required devices, and start testing their applications. This applies to both manual testing and automation testing.
Keep in mind that no website is ready for the market without real device testing.
The mobile testing pyramid is a guide that helps developers and testers structure their mobile testing operations for greater efficiency and faster feedback. However, note that the first two layers can only provide rudimentary feedback because testing on those levels does not involve real devices. All websites must prove themselves in the real device testing layer, and only then can they be deemed ready for real-world success.