Mobile Testing Basics
How to test a mobile application
What is a Mobile
Application?
A mobile application, is a type of application
software designed to run on a mobile device,
such as a smartphone or tablet computer.
Types of Mobile Applications
Native Mobile Application
• Good performance
• High Cost
• Installed physically on the device
• Examples:
Google maps, Facebook, LinkedIn
Browser-based Application
• Accessed through a mobile browser
• Low cost
• Easy to develop
• Browser Compatibility testing is required
Hybrid Mobile Application
• A combination of native app and web app
• A website inside an app
• Easy to develop
• Can work offline
Types of Mobile Devices
Basic Phones
• Used for telephone and SMS only
• Provide few built-in apps and games
• Installation of apps or browsing is not possible
Feature Phones
• Limited support for apps
• Internet access via a built-in browser
• May have additional hardware such as camera
Smartphones
• Several Sensors
• Application installation is possible
Tablets
• Similar to smartphones but larger
• May support longer battery life
Wearables
• Used with a smartphone or tablet
• Provides support for special types of apps
Mobile Testing Challenges
• Multiple platforms and devices
• Different UI designs and UX expectations
• Multiple network types
• Resource-starved devices
• Diverse users
• High feedback visibility
• Marketplace publishing approval
• Unavailability of new devices
Mobile Analytics Data
Mobile Testing
Test Scenarios & Types
Testing Various Input
Methods
• Appropriate keyboard is opened
• Appropriate camera is turned on by default
• Scanning QR Codes works correctly
Testing for Screen Orientation
• Input fields should retain already captured data
• Output data fields display the same data
• The app maintains its state
• Try to test changing the orientation more than one time
Testing for Typical Interrupts
• Device Interrupts:
• Voice call
• Message
• Charger connected
• Low memory
• User interrupts
• App switching
• Setting device into don’t disturb mode
• Interrupts Scenarios:
• Answer a phone call while using the app
• Receive many notifications after returning from do-
not-disturb mode
Testing for Access permissions for Device Features
• The app is able to work with reduced permissions
• Only relevant permissions are requested
• Why does the app need each permission and how will it
behave if the permission is rejected
Testing for power consumption and State
• Power consumption while the app is active
• Power consumption while the app is in the background
Testing for Notifications
If notifications allow access to the app, then the corresponding page of the app must be opened
Testing for User Preferences provided by operating system
• The application adheres to the set preferences by behaving accordingly
Testing for Interoperability & Co-existence
-Data transfer between the system under test and the utilized app is correct
-Conflicting behaviors. An app might turn-off GPS to save energy, while another app turns it automatically
Testing for various connectivity methods
• Correct app functionality with different connectivity methods
• Switching between connectivity methods doesn’t cause any unexpected behavior
• Clear information is given to the user if functionality is restricted due to limited or no
network connection
Installability Testing
• Installation, update, and de-installation of the application
• Application store
• Sideloading (Copy & Install)
• Desktop applications (iTunes)
• Deinstallation with & without “Retain app data” option should be tested
Performance Testing
• Performance testing should include chronometry of most important workflows
• The tester should compare the chronometry with similar apps
Usability Testing
• Learnability testing should be considered
• Application should be self-explanatory & intuitive
• It also should allow user mistakes