Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


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

 

 

1. INTRODUCTION

Smartphones are becoming pervasive, with more than 195 million sold worldwide in the first three quarters of 2010 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/this research we focus on ensuring the reliability of mobile applications running on the Google Android platform. According to/by 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/really 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/like desktop or server programs. However/though, 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/because of their novelty), make mobile applications prone to new kinds of bugs. For example/for instance, 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 event-based system used in a desktop GUI application. The tendency of mobile applications to have bugs is evidenced by their high defect density: a study by Maji et al. [27] has found that Android applications can have defect densities orders of magnitude higher than the OS.

In this paper /this research we aim to bring novel, Android-specific classes of bugs to light, and show how to construct an effective test automation approach for addressing such bugs, especially/special GUI bugs, and ensuring the reliability of Android applications. First/to start with, we conduct a bug collection and categorization on 10 popular open source Android applications (Section 2). We found that, while bugs related to application logic are still present, the remaining bugs are Android-specific, i.e., due to/thanks to the activity- and event-based nature of Android applications. We categorized all confirmed bugs in the bug database based on our observations. To detect and fix these categories of bugs, we employ an automated test approach (Section 4). Our approach uses a combination of techniques. First/to begin with, we employ test and event generators to construct test cases and sequences of events. We then run these test cases (and feed the events, respectively) to the application. Once/as soon as a test case is running, we record detailed information about the application in the system log file; after each test case run, we perform a log file analysis to detect potential bugs. To demonstrate the effectiveness of our approach, in Section 5 we present an evaluation on the open source applications that form the object of our bug study. We generated test cases for all projects used in the bug study and compared bugs we found with bugs reported by users. We detected most bugs reported, and found new bugs which have never been reported.

In summary/in conclusion, our work tackles the challenges of verifying mobile applications and makes two contributions:

1. A bug study and categorization of Android-specific bugs that shows an important number of Android bugs manifest themselves in a unique way that is different from traditional, e.g., desktop/server application bugs.

2. An effective approach for detecting Android GUI bugs, based on a combination of test case and event generation with runtime monitoring and log file analysis.

Exercise 3.9. Choose the appropriate link words in the text given above. Remember that sometimes both of them are possible.

Exercise 3.10. Make up the list of keywords.

Exercise 3.11. Complete the definition using the correct word from the text.

1._________ (especially of an unwelcome influence or physical effect) spreading widely throughout an area or a group of people.

2._________ the force or energy with which a body moves; something that makes a process or activity happen or happen more quickly.

3._________ the use or introduction of automatic equipment in a manufacturing or other process or facility.

4._________ make use of.

5._________ make determined efforts to deal with (a problem or difficult task).

Exercise 3.12. Write the Abstract based on the Introduction given above.

Exercise 3.13. Summarize the Introduction.

Exercise 3.14. Boost your vocabulary with the words from the Introduction.

Noun Verb Adjective Adverb
draw surpass pervasive increasingly
impetus estimate mature particularly
reliability confirm prone respectively
constraint employ novel  
density tackle unique  
sequence verify    
evaluation      
test cases      
challenge      

PART C

Exercise 3.15. Read and analyze the Introduction given below.


Поделиться:



Последнее изменение этой страницы: 2019-03-30; Просмотров: 227; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.011 с.)
Главная | Случайная страница | Обратная связь