Abstract
The large demand of mobile devices creates significant concerns about the quality of mobile applications (apps). Developers heavily rely on bug reports in issue tracking systems to reproduce failures (e.g., crashes). However, the process of crash reproduction is often manually done by developers, making the resolution of bugs inefficient, especially given that bug reports are often written in natural language. To improve the productivity of developers in resolving bug reports, in this paper, we introduce a novel approach, called ReCDroid+, that can automatically reproduce crashes from bug reports for Android apps. ReCDroid+ uses a combination of natural language processing (NLP), deep learning, and dynamic GUI exploration to synthesize event sequences with the goal of reproducing the reported crash. We have evaluated ReCDroid+ on 66 original bug reports from 37 Android apps. The results show that ReCDroid+ successfully reproduced 42 crashes (63.6% success rate) directly from the textual description of the manually reproduced bug reports. A user study involving 12 participants demonstrates that ReCDroid+ can improve the productivity of developers when resolving crash bug reports.
Original language | English |
---|---|
Article number | 36 |
Journal | ACM Transactions on Software Engineering and Methodology |
Volume | 31 |
Issue number | 3 |
DOIs | |
State | Published - Jul 2022 |
Bibliographical note
Funding Information:Yu Zhao and Tingting Yu part of this work was completed at University of Kentucky. This research is supported in part by the NSF grant CCF-1652149 and NTU research grant NGF-2017-03-033. Authors’ addresses: Y. Zhao, University of Central Missouri, 116 W South St, Warrensburg, MO, USA, 64093; email: yzhao@ucmo.edu; T. Su, East China Normal University, 3663 North Zhongshan Rd, Shanghai, China, 200062; email: tsuletgo@gmail.com; Y. Liu, Nanyang Technological University, 50 Nanyang Avenue, Singapore, 639798; email: yan-gliu@ntu.edu.sg; W. Zheng, Northwestern Polytechnical University, 127 West Youyi Road, Beilin District, Xi’an, Shannxi, China, 710072; email: wzheng@nwpu.edu.cn; X. Wu, Yangzhou University, 196 Huayangxi Road, Yangzhou, Jiangsu, China, 225127; email: xiaoxuewu@yzu.edu.cn; R. Kavuluru, University of Kentucky, 725 Rose St, Lexington, KY, USA, 40506; email: ramakanth.kavuluru@uky.edu; W. G. J. Halfond, University of Southern California, 941 Bloom Walk, Los Angeles, CA, USA, 90089; email: halfond@usc.edu; T. Yu (corresponding author), University of Cincinnati, 2600 Clifton Ave, Cincinnati, OH, USA, 45221; email: tingting.yu@uc.edu. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from permissions@acm.org. © 2022 Association for Computing Machinery. 1049-331X/2022/03-ART36 $15.00 https://doi.org/10.1145/3488244
Publisher Copyright:
© 2022 Association for Computing Machinery.
Keywords
- Android GUI testing
- Bug report
- bug reproducing
ASJC Scopus subject areas
- Software