Today, almost everyone has a smartphone. Even in the underdeveloped countries, at least one member of the family has a smartphone. Some people who can afford it, have more than one phone. Most importantly, more and more applications are introduced in the market almost every day from social media apps to a simple calculator or alarms apps.
From these facts, you can understand how easily and how many mobile applications on smartphones are accessible to the people. Thus, it becomes important to design and develop mobile applications in a way that will engage the user once it has been installed or downloaded on the phone.
One of the ways to achieve this goal is to focus on the quality of the application. Testing the mobile application in a manner that maximum or all the bugs are caught and solved is required as it is crucial for the success of the application usage and customer satisfaction.
Moreover, testing only the functional requirements is not enough, there are many other criteria that should be met before the application is available in the market for use. Let’s discuss mobile application testing in detail.
Types of Mobile Applications
Before we go into specifics of mobile app testing, first, let’s understand various types of applications. Mobile applications can be divided into three types as follows:
- Native Apps – As the name suggests, native apps are designed for a specific operating system. Such apps do not support other operating systems i.e. apps designed for Android OS will only work on devices with Android OS, they will not work on devices with iOS or Windows OS.
These apps first need to be installed on the devices using online stores available for the operating systems; for example, to download android apps, users can go to the ‘Play Store’. To develop such apps, developers use native device APIs and UI thus giving a satisfactory user experience.
Moreover, after installation, such apps are stored on the local storage of the devices and they use various device controls such as camera, bluetooth, contacts, sensors, etc.
- Web Apps – Web apps are applications that can be accessed through various web browsers available on the device. Users do not need to download or install such apps. To access them, the user will have to type the app URL in the browser.
Unlike native apps, these apps are not operating system specific i.e. web app will work on both android and iOS devices, or any other OS available in the market. The performance and UI of the web app will depend on the browser being used. Also, such apps do not consume any storage space on the device.
- Hybrid Apps – Hybrid apps are a combination of native and web apps. Hybrid apps can be downloaded using various online stores such as ‘Play Store’ for android, like the native apps, they are stored in the local storage of the device. These apps are developed using HTML5; pages designed using HTML5 run in a browser, inside the native app.
How to test a mobile app?
- Mobile application testing is very similar to any other software testing i.e. for mobile app testing, before starting the actual testing of the application, testing needs to create a test plan.
In the test plan, the scope of the testing, testing strategy, or approach for each type of testing, hardware, and environment requirements and list of automation tools (if any) should be mentioned, among many other items.
- The testing team also needs to create detailed test scenarios and test cases with test data.
- Moreover, a decision needs to be made by the testing team on using automation testing as it is not possible to test every scenario with automation tools. The team needs to identify for all areas or test cases automation tools will be used and scripts for the same needs to be designed.
- A decision on testing the apps on various mobile devices needs to be made as it won’t be possible to buy each type of mobile device and test on them due to budget constraints. The team can use emulators or simulators as required. The team can also use rented devices for testing.
Now, let’s look at the various approaches used for mobile application testing. This section also includes some important points of the checklist for each type of testing approach.
Functional Testing Checklist of Mobile App
In mobile app functional testing, functionalities, or features of the developed application are tested.
- Check validations of the fields. Validations include mandatory check, characters check, length check, and error messages.
- Check the interaction between different modules of the application.
- Check whether the application is compatible with various platforms/devices, operating systems, browsers.
- Check whether the application is compatible with various screen sizes, resolutions.
- Check whether the application is working in the desired manner in portrait and landscape modes.
- Check the application functionalities in various networks and various network providers.
- Check the application in flight mode and silent mode.
- Check the camera and sensor-specific functions.
- Check location specific functions.
- Check the application working when the phone is locked and unlocked.
- Check the application working when any phone call and/or SMS is received.
- Check the scrolling functionality of the application.
- Check the installation and uninstallation process of the application.
- Check the update process of the application if a new update is available.
- Check the application working when the device memory is full.
- Check the application working when any other applications’ notifications are received.
- Check battery performance when the application is running actively and when the application is running in the background.
- Check data handling of the application i.e. data update and data deletion.
Usability Testing Checklist of Mobile App
In mobile app usability testing, the main goal of the testers is to validate whether the application is easy to use and user friendly.
- Check navigation between different modules of the application i.e. whether the user can move between different screens in the desired manner.
- Check whether the whole application has a uniform and eye appealing color.
- Check whether the whole application has a uniform font size.
- Check whether the buttons and icons have a uniform size in each module.
- Check whether the text of the buttons and other input/output fields are suitable for the functionality of the button/field.
- Check whether the text of the error messages is user friendly (in a manner that is easy to understand and not too harsh) and uniform for all the fields.
- Check whether the drop-down fields’ items are easily readable.
- Check whether the flow of the application is easy to understand for the user.
- Check whether tooltips or placeholders are provided for the actions that are not easily understandable.
- Check the speed of the application whenever the user clicks on any button or icon.
Performance Testing Checklist of Mobile App
In mobile app performance testing, the performance of the application under a certain load and/or stress is tested.
- Check the application performance when the device is charging.
- Check the application performance when the battery is low.
- Check the application performance when the battery is fully charged.
- Check the application performance when multiple users are logged in at the same time.
- Check the application performance when the user tries to enter multiple characters continuously.
- Check the working of the application when the internet connection is off and network connectivity is low.
- Check the working of the application when the internet connection keeps fluctuating.
- Check the application performance when the internet connection is switched between high and low-speed networks.
- Check the speed of the application when the user tries to click on multiple buttons/icons at the same time.
- Check the application performance when the user is in a moving condition i.e. either in a vehicle or walking.
- Check the application working in the event of a system crash or when the application is stopped abruptly.
- Check the launch time of the application.
Security Testing Checklist of Mobile App
In mobile app security testing, the application’s ability to fight against any vulnerabilities is tested.
- Check whether the application has proper rules and mechanisms in place to authenticate users on the platform.
- Check whether the application has strong password policies. (Especially applicable to banking and finance, social media or e-mail apps)
- Check whether the application has a proper mechanism in place to recover forgotten passwords.
- Check whether the deactivated users and users entering old passwords are not allowed to log in.
- Check whether the confidential data of the user is not accessible to other users on the platform.
- Check whether the confidential data such as payment information and passwords are stored and displayed in an encrypted format.
- Check whether the data entered by the user and data stored by the application is correct.
- Check whether the application can fight against brute force attacks, SQL injection attacks.
It is said that for every mobile application available in the market, there is at least one competitor. For the application to be successful in the market, user satisfaction is very much required.
So, it becomes critical for the application to be performing at its best and any bugs or defects should be found during the quality check, testing phase of the application development cycle.
Kuldeep is the founder and lead author of ArtOfTesting. He is skilled in test automation, performance testing, big data, and CI-CD. He brings his decade of experience to his current role where he is dedicated to educating the QA professionals. You can find him on LinkedIn.