Ultimate Guide to Testing Mobile Applications
Mobile applications are everywhere and most businesses seem to be developing one these days. But creating a mobile application isn’t simply about coming up with a great idea, coding the app and launching it to the world. Just like most other products, an app needs to be tested first. However, although mobile app testing is a crucial step, many businesses forget to conduct it properly.
So why does app testing matter? This guide will explore the importance of testing, the key issues around mobile testing and the best practices for app testing. We’ll also help you to develop a mobile app testing strategy and give you a hand with what to do once testing is complete.
WHY TESTING IS IMPORTANT?
The smartphone boom is undoubtedly among the biggest revolutions of our time. Data suggests that almost 400,000 iPhones are sold every day across the globe. The number is currently higher than the amount of babies born each day.
With the rise of smartphones came the emergence of mobile applications. According to International Data Corporation (IDC), around 182 billion mobile apps were downloaded in 2015, an increase of 1,600% since 2010.
The above stats clearly highlight the rise of mobile app usage and the importance of them for businesses. Consumer broadband connections in G-20 countries are already majority-mobile. People read their news, manage their finances and make their purchases increasingly on the phone. It’s important businesses understand how mobile apps are becoming crucial for reaching out and communicating with their customers.
But it isn’t just about creating any type of app and walking away. Customers aren’t only using increasing amount of apps, they quickly ditch out the ones that don’t perform properly.
A uTest guide on mobile app testing pointed to a study, which highlighted that 60% of mobile users are willing to stop using an app if it doesn’t load within three seconds. Furthermore, 43% of the group said they’d never come back to the app or site after this single bad experience.
Moreover, your non-working app doesn’t just turn away these individual clients. The app platforms, such as iStore and Google Play, encourage user reviews of the apps and negative reviews can have a huge impact on your app’s attractiveness. Michael Croghan, Mobile Solutions Architect, told in the uTest guide that, “Anyone can read your app store rating. There’s no way to hide poor quality in the world of mobile.”
Therefore, if you launch an app that doesn’t work appropriately, you risk:
- Losing customers, both directly (as they stop using the app) and indirectly (they recognize the bad reviews and avoid your app)
- Damaging your finances, either directly (if your app came with a fee) or indirectly (through purchases through the app)
- Hurting your business brand, loss of reputation
Rigorous mobile app testing can eliminate the risks. Furthermore, with a well-tested app, which directly answers a customer need, you can directly enjoy the opposite effect of the above. You can potentially build a better brand, attract more paying customers and thus increase your revenue stream. Hence, app testing can have a significant impact on your app quality and therefore improve your bottom-line.
UNDERSTAND THE KEY ISSUES OF APP TESTING
Before you begin testing your app, you first need to understand the main objectives of testing. You know already why testing is important, but you must also understand what you are trying to achieve with testing.
You should answer the following key issues relating to app testing:
What platforms should the app work on?
You need to define exactly the type of platforms your app is aimed to work on before you start testing. If your app works on multiple operating systems, such as iOS and Android, you need to test it on both. Even if the app works like a dream on the iPhone, it isn’t guaranteed to work smoothly on Android as well.
Furthermore, you also need to understand how the app reacts to different devices supporting your chosen operating system. For example, does it work on both tablets and smartphones?
What type of app am I using?
There are essentially three types of applications:
- Native apps – these are designed directly for use on smartphones and tablets.
- Mobile web apps – these are server-side apps, which access websites or a specific site on the mobile device through a browser.
- Hybrid apps – these are apps combining elements of both native and mobile web apps. They can run on devices online and offline, but are written using web technologies.
Understand your application type, as it can influence the different features you need to test. For instance, does your app rely on an internet connection to work? If it also works offline, does the performance change when it’s offline and online?
What is the app designed to do?
You should also keep in mind the ultimate objective of the app at all times during testing. Does it perform exactly what it is supposed to do?
What are the common things that could go wrong?
Before you start testing, you should also consider different aspects that might go wrong. Whilst testing is often about finding out what doesn’t work and what does as you develop the app, it’s much better to prepare yourself for certain issues beforehand.
For instance, users might not always use the app in the way they should. How does your app react if the user uses the wrong format of inputting information? What if the user keeps the app open for an hour without using it? Does it crash?
List these common and unconventional occurrences and keep an eye out for them during testing.
What are the different testing mechanisms I should use?
In order to test the app, you can use some of the following testing mechanisms:
- Emulators – a system, which runs software from one environment to another without interfering with the application software. Can easily duplicate real life scenarios. A great free emulator we love to use is Screenfly.
- Physical device testing – using the application directly on a desired device.
- Cloud computing based testing – runs multiple devices on multiple systems or networks online to allow the app testing and management.
- Network configuration testing – ensuring the app works on different networks, such as 3G and WiFi.
- Automated testing – there are other automation tools available, mainly for Android apps, which can help test complex scenarios and script regression.
As the above showed, there are a number of ways to test your apps. Whatever option you choose, it’s advantageous to include real device testing into the strategy at some point. Once you have the finished product, it can provide you an honest assessment of how your app is working.
Furthermore, you should emphasize manual testing in your strategy. Manual testing can open your eyes to the feel of the app more and help pay attention to certain aspects (such as the look of the app) automated testing simply doesn’t cover.
When you are conducting testing with the above methods, it’s important to focus on battery consumption and app robustness. These are at the core of user experience and by ensuring the app is as battery-friendly as possible, you enhance its attractiveness.
Should I do the testing on my own or hire someone else to do it?
Finally, you have two options for mobile app testing: you can either do it in-house or outsource it to someone else (whether or not you created the app). Think carefully whether you have the understanding and the resources to conduct rigorous testing in-house.
If you aren’t confident about testing it or you want a truly unbiased tester, hiring a mobile testing company is an option to consider. Plenty of independent mobile testers and organizations can provide you different levels of testing assistance.
APP TESTING BEST PRACTICES
We’ve already touched on a number of best practices in terms of the devices and testing methods you can use. But there are plenty of other app testing best practices you want to include in your process. App testing comes with challenges and overcoming these is easier if you implement the following points in your testing strategy.
Implement a formal testing strategy
First, you need to draw up a formal testing strategy. A solid strategy will help streamline the process and ensure you conduct testing speedily. Define the guidelines for testing using the above questions, as well as the other best practices mentioned in this guide.
Start testing immediately
Mobile app testing shouldn’t be an afterthought you have after you’ve built the app. The longer you wait, the more the likelihood of bugs and defects grows. It’s much easier to test the app at the initial development stages and fix bugs as you find them. Regular testing will save you time and money in the later stages.
Aim for a global app
Since apps can be used all around the world with relative ease, you want to stress the local aspect of the app. Depending on your app, you should for example consider including different language and currency options to ensure users enjoy a more personalized experience.
There might be certain exceptions; if your business were purely a local company, your app probably wouldn’t receive users from outside of your business area.
HOW TO CREATE A TESTING STRATEGY FOR MOBILE APPS?
A formal testing strategy is crucial for achieving success with mobile app testing. The information above will definitely guide you in understanding the key focus points of this strategy, but here’s a closer look at the steps you should take.
Narrow down the devices the app will use
Mobile devices present the most obvious challenge to mobile testing. There are countless devices out there consumers could use to access your app and ensuring your app works on all of them can be difficult.
Even though your app might run on a single platform (such as iOS or Android), the number of devices will still be high for guaranteeing specific device testing. This is especially the case with the Android operating system. Remember there are different versions of an operating system and you should decide which operating system versions the app is supposed to work on.
In order to handle the device challenge, you can consider using one of the three strategies:
- Only test using real devices
- Only test using emulated devices
- Using a combination of the above
As we’ve mentioned before, you want the emphasis to be on real devices and manual testing. It would be propitious to focus first on some of the main devices in your category. For example, find out the most sold and used mobile devices that use Android, check which operating system version is currently popular and begin testing. For the devices, which are not as popular, you can use emulated devices as the main testing method.
But you are probably wondering how you’ll be able to test using real devices, as you are unlikely to have all the Samsung models and the like in your drawers. Testing with real devices can be quite a costly practice. But it is possible to draw up contracts with manufacturers and network operators to lease devices. You could also consider outsourcing the testing process or include real users, with the desired devices, to your testing group.
The key feature to focus on with real device testing, is to ensure your device selection focuses on these points:
- Testing on devices running different stable versions of the operating system.
- Testing on devices with a varying screen resolution. Don’t buy/rent real devices, which are all the same screen size.
- Test on different networks as well, together with different connection speeds.
Select the emulator you want to use
Although real device testing should be a priority, you will want to use emulators, especially at the start the of development process. Testing an unfinished piece of code can be much more effective in an emulated environment. Furthermore, it is likely you’ll need to consider the cost of acquiring real devices and the use of emulators can help lower some of the testing and development costs.
The available mobile emulators are:
- Device emulators – provided by device manufacturers
- Browser emulators – these simulate the browser environment, especially important for browser-based apps
- Operating system emulators – provided by operating system providers: Apple has emulators for iPhones, Google for Android phones and Microsoft for Windows phones
Find a balance between automated and manual testing
We’ve also mentioned briefly the importance of emphasizing manual testing above automation. But you’ll still want to include automated testing in your strategy, as there are certain benefits to it.
For example, continuous and repeated testing is more cost-efficient when using automated testing methods. On the other hand, any new functionality should be tested manually, especially at the start of the development process.
Identify the required types of testing
The technical aspects of testing can be examined using nine different testing types. Depending on your app, certain types can be more important than others. It is important to identify the key types and perform testing with each group in mind, whatever the priority may be.
Usability testing is required to guarantee the app is easy to use. The main objective is about creating an enjoyable user experience. In usability testing, the focus should be on how it feels to use the app. You should focus on features such as the interface and the operating manual.
Since the focus is on user experience, human beings should conduct usability testing.
This involves testing the app on the different devices and operating systems. You are examining the app’s performance on a variety of devices, browsers and operating system versions.
Pay extra attention to the interface in terms of different screen sizes and resolutions. Furthermore, ensure the phone’s other functions aren’t affected by the app. For example, you need the phone to still alert to calls and texts.
Whilst you should pay close attention to interface testing during usability testing, the latter is more aimed at understanding the user experience. Interface testing, on the other hand, should pay more attention to the technological aspects, such as whether the menu options and buttons work as they are supposed to.
In services testing the focus is on ensuring the application works appropriately in both online and offline environments. This naturally might not be as important for online-only applications.
Low-level resource testing
It’s important to test the app in imperfect circumstances and identify the downsides of the app. This means checking how the app performs in a low battery and in a low memory environment. Test traits such as partial deletion of temporary files and what happens when the local database grows.
Performance testing is among the core testing functions. It deals with the performance of the app in relation to elements such as:
- Network connection (2G, 3G, 4G, Wifi)
- Document sharing (downloading, Bluetooth usage, sharing on social media)
- Battery consumption (drainage during use and on the background)
- Local network use (if the app connects into a cloud, for example, what happens when user numbers grow)
Application testing also needs to determine what happens when stuff goes wrong. This would include understanding how the backup system operates and if it operates correctly in unusual circumstances, such as battery running out.
You also need to pay attention to possible data loss. This is especially important in instances of initial download and future updating procedures.
You’ll also need to run a number of installation tests. During this type of testing, you are only focused on monitoring the behavior of the app during installation, as well as uninstallation.
Finally, an app testing strategy should pay extra attention to security testing. You need to validate the app’s data protection capabilities. You must conduct attacks on the app to monitor its ability to withstand hacking, as well as ensure the software doesn’t include any obvious security flaws.
NEXT STEPS AFTER APP TESTING
Once you’re done with testing, you’ll need to follow three important steps. While the testing process can take quite a while (anything from a few weeks to a few months), there’s plenty to do after you’re finished.
The first step is to document your results. You should keep records during testing, so you can create a full report on the test results afterwards. If you aren’t conducting your own testing, then ensure the testing company will provide you with a detailed report.
The report should include detailed information such as:
- What was being tested
- How the testing was conducted (for example, distinguishing between manual and automated testing)
- What were the findings of the tests (what worked, what didn’t)
- Recommendations on improvements
Once you receive the report, read it carefully and improve the app according to the recommendations. You should debug any problems that were present, as well as improve the user experience.
The final step involves testing the improved app. Don’t simply test the errors or the issues you changed, but undergo the testing strategy as a whole. Once you’ve done testing, you’ll repeat these steps until you are confident about launching the app into the real world.