Saturday, June 16, 2012

Testing Android Applications

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:

Robotium

Allows running black box scenarios by sending events to the emulator without the need for the source code.

Simple to use and open source.

Robolectric

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.