Automated program repair is an emerging technology that seeks to automatically rectify bugs and vulnerabilities using learning, search, and semantic analysis. Trust in automatically generated patches is an important matter to drive greater adoption of program repair. Towards this goal, we conduct a survey with more than 100 software practitioners to understand the artifacts and setups needed to enhance trust in automatically generated patches. Based on the feedback from the survey, we quantitatively evaluate existing test-suite based program repair tools. We find that existing test-suite based repair tools cannot produce high-quality patches within a top-10 ranking and an acceptable time period of 1 hour. The developer feedback from our qualitative study and the observations from our quantitative examination of existing repair tools point to actionable insights to drive program repair research. Specifically, we note that producing repairs within an acceptable time-bound is very much dependent on leveraging an abstract search space representation of a rich enough search space. At the same time, while additional developer inputs are valuable to generate or rank patches, developers seem not to desire a significant human-in-the-loop interaction.
翻译:自动程序修理是一种新兴技术,它寻求利用学习、搜索和语义分析自动纠正错误和弱点。信任自动生成的补丁是促使更多采用程序修理的一个重要事项。为了实现这一目标,我们与100多名软件从业人员进行了一项调查,以了解对自动生成的补丁的信任所需的工艺品和设置。根据调查的反馈,我们从数量上评估现有的基于测试的适合程序的程序修理工具。我们发现,现有基于测试的修理工具无法在10级排名和可接受的1小时期限内产生高质量的补丁。我们定性研究的开发者的反馈和对现有修理工具的定量检查的观察表明,推动方案修理研究是可行的。具体地说,我们指出,在可接受的时间范围内进行修理在很大程度上取决于利用一个具有丰富搜索空间的抽象搜索空间代表。与此同时,虽然额外的开发者投入对于产生或排列补丁很有价值,但开发者似乎并不希望有相当大的人际互动。