Automated Testing of Android Apps:
A Systematic Literature Review
Pingfan Kong , Li Li , Jim Gao , Kui Liu , legawende F. Bissyande , andJacq ues Klein
Abstract—Automated testing of Android apps is essential for app users, app developers, and market maintainer communities alike. Given the widespread adoption of Android and the specificities of its development model, the literature has proposed various testing approaches for ensuring that not only functional requirements but also nonfunctional requirements are satisfied. In this papet; we aim at providing a clear overview of the state-of-the-art works around the topic of Android app testing, in an attempt to highlight the main trends, pinpoint the main methodologies applied, and enumerate the challenges faced by the Android testing approaches as well as the directions where the community effort is still needed. To this end, we conduct a systematic literature review during which we eventually identified 103 relevant research papers published in leading conferences and journals until 2016. Our thorough examination of the relevant literature has led to several findings and highlighted the challenges that Android testing researchers should strive to address in the future. After that, we further propose a few concrete research directions where testing approaches are needed to solve recurrent issues in app updates, continuous increases of app sizes, as well as the Android ecosystem fragmentation.
Index Terms— ndroid, automated testing, literature review, survey.
I. Introduction
A
NDROID smart devices have become pervasive after gaining tremendous popularity in recent years. As of July 2017, Google Play, the official app store, is distributing over three million Android apphcations (i.e., apps), covering over 30 categories ranging from entertairnnent and personalization apps to education and financial apps. Such popularity among developer communities can be attributed to the accessible development environment based on familiar Java programming language as well as the availabihty of Ebraries implementing diverse functionalities [1]. The app distribution ecosystem around the official store and other alternative stores such as Anzhi and AppChina is further attractive for users to find apps and organizations to market their apps [2].
Manuscript received J uly 31,2017; revised February 19, 2018, May 27,2018, June 13,2018, and August 3,2018; accepted August 9,2018. Date of publication September 3, 2018; date of current version February 26, 2019. Thlpound; work was supported by the Fonds National de la Recherche, Luxembourg, under projects CHARACTERIZE C17/IS/11693861 and Recommend C15/1 S/l 0449467. Associate Editor: S, Ghosh. (Corresponding author: Li Li.)
P. Kong, J. Gao, K. Liu, T, F. Bissyande, and J. Klein are with the Ln- terdiscdplinary Centre for Security, Reliability and Trust, University of Luxembourg, Luxembourg, LU 1855, Luxembourg (e-mail: pingfan.kong jcm.gao@imi.lu; kui.liu@uni.lu; teg awen de .bis sy ande @ cmi. lu; jacques.klein@ cmi.lu).
L. Li is with the Faculty of Information Technology, Mon ash University, Melbourne, Vic. 3800, Australia (e-mail: li.li@monash.edu).
Digital Object Identifier 10.1109/TR.2018.2865733
Fig. 1. Process of testing Android apps.
Unfortunately, the distribution ecosystem of Android is porous to poorly tested apps [3]-[5]. 'Yet, as reported by Kochhar [3], error-prone apps can significantly impact user experience and lead to a downgrade of their ratings, eventually harming the reputation of app developers and their organizations [5]. It is thus becoming more and more important to ensure that Android apps are sufficiently tested before they are released on the market. However, instead of manual testing, which is often laborious, time -cons uming, and error-prone, the ever-growing complexity and the enormous number of Android apps call for scalable, robust, and trustworthy automated testing solutions.
Android app testing aims at testing the functionaEty, usability, and compatibihty of apps rcmning on Android devices [6], [7]. Fig. 1 illustrates a typical working process. At Step (1), target app is installed on an Android device. Then, in Step (2), the app is analyzed to generate test cases. We remind the readers that this step (in dashed line) is optional and some testing techniques such as automated random testing do not need to obtain preknowledge for generating test cases. Subsequently, in Step (3), these test cases are sent to the Android device to exercise the app. In Step (4), execution behavior is observed and collected from all sorts of perspectives. Finally, in Step (5), the app is uninstalled and relevant data is wiped. We would like to remind the readers that installation of the target app is sometimes not a necessity, e.g., frameworks like Robolectric allow tests directly run in JVM. In fact. Fig. 1 can be borrowed to describe the workflow of testing almost any software besides Android apps. Android app testing, on the contrary, falls in a unique context and often fails to use general testing techniques [8]-[13]. There are several difierences with traditional (e.g., Java) application testing that motivate research on Android app testing. We enumerate and consider for our review a few common challenges.
Firsts although apps are devel
剩余内容已隐藏,支付完成后下载完整资料
Automated Testing of Android Apps:
A Systematic Literature Review
Pingfan Kong , Li Li , Jim Gao , Kui Liu , Tegawende F. Bissyande , and Jacques Klein
Abstract—Automated testing of Android apps is essential for app users, app developers, and market maintainer communities alike. Given the widespread adoption of Android and the specificities of its development model, the literature has proposed various testing approaches for ensuring that not only functional requirements but also nonfunctional requirements are satisfied. In this papet; we aim at providing a clear overview of the state-of-the-art works around the topic of Android app testing, in an attempt to highlight the main trends, pinpoint the main methodologies applied, and enumerate the challenges faced by the Android testing approaches as well as the directions where the community effort is still needed. To this end, we conduct a systematic literature review during which we eventually identified 103 relevant research papers published in leading conferences and journals until 2016. Our thorough examination of the relevant literature has led to several findings and highlighted the challenges that Android testing researchers should strive to address in the future. After that, we further propose a few concrete research directions where testing approaches are needed to solve recurrent issues in app updates, continuous increases of app sizes, as well as the Android ecosystem fragmentation.
Index Terms— ndroid, automated testing, literature review, survey.
I. Introduction
A
NDROID smart devices have become pervasive after gaining tremendous popularity in recent years. As of July 2017, Google Play, the official app store, is distributing over three million Android apphcations (i.e., apps), covering over 30 categories ranging from entertairnnent and personalization apps to education and financial apps. Such popularity among developer communities can be attributed to the accessible development environment based on familiar Java programming language as well as the availabihty of Ebraries implementing diverse functionalities [1]. The app distribution ecosystem around the official store and other alternative stores such as Anzhi and AppChina is further attractive for users to find apps and organizations to market their apps [2].
Manuscript received J uly 31,2017; revised February 19, 2018, May 27,2018, June 13,2018, and August 3,2018; accepted August 9,2018. Date of publication September 3, 2018; date of current version February 26, 2019. Thlpound; work was supported by the Fonds National de la Recherche, Luxembourg, under projects CHARACTERIZE C17/IS/11693861 and Recommend C15/1 S/l 0449467. Associate Editor: S, Ghosh. (Corresponding author: Li Li.)
P. Kong, J. Gao, K. Liu, T, F. Bissyande, and J. Klein are with the Ln- terdiscdplinary Centre for Security, Reliability and Trust, University of Luxembourg, Luxembourg, LU 1855, Luxembourg (e-mail: pingfan.kong jcm.gao@imi.lu; kui.liu@uni.lu; teg awen de .bis sy ande @ cmi. lu; jacques.klein@ cmi.lu).
L. Li is with the Faculty of Information Technology, Mon ash University, Melbourne, Vic. 3800, Australia (e-mail: li.li@monash.edu).
Digital Object Identifier 10.1109/TR.2018.2865733
Fig. 1. Process of testing Android apps.
Unfortunately, the distribution ecosystem of Android is porous to poorly tested apps [3]-[5]. 'Yet, as reported by Kochhar [3], error-prone apps can significantly impact user experience and lead to a downgrade of their ratings, eventually harming the reputation of app developers and their organizations [5]. It is thus becoming more and more important to ensure that Android apps are sufficiently tested before they are released on the market. However, instead of manual testing, which is often laborious, time -cons uming, and error-prone, the ever-growing complexity and the enormous number of Android apps call for scalable, robust, and trustworthy automated testing solutions.
Android app testing aims at testing the functionaEty, usability, and compatibihty of apps rcmning on Android devices [6], [7]. Fig. 1 illustrates a typical working process. At Step (1), target app is installed on an Android device. Then, in Step (2), the app is analyzed to generate test cases. We remind the readers that this step (in dashed line) is optional and some testing techniques such as automated random testing do not need to obtain preknowledge for generating test cases. Subsequently, in Step (3), these test cases are sent to the Android device to exercise the app. In Step (4), execution behavior is observed and collected from all sorts of perspectives. Finally, in Step (5), the app is uninstalled and relevant data is wiped. We would like to remind the readers that installation of the target app is sometimes not a necessity, e.g., frameworks like Robolectric allow tests directly run in JVM. In fact. Fig. 1 can be borrowed to describe the workflow of testing almost any software besides Android apps. Android app testing, on the contrary, falls in a unique context and often fails to use general testing techniques [8]-[13]. There are several difierences with traditional (e.g., Java) application testing that motivate research on Android app testing. We enumerate and consider for our review a few common challenges.
Firsts although a
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[253836],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。