Android Testing
testing in Android application can be really tricky, there’s a lot to test if we want to deliver a proper application which supports as much users as posible,
here are a few tips on the what to test and how to test:
Testing in Android:
· Screen sizes
Testing how the app is shown in different screen sizes
· OS versions
Apps can behave differently or even crush in some OSD versions due to lack of targeting to specific device
· Densities
Screen densities change from device to device, and from a UI point of view this can be real issues, having apps to look far from the designers aim
· Resolutions
When not targeting a specific resolution the graphics are used with OS manipulations like stretch and scale, which can be resulting in a disastrous UI and UX for the user
· Functionality
Basic functionality testing of the app in terms of business logic
· Usability
The usability angle is very important once we are handling a small device, a lack of attention to the UI and user experience can result in an unsuccessful app
· Accessibility
A lack of attention to “what happens if the phone doesn’t have a front camera” etc. can result on a malfunctioned application
· Performance
Games for example require a lot of CPU in order to present a good experience
· Load
What happens when RAM or battery are running low as result of usage in the app? Are you taking care of those situations?
For example (Waze alerts the user once the battery is below 30% juice)
Tools:
Testing with tools which come out of the box with the Android SDK
The Android SDK provides a testing framework which comes out of the box.
The API allows running test projects with the targeted app which is similar to jUnit testing, with usage of the Android specific APIS.
The android developer website suggests some standard tests which can be done easily:
Such as change in orientation, content provider testing, accessibility testing, battery usage and overall statistics from the device such as data usage etc...
Other testing tools:
Allows running black box scenarios by sending events to the emulator without the need for the source code.
Simple to use and open source.
Allows running tests inside the IDE without using the emulator by modifying code at runtime to change returned values in order to intercept without using the emulator.