Sqa Engineering Testing

Only available on StudyMode
  • Topic: Android, Mobile operating system, Windows Mobile
  • Pages : 18 (5472 words )
  • Download(s) : 76
  • Published : March 4, 2013
Open Document
Text Preview
Automating GUI Testing for Android Applications
Cuixiong Hu Iulian Neamtiu
Department of Computer Science and Engineering University of California, Riverside, CA, USA

{huc,neamtiu}@cs.ucr.edu

ABSTRACT
Users increasingly rely on mobile applications for computational needs. Google Android is a popular mobile platform, hence the reliability of Android applications is becoming increasingly important. Many Android correctness issues, however, fall outside the scope of traditional verification techniques, as they are due to the novelty of the platform and its GUI-oriented application construction paradigm. In this paper we present an approach for automating the testing process for Android applications, with a focus on GUI bugs. We first conduct a bug mining study to understand the nature and frequency of bugs affecting Android applications; our study finds that GUI bugs are quite numerous. Next, we present techniques for detecting GUI bugs by automatic generation of test cases, feeding the application random events, instrumenting the VM, producing log/trace files and analyzing them post-run. We show how these techniques helped to re-discover existing bugs and find new bugs, and how they could be used to prevent certain bug categories. We believe our study and techniques have the potential to help developers increase the quality of Android applications.

Categories and Subject Descriptors
D.2.4 [Software Engineering]: Software/Program Verification—Reliability; D.2.5 [Software Engineering]: Testing and Debugging—Testing tools,Tracing

General Terms
Reliability, Verification

Keywords
Test automation, Mobile applications, Google Android, GUI testing, Test case generation, Empirical bug studies

1. INTRODUCTION
Smartphones are becoming pervasive, with more than 195 million sold worldwide in the first three quarters of 2010

Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. AST ’11, May 23-24, 2011, Waikiki, Honolulu, HI, USA Copyright 2011 ACM 978-1-4503-0592-1/11/05 ...$10.00.

alone [23, 22, 24]. A major draw of any smartphone is its ability to run applications, thus users are increasingly relying on smartphones for computing needs, rather than using laptops or desktops. This leads to an increasing impetus for ensuring the reliability of mobile applications. Reliability is particularly important for sensitive mobile applications such as online banking, business management, health care, or military domains. In this paper we focus on ensuring the reliability of mobile applications running on the Google Android platform. According to Fall 2010 reports, Android is the second most popular mobile OS, surpassing BlackBerry and iPhone OS, and will be tied for number one with Nokia’s Symbian by 2014 [29, 24]; Android is in fact the only mobile OS platform to gain market share since Q4’09 [23, 22, 24]. The Android ecosystem includes the Android Market, which currently lists more than 220,000 applications, 12,316 of which were added in December 2010 alone, and an estimated 2.6 billion downloads [17]. Many tools and techniques exist for automating the testing of mature, well-established applications, such as desktop or server programs. However, the physical constraints of mobile devices (e.g., low-power CPU, small memory, small display), as well as developers’ unfamiliarity with mobile platforms (due to their novelty), make mobile applications prone to new kinds of bugs. For example, an Android application is structured around activities (GUI windows), broadcast receivers, services and content providers; this is different from standard server applications, or from an...
tracking img