QA approach on testing native mobile
applications (Android and iOS)
Choice of Testing Environment
Tests must be conducted in a testing environment that mimics real
orld conditions in order to ensure efficiency in testing. Testing environments must
w
be chosen with knowledge of popular mobile devices and OS versions used by most
users/audience of the application. We can use real testing devices and virtual
testing devices(emulators and simulators) to conduct mobile app testing. Both
high-end and low-end mobile devices on both Android and iOS platforms with a
healthy mix of OS versions should be chosen to conduct mobile app testing. Please
find below a sample of Android and iOS devices to conduct mobile app testing.
AndroidDevices
Device name OS version
Xiaomi 11 Lite
Samsung Galaxy Nexus (GT-I9250) Android 4
Huawei
Oppo
Samsung Galaxy S7/8/9 Android 8
Samsung Galaxy A11/12/13 Android 9
Samsung Galaxy A40/41/42 Android 10
Samsung Galaxy Tab S6/S7 Android 11
Samsung Galaxy S20/21 Android 12
Google Pixel devices Android 13
iOS Devices
Device Name OS version
iPhone 6(S)/7(S)/8 iOS 13
iPhone X/XS/11 iOS 14
iPhone 12/13/14 iOS 15
iPhone 14 iOS 16
iPad Mini iOS 12
iPad 15
Report Format
e can use google sheets to develop Test plans, Bug report and Traceability
W
matrix which is a traditional approach. Instead we can also use Bug Tracking
tools like Jira, Test management tools like Zephyr, Xray.
Test Plan- Test plan should contain all the required information to conduct
n efficient test. It can include details about the project/test: Project Name,
a
Test environments, Start date, End date, Name of the Tester. It must also
include a table with different columns: Test Scenario ID, Test Scenario
description, Test Case ID, Test Case Description, Preconditions, Test Steps,
Expected Result, Actual Result, Status, Bug ID.
ug Report-Bug Report consists of a table with different columns: BUG_ID,
B
Title, Description, Steps to Reproduce, Expected Result, Actual Result,
Priority, Screenshot/Video and Assigned To.
This information is enough to clearly explain a bug which will help
developers to fix the issues in the most efficient manner.
Requirement Traceability Matrix (RTM):RTM is a table that maps
est Scenarios to Test Cases and bugs found while executing the test cases.
T
It gives an idea of test coverage attained.
The RTM can consist of a table with different columns: Test scenario ID, Test
Case ID, Bug ID, Status.
Priorities
There are 4 priorities in bug reporting:
P1 -Critical he defect must be resolved immediately because the defect is
T
affecting the application or the product severely and the
product cannot be used until it has been fixed.
P2 -High he defect must be resolved immediately because the defect is
T
affecting the application to a considerable extent and the
relevant modules cannot be used until it's fixed.
P3- Medium The defect should be resolved in the subsequent builds.
P4- Low This defect can be fixed after the critical ones are fixed.
Other approaches in testing
Installation Testing:
● Test if users can install the app from Google Playstore/Appstore.
● Test if the pre-installed application (user not logged into the app) gets
updated smoothly and the app can be launched without any issues.
● Test if the user who has already logged into the app can update and
launch the app without any issues.
Uninstallation Testing:
● Check that the app can be uninstalled without any issues and all
non-downloaded data is removed from the device.
Functional Testing:
● The application installs and launches without taking longer time.
● Users can sign up and login using google account, facebook account
and email address.
● Test Push notifications, pop-ups, marketing emails.
● Test all the buttons within the app.
Security Testing:
● Only authorized users can access the app by receiving authorization
code.
Compatibility Testing:
● Testing if the application functions as intended across various devices
and OS.
Localization Testing:
● Change the language from the launch screen of the app/change
country and language from device settings and test how the app
behaves for specific region/language.
API Testing:
● API (Application Programming Interface) is an interface layer that
enables data exchange and communication between frontend and
backend. Through API testing we are checking if API behaves as
expected, if it returns correct response for the request sent from
frontend to backend.
Interrupt Testing:
● Testing how the app behaves to unexpected interruptions like incoming
phone calls, messages/notifications, device shut down when app is
running, battery run out, OS upgrade when app is running.
Payment Testing:
● Payment testing is done to validate the security and reliability of doing
financial transactions from within the app.
Network testing:
● Check how the app behaves in different networks like 2G, 3G, 4G, Wifi
and offline.
● Users should be able to launch the app without any issues (eg:app
shouldn’t crash) in no network condition.
Cross-Device/OS Testing (Android and iOS):
s part of testing on a wider range of devices and OS version, we should
A
conduct the following tests:
● M ake sure the app can be installed, updated, and critical functionalities work
on different OS versions.
● Make sure that the app works consistently on different screen sizes: small,
medium, and large (tablet/iPad).
● Make sure that the app works on low-end devices with older OS versions that
haven't been updated for a long time, considering the target audience.
● Make sure that the app works onAndroid-BetaandApple-Betaversions that
are going to be launched soon.