国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:王敏,潘兴禄,邹艳珍,谢冰
单位:王敏,高可信软件技术教育部重点实验室(北京大学), 北京 100871;北京大学 计算机学院, 北京 10087111,潘兴禄,高可信软件技术教育部重点实验室(北京大学), 北京 100871;北京大学 计算机学院, 北京 10087102,邹艳珍,高可信软件技术教育部重点实验室(北京大学), 北京 100871;北京大学 计算机学院, 北京 10087103,谢冰,高可信软件技术教育部重点实验室(北京大学), 北京 100871;北京大学 计算机学院, 北京 10087104
关键词:代码评审;历史溯源;频繁项集挖掘;相关代码变更
基金:国家自然科学基金(61972006)
代码审查是现代软件分布式并行开发过程中的重要机制. 在代码评审时, 帮助代码评审者快速查看某一段源代码的演化过程, 可以让评审者快速理解此段代码变更的原因和必要性, 从而有效提升代码评审的效率与质量. 现有工作虽然提供了一些类似的代码提交历史回溯方法及对应工具, 但缺乏从历史数据中进一步提取辅助代码评审相关辅助信息的能力. 为此, 提出一个面向代码评审的细粒度代码变更溯源方法C2Tracker. 给定一段方法(函数)级别的细粒度代码变更, C2Tracker能够自动追溯到历史开发过程中修改该段代码相关的代码提交, 并在此基础上进一步挖掘其中与该段代码频繁共现修改的代码元素以及相关的变更片段, 辅助代码评审者对当前代码变更的理解与决策. 在10个著名开源项目的数据集下进行实验验证. 实验结果表明, C2Tracker在追溯历史提交的准确率上达到97%, 在挖掘频繁共现代码元素任务上的准确率达到95%, 在追溯相关代码变更片段任务上的准确率达到97%; 相比现有评审方式, C2Tracker在具体案例的代码评审效率和质量上均有较大提升, 在绝大多数的代码评审案例中被评审者认为能提供“明显帮助”或“很大帮助”.
来源:2023年第10期
《软件学报》期刊编辑部