Hawkeye: Change-targeted Testing for Android Apps based on Deep Reinforcement Learning
Android Apps are frequently updated to keep up with changing user, hardware, and business demands. Ensuring the correctness of App updates through extensive testing is crucial to avoid potential bugs reaching the end user. Existing Android testing tools generate GUI events that focus on improving the test coverage of the entire App rather than prioritising updates and its impacted elements. Recent research has proposed change-focused testing but relies on random exploration to exercise the updates and impacted GUI elements that is ineffective and slow for large complex Apps with a huge input exploration space. At ByteDance, our established model-based GUI testing tool, Fastbot2, has been in successful deployment for nearly three years. Fastbot2 leverages event-activity transition models derived from past App explorations to achieve enhanced test coverage efficiently. A pivotal insight we gained is that the knowledge of event-activity transitions is equally valuable in effectively targeting changes introduced by App updates. This insight propelled our proposal for directed testing of App updates with Hawkeye. Hawkeye excels in prioritizing GUI actions associated with code changes through deep reinforcement learning from historical exploration data.
In our empirical evaluation, we rigorously compared Hawkeye with state-of-the-art tools like Fastbot2 and ARES. We utilized 10 popular open-source Apps and a notable commercial App for this evaluation. The results showcased that Hawkeye consistently outperforms Fastbot2 and ARES in generating GUI event sequences that effectively target changed functions, both in open-source and commercial App contexts.
In real-world industrial deployment, Hawkeye is seamlessly integrated into our development pipeline, performing smoke testing for merge requests in a complex commercial App. The positive feedback received from our App development teams further affirmed Hawkeye’s ability in testing App updates effectively.
Fri 19 AprDisplayed time zone: Lisbon change
11:00 - 12:30 | Testing: various bug types 2Research Track / Software Engineering in Practice at Fernando Pessoa Chair(s): João F. Ferreira INESC-ID and IST, University of Lisbon | ||
11:00 15mTalk | Towards Finding Accounting Errors in Smart Contracts Research Track Brian Zhang Purdue University | ||
11:15 15mTalk | MultiTest: Physical-Aware Object Insertion for Testing Multi-sensor Fusion Perception Systems Research Track Xinyu Gao , Zhijie Wang University of Alberta, Yang Feng Nanjing University, Lei Ma The University of Tokyo & University of Alberta, Zhenyu Chen Nanjing University, Baowen Xu Nanjing University Pre-print | ||
11:30 15mTalk | JLeaks: A Featured Resource Leak Repository Collected From Hundreds of Open-Source Java Projects Research Track Tianyang Liu Beijing Institute of Technology, Weixing Ji Beijing Institute of Technology, Xiaohui Dong Beijing Institute of Technology, Wuhuang Yao Beijing Institute of Technology, Yizhuo Wang Beijing Institute of Technology, Hui Liu Beijing Institute of Technology, Haiyang Peng Beijing Institute of Technology, Yuxuan Wang Beijing Institute of Technology | ||
11:45 15mTalk | S3C: Spatial Semantic Scene Coverage for Autonomous Vehicles Research Track Trey Woodlief University of Virginia, Felipe Toledo , Sebastian Elbaum University of Virginia, Matthew B Dwyer University of Virginia Pre-print | ||
12:00 15mTalk | FlashSyn: Flash Loan Attack Synthesis via Counter Example Driven Approximation Research Track Zhiyang Chen University of Toronto, Sidi Mohamed Beillahi University of Toronto, Fan Long University of Toronto Pre-print | ||
12:15 15mTalk | Hawkeye: Change-targeted Testing for Android Apps based on Deep Reinforcement Learning Software Engineering in Practice Chao Peng ByteDance, China, Zhengwei Lv ByteDance, Jiarong Fu ByteDance, Jiayuan Liang ByteDance, Zhao Zhang Bytedance Network Technology, Ajitha Rajan University of Edinburgh, Ping Yang Bytedance Network Technology |