We can name two main tasks solved by mobile apps: to entertain gadget owners and ease their lives by helping them solve certain routine issues.
To make these processes as efficient as possible, and to provide users with a positive experience when they work with an app, we should pay special attention to preliminary mobile app testing.
Difficulties and Troublesome Issues When Testing
The first and most obvious difficulty in the mobile app testing process is navigating the huge number of available platforms. The breadth of variables associated with an OS alone may be very large, including: Android, iOS, different versions of these operating systems, extensions and screen sizes, battery capacity, number of SIM cards, etc.
If we talk about more grounded factors — things that mobile app testers encounter every day — we can mention at least a few key issues:
- Unlike a computer display, a mobile device screen has the ability to rotate.
- A mobile device is constantly in motion, so you should expect random actions to take place in regard to its use (unintentional unlocking, working with the screen with wet hands or gloves).
- A smartphone is constantly searching for a network.
- When testing, it is necessary to check app stability at different data transfer rates.
- It is crucial to remember that the phone’s main purpose is, after all, to make calls, and a mobile app should not interfere with this direct phone function.
- Different mobile devices have different hardware capabilities. Consequently, in particular cases, this feature should be taken into account in the development process.
- If you have the ability to test mobile apps directly on real operational devices, I advise you to refuse emulators. The fact is that their functionality does not always correspond to all actual mobile device capabilities.
When it comes to choosing tools that can be used for these tasks, the outcome depends on a particular device and app. Android applications have their own tools like Android SDK, but for iOS, it is XCode.
It may all look rather complicated. Therefore, the advice is as follows: look for tools when needed, start with simple things, and switch gradually to more complex functions.
Another important point is the app’s aesthetic appearance. Each operating system describes a set of official recommendations which describes how an app should look like on various Operating Systems:
Prior to posting apps, Apple Store and Google Play moderators check that the apps’ appearances comply with the rules. So, if you are interested in a quick release of your product, you have to necessarily check it for compliance with these rules at the design stage and during the testing stage.
I like the following article very much — Mobile App Test Coverage Model: Long Fun provides a model that helps to generate test ideas. I also recommend reading the free book, Mobile Testing: Ready Reckoner, which is a great collection. Some things described there could not even come to my mind.
Key Features of Mobile App Testing
What test design methods should be used, or, to put it simply, how do we come up with tests for mobile apps?
Let us consider the main peculiarities that are worth paying attention to during mobile app functional and GUI testing.
Screen size and touch interface:
- Convenient button size that allows users to find them quickly on the screen and click them with a single touch
- Item response rate, the clicked button should be visually highlighted.
Check images on HiDPI screens and in a different version of OS:
- Various items on high-expansion screens are displayed correctly
- Install the app on the correct OS version
- Check the installation procedure on all possible devices
- Various functions on devices: available/unavailable camera, autofocus
- Available/unavailable GPS.
- Map working, etc.
- Can be checked using the Instruments app (standard MacOS app)
- Pay attention to windows with a lot of data because cache volume will increase if users keep the app running for a long time.
Check that updates are functioning:
- Check various update methods (WIFI, Bluetooth, USB)
- Check how the installed updates work, and verify locations changed
- Make sure that older OS versions support the updates, and check whether elements working well on the new systems work just as well on older versions without crashing.
Check that feedback is functioning:
- Messages during content downloads, progress bar
- Network access error message
- Warning when trying to delete important data
- Message screen indicating the end of the game process (for example, the “Game over” screen).
Check the app response to external interruptions:
- Incoming and outgoing SMS, phone calls
- Battery discharge or removal
- Disconnect network/WiFi
- Connect a cable or charging cable, remove a memory card.
Adverts in a mobile app (monetization):
- Adverts should not overlap app control buttons
- Adverts should have visually noticeable controls to close them because users may uninstall the app from the device instead of looking for the CLOSE button.
Check language localization:
- Check whether there is enough space for words and text on the screen and that they fit in perfectly
- Dates should match the specified regional format
- Temporary language settings should work correctly
Check power consumption:
- Check how much the app affects the device power consumption.
- There is a risk that users will uninstall the app if it causes fast battery discharge and users will have to charge the device too often.
If your competitor’s app is more user-friendly than yours, it is likely that users will opt for their solution, not yours, because users want to have a high-quality and user-friendly product.
To avoid this, you should try minimizing risks by pre-testing your app and customizing it to meet the target audience’s requirements. Intuitively comprehensible, user-friendly, fast-operating mobile apps will always be popular with users.