As part of the process of resolving issues submitted by users via bug reports, Android developers attempt to reproduce and observe the failures described by the bug report. Due to the low-quality of bug reports and the complexity of modern apps, the reproduction process is non-trivial and time-consuming. Therefore, automatic approaches that can help reproduce Android bug reports are in great need. However, current approaches to help developers automatically reproduce bug reports are only able to handle limited forms of natural language text and struggle to successfully reproduce failures for which the initial bug report had missing or imprecise steps. In this paper, we introduce a new fully automated Android bug report reproduction approach that addresses these limitations. Our approach accomplishes this by leveraging natural language process techniques to more holistically and accurately analyze the natural language in Android bug reports and designing new techniques, based on reinforcement learning, to guide the search for successful reproducing steps. We conducted an empirical evaluation of our approach on 77 real world bug reports. Our approach achieved 67% precision and 77% recall in accurately extracting reproduction steps from bug reports, and reproduced 74% of the bug reports, significantly outperforming state of the art techniques.
翻译:作为解决用户通过错误报告提交问题过程的一部分,Android 开发商试图复制和观察错误报告描述的失败。由于错误报告质量低,现代应用程序复杂,因此复制过程非三重和耗时。因此,帮助复制Android 错误报告的自动方法非常需要。然而,目前帮助开发商自动复制错误报告的方法只能处理有限的自然语言文本,并努力复制最初错误报告缺失或不精确步骤的失败。在本文中,我们采用了新的全自动的Android错误报告复制方法,以克服这些限制。我们的方法是通过利用自然语言处理技术,更全面和准确地分析安卓错误报告中的自然语言,并根据强化学习设计新的技术,指导对成功复制步骤的搜索。我们对77份真实世界错误报告的做法进行了经验评估。我们的方法达到了67%的精确度,77%的回忆是准确从错误报告提取复制步骤,74%的错误报告复制了74%,并复制了74%的错误报告,大大超过艺术技术的状态。