On the Use of Commit Messages for Corrective Software Maintenance: A Systematic Mapping Study
本文通过对 2004 年至 2025 年 97 项研究的系统性映射分析,揭示了提交消息在纠正性软件维护(特别是缺陷分析与修复)中的关键作用、常用方法(如仓库挖掘与 NLP/AI)及主要发现,同时指出当前研究在自动程序修复等主题上的不足以及提交消息本身信息缺失的问题。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
这篇论文就像是一次对软件世界“日记本”的大普查。
想象一下,软件开发就像是在建造一座巨大的、不断扩建的摩天大楼。在这个过程中,工人们(程序员)每天都在往大楼里添砖加瓦,或者修补裂缝。
1. 什么是“提交信息”(Commit Messages)?
在这个比喻中,“提交信息”就是工人们每次干活后留下的“施工日志”或“便签条”。
- 当你修好一个漏水的水管,你不仅换了零件,还在墙上贴了张纸条:“周二下午,因为水管老化漏水,我换了新的 PVC 管。”
- 在软件里,这张纸条就是“提交信息”。它告诉后来的人:“我做了什么?为什么要这么做?”
2. 这篇论文在研究什么?
作者 Syful Islam 和 Stefano Zacchiroli 就像两个图书管理员,他们收集了从 2004 年到 2025 年(是的,论文设定在 2026 年发表,所以数据截止到 2025 年 5 月)的97 篇关于“如何利用这些施工日志来修好大楼”的研究论文。
他们想搞清楚:
- 大家都在什么时候、什么地方研究这个?
- 大家主要想解决什么问题?
- 除了看“便签条”,大家还看了什么别的材料?
- 这些研究是怎么做的?
- 最终得出了什么结论?
3. 他们发现了什么?(核心发现)
📈 趋势:大家越来越爱看“便签”了
就像现在大家都习惯在社交媒体上发动态一样,研究人员对“施工日志”的兴趣在过去几年(特别是 2022-2023 年)突然爆发式增长。大家意识到,读懂这些日志是修好软件的关键。
🎯 目标:主要为了“找 Bug"和“修 Bug"
研究人员看这些日志,主要是为了做两件事:
- 找麻烦(Bug 分析):就像侦探通过现场痕迹(日志)推断哪里出了问题。
- 确认修复(Bug 修复识别):确认哪次施工真的把问题解决了。
有趣的是,虽然大家很关注修 Bug,但很少有人研究如何用这些日志来自动写代码(自动修复程序)或者专门研究安全漏洞。这就像大家都在研究怎么灭火,但很少人研究怎么自动安装喷淋系统,或者怎么专门防纵火犯。
🧩 工具:日志不能单独看,要“组合拳”
研究发现,光看“便签条”(提交信息)是不够的,就像光听别人描述火灾现场不够,还得看现场照片。
- 最完美的组合 = 便签条(提交信息) + 现场照片(代码修改/Diff)。
- 大多数研究都是把这两样东西放在一起分析,再配合上人工智能(AI) 和 自然语言处理(NLP,让电脑读懂人话) 的技术。
- 这就好比:AI 侦探拿着“便签条”和“现场照片”,能比人类更快地找出哪里着火了。
👥 主角:程序员是绝对 C 位
在所有被研究的人中,程序员(开发者) 是主角。因为是他们写代码、写日志。
- 维护者(管大楼的人)和研究者(观察大楼的人)虽然也在场,但大家主要关注的是程序员怎么干活。
⚠️ 问题:日志写得太烂了!
这是论文最扎心的发现:虽然日志很重要,但大家写得太敷衍了!
- 很多日志只写了“修复了问题”,却没写*“什么问题”或者“为什么*出问题”。
- 这就像工人只贴了张纸条说“修好了”,却没说是水管还是电线。
- 后果:如果日志写得太烂,AI 就学不会,后来的人(维护者)也看不懂,导致修软件变得非常困难,甚至可能修错。
4. 他们给了什么建议?
为了让未来的软件大楼更稳固,作者给三类人提了建议:
给程序员(写日志的人):
- 别偷懒:写日志时要像写日记一样认真。要说清楚“做了什么”和“为什么做”。
- 用对词:如果是修安全漏洞,一定要写上“安全”、“漏洞”或者具体的编号(比如 CVE 号),别藏着掖着。
- 格式要美:把日志分好段(标题、正文),让机器和人都能一眼看懂。
给维护者(管项目的人):
- 立规矩:在项目开始时,就告诉大家怎么写日志。可以发一些“优秀日志”的范文。
- 多检查:特别是新来的员工,要仔细检查他们的日志写得好不好,不好就退回去重写。
给研究者(搞学术的人):
- 定标准:制定统一的日志模板,让机器更容易处理。
- 多结合:不要光看日志,要把日志和测试数据、问题报告结合起来看,这样更准。
- 关注情绪:甚至可以研究一下日志里有没有“抱怨”或“开心”的情绪,这能反映团队的合作状态。
总结
这篇论文告诉我们:在软件世界里,代码是身体,而“提交信息”(Commit Messages)是灵魂。
如果灵魂(日志)写得含糊不清,身体(软件)就会生病(Bug),而且很难治好。虽然现在的技术(AI)很强大,能帮我们分析这些日志,但如果我们人类自己不好好写日志,再聪明的 AI 也帮不了我们。
一句话总结:写好“施工日志”,是修好软件大楼最便宜、也最重要的一步。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。