By Jeff Murphy,
October 28, 2021
![Photo of Dr. Yu Zhao Photo of Dr. Yy Zhao](/news/university-news/posts/images/dr-zhao-web.jpg)
Yu Zhao, Ph.D., assistant professor of software engineering at the University of Central
Missouri, has collaborated with researchers across the globe to help mobile phone
app developers resolve crashes due to software bugs.
WARRENSBURG, MO 鈥 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 欧美视频 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,
鈥淩eCDroid+: 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 鈥淎CM Transactions on Software Engineering
and Methodology (TOSEM).鈥
鈥淭he 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.
鈥淭o 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 鈥榬ead 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.
鈥淓very 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. 鈥淲hen
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.
鈥淣ow 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.
鈥淎nother 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. 鈥淵es, 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.