Behold, auto-completing Android bug reports – because you're not very thorough
People can't be bothered to recount crashes, so machines are here to help
Auto-completion systems that attempt to finish your sentences when typing text messages or search queries can be a mixed blessing. Often, they save time. But they can also get in the way when they make incorrect guesses about intended input.
In the context of software bug reporting, however, auto-completion – adding additional information to bug report filings – doesn't have much of a downside.
Computer boffins from the College of William and Mary in Williamsburg, Va., have found that auto-completion makes it easier to identify bugs in Android apps.
In a paper published in 2015 and just republished through Arxiv.org, computer science researchers Kevin Moran, Mario Linares-Vásquez, Carlos Bernal-Cárdenas, and Denys Poshyvanyk document how augmenting bug reports with additional data gleaned through static analysis, dynamic analysis, and auto-completion prompts can make the bugs in Android apps easier to reproduce and fix.
Software bugs cost the US economy somewhere between $22.2 to $59.5 billion annually, according to a 2002 study conducted by the Department of Commerce’s National Institute of Standards and Technology. And since then, software has become far more widespread. So there's ample incentive to produce higher quality code.
The paper, "Auto-completing Bug Reports for Android Applications," explains that bug tracking systems such as Bugzilla, Mantis, the Google Code Issue Tracker, the GitHub Issue Tracker, and products like JIRA depend mainly on bug descriptions written by people – unstructured natural language.
To clarify and augment bug report submissions, the researchers designed a system called FUSION to "enable the autocompletion of Android bug reports in order to provide more actionable information to developers."
FUSION applies automated static and dynamic analysis techniques to gather screenshots and other information about apps before they get released for testing. With this data informing its knowledge of app interaction paths, the system can present a web-based report generator that suggests bug reproduction steps by reconstructing app interface elements and presenting contextually appropriate actions.
In this way, UI element references and user interaction flows can be associated with text descriptions, thereby making it easier to reproduce the actions that lead to the error.
According to Kevin Moran, a Ph.D. student at the College of William and Mary and one of the paper's co-authors, the rate at which bugs reported through FUSION could not be reproduced was about 10%, compared to about 20% for standard bug tracking systems. "Of course further studies need to be done to quantify the advantage of such a system in an industrial setting, but our initial results are encouraging," he said in an email to The Register.
FUSION is a two part system. "First, the FUSION Data Collector, which is a program that runs on a desktop computer, connects to an attached Android device or emulator, and automatically executes a target app," Moran said. "During this automated execution, Input events (e.g. taps, long-touches) are sent to the app running on the Android device to try and explore as much of the app as possible, all the while, data about the screens and inputs is collected and stored in a database."
Then, the FUSION Reporting Interface uses this data to help users file better bug reports. "It does this by helping the user reconstruct the input 'steps' needed to recreate the bug, which is typically needed for a developer to fix it," said Moran. "Under certain circumstances, these steps can even be used to produce an automated script that can be used to 'replay' the bug."
An alpha version of FUSION is available online. Moran said he and his colleagues hope to open source more Android tools in the near future. ®