注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

网易杭州 QA Team

务实 专注 分享 做有态度的QA

 
 
 
 
 

日志

 
 

代码量计算的一些总结  

来自杨霞如   2014-03-13 13:37:42|  分类: 质量保障平台 |举报 |字号 订阅

  下载LOFTER 我的照片书  |
QMS需求收集过程中,不少开发负责人都表示希望得到项目中的代码量,以及每个开发人员的代码量,作为工作量的参考,同时也可以用来计算千行代码BUG率,千行代码Issue率等质量指标,最近作了一些调研,总结一下。

总体思路
QMS页面上有一个代码量计算的Tab键,管理员或者报告负责人可以点击Tab键添加代码量情况。添加后会触发一个Jenkins任务的构建(下图步骤1),该构建主要工作是从SCM中获取源代码(2),利用命令或者工具计算出项目代码量和每个开发人员的代码量,把这些数据存入到数据库中(3)(4)(5)QMS获知构建完成后,可以到数据库中取得代码量的具体信息(6)(7),从而得到代码量的相关数据。
代码量计算的一些总结 - 网易杭州QA - 网易杭州 QA Team

项目组参与过程

1、 QA人员在Jenkins上创建一个用于代码量计算的任务,选择使用SVNGIT获取源码。

2、 QA人员在配置该任务时选择测试开发组写的代码量统计插件,做相应配置(如排除某些文件,路径等),保存即可。

3、 报告负责人在QMS中添加代码量计算的结果图,填写上述Jenkins任务的名称或者URL,该计算的起止时间。

测试开发组参与过程

1、 测试开发组会提供代码量统计插件,提供对项目的自定义配置的功能,完成代码量的计算,持久化,以及界面展示

2、 测试开发组会提供QMS上对代码量模块的支持,触发Jenkins任务,获取Jenkins任务构建结果以及展示数据库中代码量。

具体计算

SLOCCount工具

把源代码从SVNGIT仓库的代码检出出来,使用开源工具计算项目的代码量,SLOCCount是其中的一个工具。

优点

1SLOCCount工具可以分别计算不同类型/语言的代码量

2JenkinsSLOCCount插件,可以在Jenkins有一些源码图表的显示 https://wiki.jenkins-ci.org/display/JENKINS/SLOCCount+Plugin

缺点

1)无法对每个开发人员的代码量做计算

2计算得到的代码量包含空行和注释;

StatSVN工具

StatSVN工具是一个开源的小工具,可以对SVN仓库的代码做一些代码量以及其他信息的统计。

优点

1)使用StatSVN工具可以得到每个开发人员的代码量

2)组里已有StatSVN的工作经验

缺点

1计算得到的代码量包含空行和注释;

2该工具最后更新在2010 

3) 只计算增加和修改的行数,没有计算减少的行数

gitinspector工具

gitnspector 工具是一个用python写的统计git代码提交情况并生成报告的工具。

优点

1)使用gitnspector工具可以得到每个开发人员的代码量

2)组里已有gitnspector的工作经验,孙丹丹有对这个工具的分享http://qa.blog.163.com/blog/static/1901470022014245433472/

3gitnspector报表做得好

4gitnspector是今年1月份发布的

缺点

1)计算得到的代码量包含空行和注释;

使用命令计算代码量

把源代码从SVNGIT仓库的代码检出出来,写命令对SVNGIT的代码分别做计算,在网上找到一些命令进行修正后比较好的有下面一些。使用命令的优缺点是:

优点

1)使用命令可以得到每个开发人员的代码量

2)命令可修正去除空行

缺点

1)  计算得到的代码量包含注释;

2)  命令在正确性方面还要进一步验证

SVN命令

svn ls -R | egrep -v "branches|tags|.svn|**/*.class|**/*.png|**/*.jar|\/$"  |  xargs svn blame | awk '{if($3 !="") print $2}'|sort | uniq –c

GIT命令一

git ls-files | xargs -n1 -d'\n' -i git blame {} | perl -n -e '/\s\((.*?)\s[0-9]{4}/ && print "$1\n"' | sort -f | uniq -c -w3 | sort –r

GIT命令二

1)先使用以下命令可以得到这个项目的所有开发者

 git shortlog --numbered --email --summary

2)对每个开发者分别统计代码量,该值与git labGraphs中得到的值很相近;

git log --author="xxxxxx" --pretty=tformat: --numstat | awk '{add += $1; subs +=$2; loc += $1-$2} END {printf " ++: %s --: %s total: %s\n", add, subs, loc'}

风险

1、  SVN仓库里的代码,从分支合并到主干的时候,开发人员的代码会变成合并者的代码,这会导致代码计算不准确,对使用SVN的项目来说是一个很大的问题。

2、  代码量只计算提交的代码量,不能区分真正有效的代码量,比如有些代码是自动生成的,提交到仓库中也会算上。

3、  目前用命令测试的项目都是测试组里的项目,代码量不大,提交次数不多。对于产品的项目来说,如果数量巨大且递交次数频繁,不知是否有性能问题

  评论这张
 
阅读(2327)| 评论(8)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016