It is difficult to imagine modern life without mobile devices and, accordingly, without mobile applications. An integral part of the development of apps is testing. A competent approach to organizing testing of a mobile app will allow you to evaluate the time for testing and create high-quality products correctly.
The cost of testing errors is very high. Therefore, we will consider the main aspects that you need to pay attention to when testing mobile applications.
Preparation for planning
Before you start preparing a testing plan, you must determine the boundaries of this test. You should have a list of platforms, operating systems, and devices on which you want to test a mobile application.
The choice of platform is usually determined by the purpose of the application and the requirements of the customer. Apps for a wide range of users are most often released on two platforms: iOS and Android (according to statistics, 98% of applications are created on iOS and Android platforms, and only 2% use other platforms). Highly specialized apps or games are usually implemented on the same platform.
OS version selection
It's best to get the most popular versions from official developer.android.com and developer.apple.com sites. Do not forget about older versions, as not all smartphones and tablets allow you to upgrade to a popular or latest version of the OS, and many users do not want to do this.
While working on a long-term project, it is necessary to review the design of the versions selected for testing. In new releases, some components from previous versions may not be supported, which will require refinement of the mobile application.
Selection of device models
Due to the significant number of manufacturers and models of smartphones and tablets, it becomes evident that it will not work to cover the entire range of devices during testing. Therefore, it is worth choosing several models that differ from each other in technical characteristics (screen size and resolution, memory size).
You use emulators instead of buying the full range of mobile devices. You will have to tinker with their installation, but in return, you will get access to all the necessary models and the ability to quickly switch from one device to another. Emulators are indispensable for testing layout and geolocation. In this case, you need to understand that the emulator will never replace a real device. Also, do not waste time on simulators, as they simply depict the environment of the original device and do not affect its filling (hardware), and it can affect the result.
Thus, for full testing of a mobile application, you can limit yourself to 3-4 real devices, and if necessary, conduct random testing (testing the main functions of the app) on emulators.
After defining the boundaries of testing, you can start planning the work itself. It should be noted that testing a mobile application takes significantly more time than testing a website or desktop application because it is required to take some features into account and lay the time for the following additional checks:
• requirement testing for completeness and internal consistency;
• API version compatibility testing;
• testing the application on different physical devices;
• usability testing.
The requirement phase in app development is essential. However, no matter the amount of time taken to develop this phase, proper requirement testing must be performed when testing the app. Requirement analysis must be made before the app developers start the development process, as this will reduce the number of errors. After the development of the app, the overall functionality of the app needs to be put to the test, and requirement testing must also be performed.
Testing API compatibility
Another factor that increases testing time is the constantly changing functionality of those web applications, by analogy with which a mobile application was implemented. The program releases did not keep pace with the changes in the web version, the data structure changed, and web services stopped returning the data needed for the app. In this regard, testing API has become an integral part of the process.
Testing on physical devices
At the stage of functional testing of the main checks for compliance of application functions with specifications, it is necessary to test application behavior in various situations, namely:
• transition to the background mode when receiving calls and SMS;
• application operation when connected to other devices;
• work with different types of Internet connections (Wi-Fi, 4G, 3G);
• handling situations of lack of communication (displaying messages when the Internet connection is disconnected and resume properly when it is restored);
• the process of reinstalling and updating the application to a new version.
Since these checks are very dependent on various technical conditions and specific situations, when carrying them out, you cannot do without real devices. Moreover, mobile phone emulators do not give you real indicators of the speed of the application, the performance, and responsiveness of a real phone. Also, it is difficult to evaluate the convenience of the application on the emulator. Most of the functional testing can be carried out using emulators, but you can only check the behavior of the application in real conditions using real smartphones and tablets.
Another inalienable stage of testing a mobile app is usability testing. It is essential to provide the user with maximum comfort when working with the application, which implies the following requirements:
• speed of work;
• simplicity and understandability of the interface;
• minimum data input from the keyboard;
• the presence of an indication (response) to user actions.
We can say that when testing a mobile application, it is necessary to pay special attention to choosing the fleet of devices to be tested, take the time for testing requirements and APIs into account. And also, you should carry out a complete qualitative check of the application's behavior in real-world conditions of using a mobile device. The most important thing is to provide the user with the simplicity and convenience of working with this mobile application.