Multiple-Entry Testing of Android Applications by Constructing Activity Launching ContextsTechnical
Existing GUI testing approaches of Android apps usually test apps from a single entry, in this way, the marginal activities far away from the default entry are difficult to be covered. The marginal activities may fail to be launched due to requiring a great number of activity transitions or involving complex user operations, leading to uneven coverage on activity components. Besides, since the test space of GUI programs is infinite, it is difficult to test activities under complete launching contexts using single-entry testing approaches.
In this paper, we address these issues by constructing activity launching contexts and proposing a multiple-entry testing framework. We perform an inter-procedural, flow-, context- and path-sensitive analysis to build activity launching models and generate complete launching contexts. By exposing activities, we could launch them directly under various contexts without performing long event sequence on GUI. Besides, to achieve an in-depth exploration and detect more bugs, we design an adaptive exploration framework which supports the multiple-entry exploration and dynamically assigns a weight to each entry.
Our approach is implemented in a tool called \textit{Fax}, with an activity launching strategy Fax${la}$ and an exploration strategy Fax${ex}$. The experiments on 20 real-world apps show that Fax${la}$ can successfully launch 68.5% activities, based on which Fax${ex}$ further achieves a relatively 18.0% improvement on method coverage compared with the most popular tool Monkey. Our tool also behaves well in revealing hidden bugs. The number of unique crashes detected by Fax, which is over four hundred, is significantly higher than those of other tools. Among the 45 crashes reported to developers on Github, 24 have been fixed and 4 have been confirmed.
Fri 10 JulDisplayed time zone: (UTC) Coordinated Universal Time change
07:00 - 08:00 | I20-Android TestingTechnical Papers at Goguryeo Chair(s): Shing-Chi Cheung Department of Computer Science and Engineering, The Hong Kong University of Science and Technology | ||
07:00 12mTalk | Multiple-Entry Testing of Android Applications by Constructing Activity Launching ContextsTechnical Technical Papers Jiwei Yan Institute of Software, Chinese Academy of Sciences, Hao Liu Beijing University of Technology, Linjie Pan Institute of Software, Chinese Academy of Sciences, Jun Yan Institute of Software, Chinese Academy of Sciences, Jian Zhang Institute of Software, Chinese Academy of Sciences, Bin Liang Renmin University of China, China | ||
07:12 12mTalk | Time-travel Testing of Android AppsTechnical Technical Papers Zhen Dong National University of Singapore, Marcel Böhme Monash University, Lucia Cojocaru Politehnica University of Bucharest, Abhik Roychoudhury National University of Singapore, Singapore | ||
07:24 12mTalk | Collaborative Bug Finding for Android AppsTechnical Technical Papers Shin Hwei Tan Southern University of Science and Technology, Ziqiang Li Southern University of Science and Technology Media Attached File Attached | ||
07:36 12mTalk | An Empirical Assessment of Security Risks of Global Android Banking AppsTechnical Technical Papers Sen Chen Nanyang Technological University, Singapore, Lingling Fan Nanyang Technological University, Singapore, Guozhu Meng Institute of Information Engineering, Chinese Academy of Sciences, Ting Su ETH Zurich, Switzerland, Jason Minhui Xue The University of Adelaide, Yinxing Xue , Yang Liu Nanyang Technological University, Singapore, Lihua Xu New York University Shanghai Pre-print | ||
07:48 12mTalk | RoScript: A Visual Script Driven Truly Non-Intrusive Robotic Testing System for Touch Screen ApplicationsTechnical Technical Papers Ju Qian Nanjing University of Aeronautics and Astronautics, Zhengyu Shang Nanjing University of Aeronautics and Astronautics, Shuoyan Yan Nanjing University of Aeronautics and Astronautics, Yan Wang , Lin Chen Nanjing University |