More and more software applications and services are being developed either solely on mobile platforms or in conjunction with the traditional web applications.
But first, take note of the Four Key Aspects related to testing on mobile devices.
First, mobile apps are constrained by the device’s hardware they run on: battery life, memory, storage, processor and screen size.
Second, there is usually some form of interactivity between the embedded services (phone configuration, phone dialer, contact list, accelerometer) and the apps.
Third, mobile devices are restricted to simple touched-biased UI and without mouse-over, right-click or a combination of keyboard and mouse actions that are commonly available on web-based on desktop applications.
Fourth, mobile apps rely on the external resources (i.e. mobile network connectivity, WIFI and GPS,) of the device in order to connect to the outside world, which means consideration must be taken into account that connectivity is not guaranteed at all times.
All of these play in role when considering testing of mobile apps, as one or more of these factors will determine the usability and effectiveness of the apps.
1 Device Constraints Testing
1.1 Battery life
Mobile devices primarily run on battery power, and hence we need to ensure that the app under test (AUT) is not unnecessarity consuming more battery than necessary. This can be done by battery monitoring utilities which can be downloaded from the relevant App stores.
This type of testing is to check how the AUT behaves when there is insufficient amount of memory (RAM) available on the device. This can be done by writing a simple app which ‘fills up the memory’ intentionally. The AUT should recognise the limited amount of memory available and should quit gracefully or display an appropriate message, rather than starting the app and then crashing or hangs.
Some apps (such as games) write app specific data to either the internal memory or external micro-SD card, and some apps offer the user the option to install the app itself on either internal memory or on micro-SD cards. Check that appropriate warning is displayed when the app can’t write data fully on either the internal/external memory, rather than losing the data when the memory card is full.
If an app writes data to SD card to store the user configs, e.g. game stats, then start the app without the SD card and see if the user configs are lost forever or restored when the SD cards is put back in.
Some apps requires a certain processing speed in order for the app the run smoothly. Check that the app runs with acceptable performance on the device having the minimum acceptable processor rating.
Interoperability between embedded services
Typically, web-based application running on Desktops don’t suffer from interruptions the appli
Some examples of apps interoperability includes:
- Facebook app calling Gallery app when uploading photos
- From Facebook app, capture image using Camera app and returns to Facebook
- Using Facebook credentials to log in to Instagram app automatically
- From Contacts app, making a call directly with Phone app
- From Phone app, searching for contacts from Contacts app
Mobile UI elements
Depending on the OS, there are different types of UI elements which are used in an app and these needs to be tested, e.g.
- Search Field
- Secure Text field
- Combo box
- Date Picker
- Text field
- Popup button
- Scroll bar
- List items
App UI Navigation
- Swipe up/down/left/right
- Pinch zoom (for images) or Volume control
- Multi-touch (image rotation, zoom) especially in Tablets
- Change in orientation
- How the app navigates from one screen to the next
- How to go back to the previous screen
- How to return to the home screen of the app
- Check for consistent behaviour between screen, i.e. consistent positions of OK, Cancel or Back buttons.
- When changing orientation does the screen re-draw correctly and all UI elements in the correct place, albeit in different orientation?
- Date display format (DD/MM/YY vs MM/DD/YY)
- Currency symbol
- Units of measure (km vs miles, meters vs ft)
- Left-to-right vs right-to-left (Arabic) text display
Change the device configuration and ensure that the changes are reflected correctly in the app. In some cases, the app itself could have it’s own settings, with regards to Units, in thi case, the app setting should override the device settings.
If your application depends on network access, SMS, Bluetooth, or GPS, then you should test what happens when the resource or resources are not available.
For example, if your application uses the network,it can notify the user if access is unavailable, or disable network-related features, or do both. For GPS, it can switch to IP-based location awareness. It can also wait for WiFi access before doing large data transfers, since WiFi transfers maximize battery usage compared to transfers over 3G or EDGE.
Incoming calls or SMS, alarms and notifications should not cause the app to crash or behave erratically..
Most apps these days require network access to data/service hosted online, which means the app needs to store user information (e.g. username/password) to connect to the service, e.g. Facebook, gmail, etc. This means, the logininfo will be stored locally on the device, which means that this information should be stored securely so that no other app or user can retrieved it by connecting the phone to the laptop.