多数投票SZZ:更智能的软件缺陷引入提交识别方法

大阪大学、九州大学和维多利亚大学的研究人员提出了一种名为多数投票 SZZ(MV-SZZ)的新方法,用于更精确地识别引入缺陷的软件提交。该方法将细致的代码变更追踪与“多数投票”机制结合,在降低误报率的同时,相比现有技术展现出更优的整体性能。相关成果已发表在《IEEE 软件工程汇刊》上。

对于开发者而言,在经历了成千上万次代码修改之后,想要准确找到导致缺陷的那几行代码往往十分棘手,也极具挫败感。

软件缺陷几乎无法完全避免,修复这些问题往往需要投入大量时间和成本,尤其是在贡献者众多、代码规模庞大的项目中。为此,业界广泛使用 SZZ 方法:通过回溯代码历史,从缺陷修复提交中推断出可能引入问题的变更。然而,传统 SZZ 方法并不完美。

第一作者近藤稲世指出:“原始 SZZ 方法的思路是整体地看待每一行代码,因此容易忽略细微的编辑,或者把与缺陷无关的变更误认为是问题根源。”

为提升精度,一些 SZZ 变体尝试将代码行拆分为更小的单元进行分析,类似于不再只看整句,而是拆解到单词级别。这种细粒度方法有助于发现隐藏的缺陷来源,但也可能因为标记了过多候选变更而增加噪声,导致结果难以判读。

MV-SZZ 的核心思路,是先对这些更小的代码片段进行分组,然后通过“多数投票”机制,选出最有可能真正引入缺陷的变更,从而在候选集合中做出更可靠的判断。

资深作者日后义树解释道:“MV-SZZ 在粗粒度和细粒度之间找到了一个微妙的平衡。通过结合更精细的变更追踪和多数投票机制,我们显著降低了误报率。”

研究团队将 MV-SZZ 与六种现有方法进行了系统对比,结果显示 MV-SZZ 在整体表现上最为突出:既能更准确地定位缺陷的真实来源,又能有效减少错误匹配的情况。

“即便是看似不大的准确性提升,也能为开发者节省大量时间和精力。”近藤补充说,“我们的研究结果表明,多数投票是一种简单却行之有效的缺陷追踪改进思路。”

通过简化缺陷根源定位流程,这项研究有望帮助开发团队构建更可靠、成本更可控的软件系统,从而带来运行更顺畅的应用、更安全的基础设施,并在实际使用中减少用户遭遇的各种令人头疼的故障。


分享:


发表评论

登录后才可评论。 去登录