一句话:提出通过学习软件变更所带来的影响,实现跨项目、跨语言的缺陷定位、修复与变更效果预测。
软件开发需要反复迭代,其间调试、测试、缺陷定位与修复等任务虽已有自动化工具,但结果的整合仍依赖大量人工,且自动程序修复常依赖人工设计的修复模板,难以泛化到复杂项目。本文提出一条新的研究路线:学习软件变更与其影响之间的关联,从而在不局限于特定项目或编程语言的前提下定位并修复缺陷,并进一步预测变更会产生什么效果。作者在 Python 软件变更及其影响上进行了初步实验,训练出的模型能够生成 80% 的正确补丁,预测变更影响的准确率达到 81%。这些结果表明,学习软件变更的影响对改进软件开发流程具有潜力。
Software development requires several stages of code iterations, each one requiring debugging, testing, localizing and fixing bugs. While several tools have been developed to automate one of those tasks individually, integrating and combining those results still requires a huge manual effort from software developers. Additionally, many approaches, e.g., in Automated Program Repair, are based on specifically curated fix templates that fail to generalize to most complex software projects. To address those challenges, I propose a new research agenda to learn the effects of software changes in order to localize and fix bugs without being limited to a specific project or a specific programming language. Additionally, my approach can be used to predict the effects of software changes. My preliminary results indicate the feasibility of successfully training a model on Python software changes and their effects, that is capable of producing 80% of correct patches and predicting the effect of a change with an accuracy of 81%. My results highlight the potential of learning the effects of software changes for better software development.
DOI 原文 ·
@inproceedings{paperbot8500,
title = {Learning the Effects of Software Changes},
author = {Laura Plein},
booktitle = {ISSTA},
year = {2024},
doi = {10.1145/3650212.3685550}
}