Name
Android Applications Quality Assurance

Code
3963

Duration
8 Hours

Description
Testing applications developed for the android platform require a basic understanding for the platform. This short training provides its participants with a general understanding for the way its applications work and with the required skills to perform black box testing. The training concludes with a general overview and a simple demo for using the Robotium framework.

Population
QA Testers.

Objectives
Gain the required understanding and technical skills for performing QA testings.

Prerequisites
General Background in OOP.

Topics
Android Platform Overview
The android platform is based on the Linux platform. Understanding the android platform layers and the purpose each one of them fulfills is essential for working with this platform.
Activities Life Cycle
Each application on the android platform is kind of a small federation of various components. The activities are the most popular ones. Each activity has a life cycle. Understanding this life cycle can assist while testing applications.
User Interface
When testing an android application we should verify it works property on various handsets with various characteristics. One aspect of our tests should be the user interface. In this part of the course we will go over those user interface's small things you should pay attention to when checking an android application.
Testing on Emulators
Unlike J2ME the android emulator we can execute on our computer is very similar to the android devices it emulates. There are cases in which we might prefer working with emulators instead of the android device. During this part of the course the students will practice the various available ways (including the usage of the adb tool) for testing android applications on emulators.
The DDMS Perspective
The Eclipse IDE DDMS perspective allows us to initiate incoming phone calls and incoming SMS and inject new geolocation positions. During this part of the course the students will experience practical usage of the DDMS perspective while testing a sample applicaiton.
The Logcat Application
Logcat allowss us tracking the exact execution while going through logging messages coming both from code written by the application developer and from code written by the android platform developers. Going through the logging messages we can learn about the execution flow of the application we check. During this part of the course we overview the way Logcat works and the ways through which we can track it logging messages.
Hybrid Applications Testing
The mixture of content developed using web technologies and code written in Java (hybrid applications) becomes a very popular approach. During this part of the course we will discuss the unique characteristics of hybrid applications that require our special attention when testing them.
Stress Conditions Testing
Incoming phone call‚ internet connectivity problems‚ unexpected lack of computing resources due to other applications resources consumption. All these and others might lead to applications malfunctioning. During this part of the course we will overview the relevant stress conditions‚ explain how to emulate them and discuss how to test them.
Testing on Devices
In order to test an android applicaiton on android devices there are specific steps we should follow. The required driver should be installed on our computer and specific settings should be set in the android device. During this part of the course the students will practice the installation of android applications on android devices.
Remote Testing
The growing fragmentation of the android market might create the need for testing the application on handsets models we don't have and on handsets models connected with wireless carriers in other countries. We will overview these cases and the available solutions(e.g. DeviceAnywhere).
Robotium Overview
The Robotium open source project allows us to test android applications while treating them as black boxes (without getting into their code). We will overview a basic sample for using it as part of the quality assurance process.