Automatically Reproducing Android Bug Reports using Natural Language Processing and Reinforcement Learning

Automatically Reproducing Android Bug Reports using Natural Language Processing and Reinforcement Learning
复制标题

DOI:
10.1145/3597926.3598066
复制
发表时间:
2023-01
期刊:
Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis
影响因子:
--
通讯作者:
Zhaoxu Zhang;Robert Winn;Yu Zhao;Tingting Yu;William G. J. Halfond
Zhaoxu Zhang;Robert Winn;Yu Zhao;Tingting Yu;William G. J. Halfond
中科院分区:
其他
文献类型:
--
作者:
Zhaoxu Zhang;Robert Winn;Yu Zhao;Tingting Yu;William G. J. Halfond

文献摘要

相似文献

作为解决用户通过错误报告提交的问题的一部分,Android开发人员试图复制和观察错误报告所描述的崩溃。由于错误报告的质量低和现代应用程序的复杂性,因此繁殖过程是无聊且耗时的。因此,可以有助于复制Android错误报告的自动方法非常需要。但是,当前的方法来帮助开发人员自动复制错误报告只能处理有限的自然语言文本形式,并难以成功地复制最初的错误报告缺少或不精确的步骤的崩溃。在本文中,我们引入了一种新的全自动方法,以从Android错误报告中复制崩溃,以解决这些限制。我们的方法通过利用自然语言处理技术来更整体,准确地分析Android Bug报告中的自然语言,并根据强化学习设计新技术来实现这一目标,以指导寻找成功重现步骤的搜索。我们对77个现实世界错误报告的方法进行了经验评估。我们的方法在准确地从错误报告中提取复制步骤,再现了74%的错误报告中的74%的繁殖步骤,并重现了包含缺失步骤的错误报告中的64%,从而获得了67%的精确度和77%的召回。
As part of the process of resolving issues submitted by users via bug reports, Android developers attempt to reproduce and observe the crashes described by the bug reports. 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 crashes for which the initial bug report had missing or imprecise steps. In this paper, we introduce a new fully automated approach to reproduce crashes from Android bug reports that addresses these limitations. Our approach accomplishes this by leveraging natural language processing 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, reproduced 74% of the total bug reports, and reproduced 64% of the bug reports that contained missing steps, significantly outperforming state of the art techniques.