作为测试工程师,除了写用例,测试提交bug,最后还需要总结版本质量,版本质量分几个维度来分析(这个在其他的文章中介绍),其中就包括千行bug率,那千行bug率该如何计算呢?
前提条件:
1.需要有开发源码的权限
2.配置了git的环境
步骤:
1.首先拉取开发的源码
2.cd进入到本地代码库地址
3.执行命令,也是最重要的
git log --no-merges --since=2018-10-01 --until=2018-12-31 --author="xiaoming|xiaohong" --pretty=tformat: --numstat | awk '{ add += $1 ; subs += $2 ; loc += $1 + $2 } END { printf "added lines: %s removed lines : %s total lines: %sn",add,subs,loc }'
其中 git log 是获取所有提交的历史记录
--no-merges //是去除该提交中merges的代码,因为开发人员有可能会merge其他分支的代码,此时应该去除
--since= --until= //是要统计修改记录的开始和结束时间,一般统计某个迭代的修改,就是迭代开始时间和结束时间
--author //是指修改代码的人 过滤多人时使用“|”分开
--pretty= // 控制显示的记录格式
--numstat 对增加和删除的行数进行统计 第一列显示的是增加的行数 第二列显示的是删除的行数
awk 是文本处理工具 对git log 筛选出的数据进行处理,$1表示第一列 $2表示第二列 ,有begin和end,BEGIN模式表示,在处理指定的文本之前,需要先执行BEGIN模式中指定的动作,END模式就是在处理完所有的指定的文本之后,需要指定的动作。