This presentation was done in 2012 for the 38th Annual NSBE Convention, Pittsburgh PA
Technical Research Exhibition. At the time Whitney was a student at The University of Maryland, College Park working under Dr. Atif Memon.
1. Building Android Testing Software
Introduction
The Android operating system is one of the most
popular mobile platforms. It’s user friendly interface and
wide distribution on phones and networks have made it
easy for everyone to get their hands on at least a smart
phone. In addition to many wanting an Android phone,
many programmers want to develop for the
platform. During or after the development of the
application, a programmer may want to test their
application. One way in particular is to test their
application via Graphical User Interface (GUI)
manipulation. The Android GUITAR testing harness is
an example.
GUITAR is testing software, developed by Atif Memon
and students at the University of Maryland, for model
based GUI testing. It currently sits on sourceforge and
is open to the general public for use or contribution.
The software contains a ripper (collects application-
specific information), model converters (transforms
ripper information into graphical models), test case
generators (finds potential sequences to execute as
test cases), and replayer (used test case execution).
GUITAR currently is available for UNO, SWT, iPhone,
Android, and WebGuitar.
Problem Statement
Although Android is supported by GUITAR, limitations exist on the length of test cases. If we were to
peel away the user interface layer of the Android application could we generate test cases of
asymptotic lengths and would this be more effective at finding application faults?
Events versus Intents
Events are typically user actions done on the user
interface captured and handled by event listeners and
handlers. Based on the captured events, the application
performs the user requests. As certain events occur,
intents are thrown internally from activity to activity
(explicit) or externally by an internal activity requesting
an action by an outside system (implicit).
The Intents GUITAR team is currently building a system
based on Android GUITAR to support the mapping of
events to intents and the generation of test cases from
intent information. From this information the team
hopes to extend the length of test cases initially
generated from Android GUITAR.
About Android Intents
Intents serve as Androids message system, performed behind the scenes to promote component (multiple activity
and/or application) interconnectivity. Intents can be invoked explicitly or implicitly. Explicit intents are invoked by the
intent explicitly specifying the component (or class), while implicit intents are invoked by the intent specifying the
action.
A basic example would be an application needing to connect to the browser to continue some function. The
application would then send an intent or message to the browser application asking for access. This would be an
implicit intent. An example of an explicit intent would be “Activity A” needing connect to “Activity B.”
Whitney Ford Research Mentor: Dr. Atif Memon
Department of Computer Science
University of Maryland, College Park
Future Work
Research is currently being done to evaluate the
effectiveness of Android GUITAR via examining the
code coverage of the test cases executed through
Emma and fault seeing through Mu Java.
The IntentsGUITAR team will work improve the
intentsGUITAR software by working to add features to
support ripping implicit intents and developing test cases
purely from the intents covered.
Once system is complete a similar process will be used
to evaluate the effectiveness of Android GUITAR.
Literature Cited
[ “Android GUITAR.” Internet: http://sourceforge.net/apps/mediawiki/guitar/index.php?title=Android_Guitar,
16 Dec 2011 [31 Jan 2012].
“Intent Class Overview.” Internet: http://developer.android.com/reference/android/content/Intent.html, 14
Feb 2012 [16 Feb 2012].
Acknowledgements
I would like to thank my research advisor for allowing me to
do research on this topic outside of our software engineering
course. Thanks also goes out to the Intents GUITAR team
for working with me in class to develop Intents GUITAR.
Finally I am grateful towards the National Society of Black
Engineers and everyone that put together the Technical
Research Exhibition.
Further Information
For further information visit the follow website:
Android GUITAR Wiki:
http://sourceforge.net/apps/mediawiki/guitar/index.php?
title=Android_Guitar
intentsGUITAR Wiki:
http://sourceforge.net/apps/mediawiki/guitar/index.php?
title=Intents_GUITAR
38th Annual NSBE Convention, Pittsburgh PA
Technical Research Exhibition
Event Intents
Click: Launching Activity “Main” Android.intent.action.MAIN
Click: Call Gallery_Activity Starting activity: Intent { cmp =
com.example/Gallery_Activity}
User Event to Intent Launching
User Interface
Event – Intent Log
Figure 2: This is an example of how intentsGUITAR maps events (user actions)such as
button presses to intents (behind the scenes) inside the Android Application and system.
Figure 1: Breakdown of Android GUITAR
Figure 3: The Android GUITAR ripper is gathering information
from the GUI