For any application, be it the web application, desktop application, or mobile application, Functional Testing are conducted as the basic activity, to ensure, that the application meets all the specified requirements and serves the user needs. Talking about Mobile Application Functional Testing, it holds good for all different types of mobile applications, be it Android or iOS: Native App, Mobile Web, and Hybrid App.
Conducting Functional Testing for Mobile Application is the fundamental activity to be performed in order to assess that each and every feature in the application is responsive and working as expected.
Questions that arise when stating Mobile Application Functional Testing would usually be:
- Can the target user perform this task?
- Are all the features working as expected?
- Are the features well integrated?
Since the Functional Testing is carried out based on requirements, test cases are designed for each and every feature, and for their integration. These test cases are expected to be run for each and every update release of the mobile application (Basic features can be automated to ease the job).
Going forward with the article, we will focus on basic Functional Testing that is expected to be performed (most of them) on any of the mobile applications.
Steps for Mobile Application Functional Testing
Before performing functional testing, follow the below steps:
- Identify the functionalities that have to be tested for the application
- Prepare the input data required for the functionality
- Determine the expected output for the functionality based on specifications
- Design the functional test cases for the functionalities identified
- Execute the functional test cases on the specified build for application
- Evaluate the functional test results of each of the test case for accuracy
In case of feature updates, modify the existing test case to match the latest specifications and keep the test cases in compliance with requirements.
Mobile Application Testing – Basic and general Validations
Testing the Mobile Application depends on various factors:
- Who the target audience are – Consumer, Entrepreneur, etc
- Category of the application – Banking, Business, Education, Games, Lifestyle, etc
- Mode of distribution of mobile application – Google Play Store, Apple App Store, Direct distribution through SDKs
For any mobile application, most of the below-listed tests can be performed as Functional Testing.
- Verify whether the mandatory fields are validated for correctness. They should be provided value by the user before submitting.
- Verify whether the mandatory fields are well distinguishable from non-mandatory fields.
- Verify whether the application functionalities meet the business requirements (test cases should be well designed for this case)
- Verify that the application does not run into chaos in case of interruptions. For example: if there is an incoming call while the application is being operated, the application should go to background. Upon the end of the call, it should come to foreground and remain active
- Verify whether the mobile device is able to send, receive, and store the content of other applications while the application is being run. For example, the mobile device should be able to send and receive the messages, should be able to handle push notifications of other applications, etc.
- Verify whether the mobile device’s multi-task mode supports the application to be operated in the mode. For example: if the mobile device supports split window so that two different applications can be run, verify whether the application can be run along with any other application available in the device.
- Verify all the navigations within the application
- Verify the sharing feature through the application. For example, if the application supports user to share the content, then verify the sharing functionality for all the options that are supported by the mobile device – Messengers, Drive, Mail, etc.
- Verify all the modes of payment transactions that the application supports. For example, if the application supports Debit / Credit Card, Online Payment, and Paypal, then validate the transaction through all the modes.
- Verify the application’s integration with other common applications. For example: if the payment transaction is successful, the application should send the notification with the supported mode (message or mail), supporting notifications.
- Verify that the page scrolls are adequate and later parts of page loads correctly and on time
- Verify the number of rounding errors is minimal
- Verify all the error messages related to the network. For example: “Error: Network unavailable”
- Verify the application does not interfere with other application’s functionality and consumes their memory
- Verify application’s resume if it was suspended due to unexpected issues: system failure, hard reset etc.
- Verify the application download and installation is free of significant errors and device meets the system requirements needed for the application to install and run (like space, permissions, etc)
- Verify that starting the application is consistent with every use
- Verify the application behavior on the major devices and different combination of carriers: 2G, 3G, and 4G
- Verify the application and user manual compliance. Both should match and be consistent.
It is very much required to perform the entire functional test regression suite for any of the mobile applications every time before launching to the market, be it the new application or the updates to the existing application. This uncovers the new functional issues and helps in delivering the quality application. Above listed validations for Mobile Application Functional Testing can be considered as the checklist for any application.
Mobile Application Functional Testing should cover both positive and negative scenarios for all the features. For positive scenarios, include the tests where the user can achieve the goal. For negative scenarios, including the tests that result in displaying error messages, highlighting the wrong actions, and failure in reaching the goal. Let’s take a look at some simpler examples.
Mobile Application Testing – Positive Validations for Login / Logout feature
- Registration link should be functional
- User should be able to register by providing values to only mandatory fields
- User should be able to register by providing values to all the mandatory fields
- Activate the account with supported modes: Phone number or email
- Once registered and activated, log in with registered details (say email address and password)
- Logout from the application
- Successful Password reset through the supported modes: Phone number or email
Mobile Application Functional Testing – Negative Validations for Login / Logout feature
- Register with already registered account details
- Register leaving few or all the mandatory fields blank
- Register with values in non-supported format for fields (Incorrect format for email address, password non-compliance, etc)
- Try logging in without activating the account
- Try activating after activation link/code expires
- Once registered and activated, log in with invalid details (invalid email address and invalid password, invalid email address and correct password, correct email address and incorrect password, either of the fields blank, and both the fields blank)
- Password reset failure due to non-compliance, repeating old password, etc.
This way, the tester should be able to create tests for Mobile Application Functional Testing effectively. Functional Testing is the means to gain confidence in the application’s behavior and usage.