Software bugs are common and correcting them accounts for a significant part of costs in the software development and maintenance process. This calls for automatic techniques to deal with them. One promising direction towards this goal is gaining repair knowledge from historical bug fixing examples. Retrieving insights from software development history is particularly appealing with the constant progress of machine learning paradigms and skyrocketing `big' bug fixing data generated through Continuous Integration (CI). In this paper, we present R-Hero, a novel software repair bot that applies continual learning to acquire bug fixing strategies from continuous streams of source code changes, implemented for the single development platform Github/Travis CI. We describe R-Hero, our novel system for learning how to fix bugs based on continual training, and we uncover initial successes as well as novel research challenges for the community.
翻译:软件错误是司空见惯的,纠正错误是软件开发和维护过程中成本的很大一部分。 这需要自动处理技术。 实现这一目标的一个有希望的方向是从历史错误修复实例中获取修复知识。 从软件开发史中获取洞见特别吸引的是机器学习模式的不断进步和不断整合产生的“大”错误修复数据。 在本文中,我们展示了R-Hero, 这是一种新型软件修复机器人,它应用不断学习,从源代码变化的连续流中获取错误修复策略,为单一开发平台Github/Travis CI所实施。 我们描述了R-Hero,我们的新颖的系统,通过持续培训学习如何纠正错误,我们发现了最初的成功以及社区面临的新的研究挑战。