Applications. We use them every day when checking the news, answering emails, or following the adventures of a cute fox on social media. Using our phones is part of our daily routine, and for some of us, it feels like we almost never put them down.
We usually want information right away, so we often open websites on our phones or tablets. This is why testers face much more mobile testing than before.
In this blog post we will take a look at the following topics:
- The different types of mobile applications
- The key challenges of mobile testing
- Tools which can help you during testing
Based on our experience at Digital Natives, we highlighted the most common daily issues that manual testers face. We then collected those results into a general mobile testing cheat sheet for you. 🙂
Now let’s jump into the mysteries of mobile testing!
Types of mobile applications
We can differentiate between 3 types:
- Native apps
- Mobile-web apps
- Hybrid apps
This type of application is developed specifically for individual platforms. A native app has to first be downloaded from Google Play or the iTunes app store and then installed onto a device. The program (a calendar, for example) often works both with or without internet connectivity and is able to access a device’s hardware features (camera, microphone, etc.).
The website for the app is opened on the device through a web browser and runs through the browser itself. As a result, mobile-web apps are a great option for businesses that don’t have the budget to invest in a native mobile app. They work on all kinds of devices but cannot access all hardware parts like native apps can (e.g., GPS). Also, they are not yet supported on all browsers or software. Just to mention a few: Facebook, AliExpress, Twitter Lite, Pinterest.
We can also run into so-called in-app browsers, which are web views that provide limited browsing functionality for users to access the web via an app. (For example, when you open a link in the Facebook or Twitter app.)
This app type is a mix between native and mobile-web applications. It works platform- and device-independent. In contrast to web apps, hybrid apps can also access hardware such as your GPS. Examples: Instagram, Uber, Gmail.
The key challenges of mobile app testing
The biggest difficulty that testers face is that there are many kinds of phones now, but apps should work and look the same on every device. Let’s check it out in detail!
Different screen sizes & OS versions
Mobile devices are different from each other on the basis of screen sizes, hardware systems, and input methods. A wide range of smartphones and tablets are available on the market, and this variety of different aspect ratios and pixel densities can be overwhelming. The Android world is not simple with its many devices, but Apple brings new screen sizes to the iOS world as well. For testing it means that we need to check that all the necessary screen elements are accessible with different screen sizes and aspect ratios on various devices.
Mobile Operating Systems are constantly changing. Both Android and iOS have more than 10 versions of their operating systems. They keep enhancing and updating their versions for better performance and user experiences. This frequent OS release comes as a testing challenge as testers need to validate the complete application with each new OS release. It is very important to test the application with the latest OS release. Otherwise, app performance would be a major issue and consequently result in the loss of app users.
People nowadays travel very often, changing their network and roaming wherever they go. This makes it essential to guarantee that apps work when users need them, whether it be online or offline, with a weak signal, and so on.
The performance of a carrier’s network can have a huge impact on the user’s experience with an app. This is another factor beyond the hardware and software that, nevertheless, must be taken into consideration for testing scenarios.
Power consumption and battery life
We run lots of apps during the day and several processes are executed in the background without us even noticing. This all requires CPU cycles which require power from the device’s battery. When testing mobile apps we need to make sure that the power consumption is kept minimal and the app is developed by keeping the best practices in mind.
Usability & User experience
It’s challenging to keep interactions clean and simple for the user and at the same time display all the necessary information. Font size and readability are other challenging factors of usability. When testing mobile apps it’s important to pay attention to the size of click areas and make sure that all texts are readable without corrective lenses. Also be sure to check the ease of navigation, speed of response, and defect-free transactions. Trust me, it’s not an easy task
Testing for translation is one part—testers should pay attention to local settings, time zones and, of course, the target audience. Some designs that work in the western world might not work in the east and vice-versa. Right-to-left languages have always left developers puzzled.
The most common problem faced by localization is having enough space for translations. What would take 30 characters to say in one language could be said in 4 in another – meaning there could be too much space or too little. Words can fall outside of buttons or margins, sometimes becoming obscured or invisible. Also, there can be different currencies and different standards for date formats.
Mobile testing toolkit
There’s a lot to consider in deciding what tools you need. A winning testing strategy needs to include an optimal mix of devices for maximum coverage.
Depending on what you need — and how much budget do you have — it should include some real devices, some emulators, and perhaps some remote access devices delivered via a cloud service.
You will definitely need real devices. Of course, you can test on your own device or your colleague’s device, but it can’t work forever.
The best strategy is to test on the most used devices in your target market (usually 5 to 10 mobile devices) and this should include both iOS and Android devices.
Just as a side note: don’t forget to make an inventory list for the devices. That way, you will be able to follow who’s using a device, serial numbers, passcodes, etc.
Emulators & Simulators
Mobile emulators are virtual devices that are used to mimic the functionality of real devices and imitate a user’s actions to recreate operational behaviors. Emulators replicate real mobile device software, hardware, and the OS in order to test and debug applications within another software/hardware platform.
A simulator models the runtime environment, whereas an emulator models the hardware and utilizes the same runtime environment as the physical hardware. Applications tested on a simulator are compiled into a dedicated version that works in the simulator but not on a real device.
Simulators and emulators are very useful in the early stages of development, as these typically integrate with development environments and allow quick deployment, testing, and monitoring of applications.
A huge variety of mobile test tools are available on the market. Different tools are used to test different types of applications, but mainly two types of automated tools are used for application testing: image-based and object-based.
In the image-based method, application tests are based on screen coordination. A written test script is necessary for each variation of the devices’ screen sizes.
For the object-based tools, the elements of the screen are mapped onto objects for manipulation.
Selecting and implementing the perfect automation tool according to mobile automaton needs is a complicated task, but it’s worth digging deep into the different tools. Automation saves time (think about regression testing) and increases the efficiency & coverage of your testing.
Mobile cloud testing allows accessing hundreds of devices, multiple operating systems and several versions of the OS.
Plenty of tools are available here too, like SauceLabs, Bitbar, or BrowserStack, just to mention a few.
- Cross-platform testing is essential to ensure the quality of your product, great customer experience and satisfaction.
- Include mobile testing when you’re creating a test strategy.
- Follow mobile trends and check your target group statistics regularly.
- Don’t forget to use real devices too. 🙂
And as I mentioned in the beginning, I have created a general mobile testing cheat sheet to serve as a guideline for you before every release. You can find it here. I hope you will find it useful! 🙂