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 necessary for achieving greater adoption of program repair. Towards this goal, we survey 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 on developer preferences, we quantitatively evaluate existing test-suite based program repair tools. We find that they 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. Moreover, while additional developer inputs are valuable for generating or ranking patches, developers do not seem to be interested in a significant human-in-the-loop interaction.
翻译:自动程序修理是一种新兴技术,它寻求利用学习、搜索和语义分析自动纠正错误和弱点。信任自动生成的补丁对于实现更多采用程序修理是必要的。为了实现这一目标,我们调查了100多名软件从业人员,以了解对自动生成的补丁的信任程度。根据开发者偏好调查的反馈,我们量化地评估了现有基于测试的适合程序修理工具。我们发现,它们无法在10级最高排名和1小时可接受的时间内产生高质量的补丁。我们定性研究的开发者反馈以及现有修理工具定量检查的观察表明,在可操作的洞察中发现,推动方案修理研究。具体地说,我们指出,在可接受的时限内进行修理在很大程度上取决于利用一个具有丰富搜索空间的抽象搜索空间。此外,虽然额外的开发者投入对于产生或排列补丁很有价值,但开发者似乎对重大的人类在现场的互动并不感兴趣。