中文

ConE:面向大规模软件开发的并发编辑检测工具

软件工程 2022-01-07 v3 机器学习 编程语言

摘要

现代复杂软件系统正被持续扩展与调整。负责此工作的开发人员可能来自不同团队或组织,并分布在全球各地。这可能使得追踪其他开发人员的操作变得困难,从而导致多名开发人员并发编辑同一代码区域。这进而可能引发难以合并的变更甚至合并冲突、难以检测的逻辑缺陷、工作重复以及开发人员生产力浪费。为此,我们探究了在基于拉取请求的软件开发模型中该问题的普遍程度。我们研究了微软六个大型代码库半年来所做的变更,这些库每月至少创建 1,000 个拉取请求。我们发现,在不同拉取请求中被并发编辑的文件更可能引入缺陷。受这些发现驱动,我们设计、实现并部署了一项名为 ConE(并发编辑检测器)的服务,用于主动检测包含并发编辑的拉取请求,以助缓解其导致的问题。ConE 在设计上具备可扩展性,并在标记相关并发编辑文件的同时最小化误报。ConE 的关键概念包括检测拉取请求间的重叠范围,以及识别罕见并发编辑文件。为评估 ConE,我们报告了其在微软内部 234 个代码库上的实际部署情况。ConE 评估了 26,000 个拉取请求,并就冲突变更给出了 775 条建议,其中超过 70%(554 条)被评定为有用。通过对 48 名用户的访谈我们了解到,他们认为 ConE 将节省冲突解决时间与避免重复工作,且超过 90% 的用户打算每日继续使用该项服务。

关键词

引用

@article{arxiv.2101.06542,
  title  = {ConE: A Concurrent Edit Detection Tool for Large Scale Software Development},
  author = {Chandra Maddila and Nachiappan Nagappan and Christian Bird and Georgios Gousios and Arie van Deursen},
  journal= {arXiv preprint arXiv:2101.06542},
  year   = {2022}
}