University of Central Missouri: UCM Faculty Member Leads Research Exploring Novel Approach for Determining Cause of Mobile App Crashes
While mobile phone users rely on applications (apps) to complete a number of tasks, these apps are often subject to software bugs that result in crashes which cause them to fail. Thanks to the work of a group of researchers, including one University of Central Missouri assistant professor, app developers now have a tool that will help them resolve crash issues with less human effort.
Yu Zhao, Ph.D., assistant professor of software engineering at UCM, was the lead writer with seven other researchers from the United States, China and Singapore on the article, “ReCDroid+: Automated End-to-End Crash Reproduction from Bug Reports for Android Apps.” Their work was recently accepted for publication by one of the most prestigious academic journals in the software engineering field, the “ACM Transactions on Software Engineering and Methodology (TOSEM).”
“The large demand of mobile devices creates significant concerns about the quality of mobile applications. Developers rely heavily on bug reports in issue tracking systems to reproduce failures,” Zhao said.
He noted these bug reports provide valuable information for app developers to help them observe the bug, reproduce it, and determine its unexpected behavior. This, for example, includes whether or not the bug will cause the app to crash.
In order to help identify the cause of app crashes, Zhao said there is a crash reproduction process which is often manually done by developers. This process, however, can be inefficient for three reasons: some bugs are hard to be reproduced; a bug report may miss steps that are necessary to reproduce; and some bug reports are hard for individuals to understand. As noted in the article, this step is challenging because the provided information is written in natural language. Natural language is inherently imprecise and incomplete [18]. Even assuming the developers can perfectly understand the bug report, the actual reproduction can be challenging since apps can have complex event-driven and GUI (Graphic User Interface)-related behaviors, and there could be many GUI-based actions required to reproduce the crash.
“To improve 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,” Zhao said.
Previously, there was a gap between bug reports written by users and bugs reproduced by developers, according to Zhao. DeCroid+ can automatically ‘read and understand’ the bug report and reproduce the step-to-reproduce sentences in it, and can trigger the bug described in the bug report. ReCDroid+ reproduces the bug by using a combination of natural language process (NLP), deep learning, and dynamic GUI exploration to synthesize event sequences, Zhao said.
In the study, researchers utilized ReCDroid+ to evaluate 66 original bug reports from 37 Android apps. They were able to successfully reproduce 42 crashes, for a 63.6 percent success rate. A user study involving 12 participants also was conducted, and demonstrated the value of ReCDroid+ when reproducing crash bug reports.
In terms of what was learned from the research, Zhao said ReCDroid+ offers a number of benefits for app developers. First, it allows them to rapidly identify and resolve issues. It can also save human effort in that developers can often work and let ReCDroid+ continue to reproduce the bug report.
“Every time a new bug report is submitted to a bug tracking system, ReCDroid+ can automatically detect it and launch itself to reproduce the bug report,” he said. “When the developer realizes this new bug report, the bug may already be reproduced by ReCDroid+.”
Additionally, some bug reports are not easy to be reproduced by a human developer, Zhao said. ReCDRoid+ can reproduce it, because it can consistently work and never take a rest.
Zhao and others who were involved in this study are already thinking about how they can further their research.
“Now ReCDroid+ only supports the unique type of bug that is crash. In the future, we are planning to support multiple types of bugs,” Zhao noted.
The UCM researcher appreciated the collaborative effort that went into producing the article, and acknowledged it took a lot of coordination among individuals spread across the globe. There was no lack of interest among those wanting to get involved.
“Another reason why ReCDroid+ attracts so many researchers to join us is automated bug report producing was a well-known gap that is needed to be filled in software engineering,” he said. “Yes, it is not easy to coordinate with so many researchers from different countries and different time zones. Sometimes, we needed to have meetings and discuss progress in the early morning in one country and late at night in another country.”
Also contributing to the research project/paper were educators from China institutions, Ting Su, East China Normal University; Wei Zheng, Northwestern Polytechnical University; Xiaoxue Wu, Yangzhou University; Singapore educator Yang Liu, Nanyang Technological University; and U.S. educators, Ramakanth Kavuluru, University of Kentucky; William G.H. Halfond, University of Southern California; and Tingting Yu, University of Cincinnati.