缺陷引入分析技术相关之SZZ算法


此算法来源于2005年由瑞典德隆大学的一篇论文《When Do Changes Induce Fixes》,作者分别名为Jacek Sliwerski,Thomas Zimmermann,Andreas Zeller。显然算法名取自他们姓的首字母。

对算法来说,数据是不可缺少的一环,机器学习名宿吴恩达就认为80%的数据加上20%的模型是一个更好的机器学习,可见数据对于算法工作的重要性。

而SZZ的框架也主要是有四个步骤:

识别缺陷修复的变更,识别被修复的缺陷,识别可能引入缺陷的变更,以及最终的噪音消除。

目前MIT License有关于该算法的开源实现。

算法在github中的实现流程:

识别缺陷修复变更:

这里可以在github中的issue中通过关键字进行搜索

is:issue is:closed label:"Type: Bug"  -label:"Resolution: Duplicate" -label:"Type: Needs Investigation" -label:"Status: Unconfirmed" -label:"Resolution: Needs More Information" 

识别被修复的缺陷:

找到fixed issue,找到相关代码提交的pull request。记住提交的文件名以及行号。

识别可能引入缺陷的变更:

通过git log找到之前提交信息的上一条提交,切换版本,查看之前的文件名是通过哪个版本引入的,之后查看相应版本的提交。


文章作者: RickDamon
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 RickDamon !
  目录