Large-Scale Analysis of Framework-Specific Exceptions in Android Apps

被引:223
作者
Fan, Lingling [1 ]
Su, Ting [2 ]
Chen, Sen [1 ]
Meng, Guozhu [2 ,3 ]
Liu, Yang [2 ]
Xu, Lihua [1 ]
Pu, Geguang [4 ]
Su, Zhendong [5 ]
机构
[1] East China Normal Univ, Sch Comp Sci & Software Engn, Shanghai, Peoples R China
[2] Nanyang Technol Univ, Sch Comp Sci & Engn, Singapore, Singapore
[3] Chinese Acad Sci, Inst Informat Engn, SKLOIS, Beijing, Peoples R China
[4] East China Normal Univ, Shanghai Key Lab Trustworthy Comp, Shanghai, Peoples R China
[5] Univ Calif Davis, Dept Comp Sci, Davis, CA 95616 USA
来源
PROCEEDINGS 2018 IEEE/ACM 40TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE) | 2018年
关键词
Empirical study; mobile app bugs; testing; static analysis; RESTART;
D O I
10.1145/3180155.3180222
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Mobile apps have become ubiquitous. For app developers, it is a key priority to ensure their apps' correctness and reliability. However, many apps still suffer from occasional to frequent crashes, weakening their competitive edge. Large-scale, deep analyses of the characteristics of real-world app crashes can provide useful insights to guide developers, or help improve testing and analysis tools. However, such studies do not exist - this paper fills this gap. Over a four-month long effort, we have collected 16,245 unique exception traces from 2,486 open-source Android apps, and observed that framework-specific exceptions account for the majority of these crashes. We then extensively investigated the 8,243 frame-workspecific exceptions (which took six person-months): (1) identifying their characteristics (e.g., manifestation locations, common fault categories), (2) evaluating their manifestation via state-of-the-art bug detection techniques, and (3) reviewing their fixes. Besides the insights they provide, these findings motivate and enable follow-up research on mobile apps, such as bug detection, fault localization and patch generation. In addition, to demonstrate the utility of our findings, we have optimized Stoat, a dynamic testing tool, and implemented ExLocator, an exception localization tool, for Android apps. Stoat is able to quickly uncover three previously-unknown, confirmed/fixed crashes in Gmail and Google+; ExLocator is capable of precisely locating the root causes of identified exceptions in real-world apps. Our substantial dataset is made publicly available to share with and benefit the community.
引用
收藏
页码:408 / 419
页数:12
相关论文
共 78 条
[1]  
Adams C, 2015, PRINCIPLES OF HORTICULTURE: LEVEL 2, P83
[2]  
Alex Lockwood, 2017, FRAGMENT T ACTIVITY
[3]   Why does the orientation change mess up my Android application? From GUI failures to code faults [J].
Amalfitano, Domenico ;
Riccio, Vincenzo ;
Paiva, Ana C. R. ;
Fasolino, Anna Rita .
SOFTWARE TESTING VERIFICATION & RELIABILITY, 2018, 28 (01)
[4]   MobiGUITAR Automated Model-Based Testing of Mobile Apps [J].
Amalfitano, Domenico ;
Fasolino, Anna Rita ;
Tramontana, Porfirio ;
Ta, Bryan Dzung ;
Memon, Atif M. .
IEEE SOFTWARE, 2015, 32 (05) :53-59
[5]  
Amalfitano D, 2012, IEEE INT CONF AUTOM, P258, DOI 10.1145/2351676.2351717
[6]  
[Anonymous], MONKEY
[7]  
[Anonymous], 2011, USENIX SECURITY S
[8]  
[Anonymous], 2016, INT S SOFTW TEST AN
[9]  
[Anonymous], P ACM SIGSOFT 20 INT
[10]  
[Anonymous], 2017, Wordpress Android