利用 Stack Overflow 评论-编辑对推荐代码维护变更
软件工程
2021-01-27 v3
摘要
代码维护数据集通常包含代码改进或修复前后的版本。这类数据集对于与代码维护相关的软件工程支持工具至关重要,例如程序修复、代码推荐系统或应用程序编程接口(API)误用检测。当前大多数数据集是通过挖掘版本控制系统中的提交历史或问题跟踪系统中的问题构建的。在本文中,我们探讨 Stack Overflow 是否可作为一个额外的数据源。Stack Overflow 上的评论为开发者提供了一种有效方式,用以指出已有答案中的问题、替代方案或陷阱。本文挖掘了 Stack Overflow 中的评论-编辑对,并研究其潜在用途。这些对具有额外优势,即包含对为何需要变更的具体描述,并且可能涉及更少纠缠的变更。我们首先设计了一种提取相关评论-编辑对的技术,然后研究这些对的性质。我们发现大多数评论-编辑对并非纠缠不清,但所研究的对中仅有 27% 对上述应用具有潜在价值。我们对挖掘出的对的类型进行分类,发现有用对比例最高的类别来自修正、过时、缺陷和扩展。为证明所提取对的有效性,我们在 GitHub 上提交了 15 个拉取请求,其中 10 个已被 Apache Beam 和 nltk 等广泛使用的仓库接受。我们的工作是首次对 Stack Overflow 评论-编辑对进行研究,并为未来此方向的工作打开了大门。基于我们的发现和观察,我们提供了关于如何潜在地识别更大规模有用评论-编辑对的具体建议,这也可通过我们共享的数据来促进。
引用
@article{arxiv.2004.08378,
title = {On Using Stack Overflow Comment-Edit Pairs to recommend code maintenance changes},
author = {Henry Tang and Sarah Nadi},
journal= {arXiv preprint arXiv:2004.08378},
year = {2021}
}
备注
34 pages, 9 tables, 2 figures, submitted to EMSE