COLUMBUS: Android App Testing Through Systematic Callback Exploration
With the continuous rise in the popularity of Android mobile devices, automated testing of apps has become more important than ever. Android apps are event-driven programs. Unfortunately, generating all possible types of events by interacting with the app’s interface is challenging for an automated testing approach. Callback-driven testing eliminates the need for event generation by directly invoking app callbacks. However, existing callback-driven testing techniques assume prior knowledge of Android callbacks, and they rely on a human expert, who is familiar with the Android API, to write stub code that prepares callback arguments before invocation. Since the Android API is huge and keeps evolving, prior techniques could only support a small fraction of callbacks present in the Android framework.
In this work, we introduce Columbus, a callback-driven testing technique that employs two strategies to eliminate the need for human involvement: (i) it automatically identifies callbacks by simultaneously analyzing both the Android framework and the app under test, and (ii) it uses a combination of under-constrained symbolic execution (primitive arguments), and type-guided dynamic heap introspection (object arguments) to generate valid and effective inputs. Lastly, Columbus integrates two novel feedback mechanisms—data dependency and crash-guidance, during testing to increase the likelihood of triggering crashes, and maximizing coverage. In our evaluation, Columbus outperforms state-of-the-art model-driven, checkpoint-based, and callback-driven testing tools both in terms of crashes and coverage.
Thu 18 MayDisplayed time zone: Hobart change
11:00 - 12:30 | Testing of mobile, web and gamesTechnical Track / DEMO - Demonstrations / Journal-First Papers / SEIP - Software Engineering in Practice at Meeting Room 109 Chair(s): Wei Yang University of Texas at Dallas | ||
11:00 15mTalk | Fill in the Blank: Context-aware Automated Text Input Generation for Mobile GUI Testing Technical Track Zhe Liu Institute of Software, Chinese Academy of Sciences, Chunyang Chen Monash University, Junjie Wang Institute of Software at Chinese Academy of Sciences; University of Chinese Academy of Sciences, Xing Che Institute of Software, Chinese Academy of Sciences, Yuekai Huang Institute of Software, Chinese Academy of Sciences, Jun Hu Institute of Software, Chinese Academy of Sciences, Qing Wang Institute of Software at Chinese Academy of Sciences; University of Chinese Academy of Sciences Pre-print | ||
11:15 15mTalk | Detecting Dialog-Related Keyboard Navigation Failures in Web Applications Technical Track Paul T. Chiou University of Southern California, Ali S. Alotaibi University of Southern California, William G.J. Halfond University of Southern California | ||
11:30 15mTalk | COLUMBUS: Android App Testing Through Systematic Callback Exploration Technical Track Priyanka Bose University of California, Santa Barbara, Dipanjan Das University of California, Santa Barbara, Saastha Vasan University of California, Santa Barbara, Sebastiano Mariani VMware, Inc., Ilya Grishchenko University of California, Santa Barbara, Andrea Continella University of Twente, Antonio Bianchi Purdue University, Christopher Kruegel University of California, Santa Barbara, Giovanni Vigna UC Santa Barbara | ||
11:45 15mTalk | GameRTS: A Regression Testing Framework for Video Games Technical Track Jiongchi Yu Singapore Management University, Singapore, Yuechen Wu Fuxi AI Lab, Netease Inc., China, Xiaofei Xie Singapore Management University, Wei Le Iowa State University, Lei Ma University of Alberta, Yingfeng Chen Fuxi AI Lab of Netease, Yujing Hu Fuxi AI Lab, Netease Inc., China, Fan Zhang Zhejiang University, China | ||
12:00 15mTalk | Widget Detection-based Testing for Industrial Mobile Games SEIP - Software Engineering in Practice Xiongfei Wu Kyushu University, Jiaming Ye Kyushu University, Ke Chen Fuxi AI Lab of Netease, Xiaofei Xie Singapore Management University, Yujing Hu Fuxi AI Lab, Netease Inc., China, Ruochen Huang University of Alberta, Lei Ma University of Alberta, Jianjun Zhao Kyushu University | ||
12:15 7mTalk | AVGUST: A Tool for Generating Usage-Based Tests from Videos of App Executions DEMO - Demonstrations Saghar Talebipour University of Southern California, Hyojae Park Sharon High School, Kesina Baral George Mason University, Leon Yee Valley Christian High School, Safwat Ali Khan George Mason University, Kevin Moran George Mason University, Yuriy Brun University of Massachusetts, Nenad Medvidović University of Southern California, Yixue Zhao Information Sciences Institute Pre-print Media Attached | ||
12:22 7mTalk | Fragment-Based Test Generation For Web Apps Journal-First Papers Rahulkrishna Yandrapally University of British Columbia, Canada, Ali Mesbah University of British Columbia (UBC) Link to publication Pre-print |