代码质量评估的新方法

我们如何对写出的代码进行质量评估?在这一块的方法、标准一直都比较模糊。传统意义上,我们一直使用CMMI中bug率(千行代码缺陷率=bug数量/1K行代码)对软件代码质量进行评估。这种方法也被广泛的应用到6西格玛质量管理方法里。

千行代码缺陷率(bug率):

CMM1级    11.95‰

CMM2级    5.52‰

CMM3级    2.39‰

CMM4级    0.92‰

CMM5级    0.32‰

企业通过CMMI级别的资质认证有助于招投标,但是这种评判标准对于我们实际项目参与者则显得遥不可及,因为在快速迭代中随着成本与投入的不匹配、开发者个人编程风格及技术实力不一样、再结合实际的项目关注点,用这种方法显得苍白无力。

在实际的项目经验中,我们一直在寻找新的方法来更有效的代码质量进行评估,这即能评估一个项目组的代码开发实力,也能细分到对一个开发人员的绩效进行评估。

通过自己经历的几个项目,我觉得可以对目前的千行代码缺陷率​的计算公式进行改良,改动如下:

代码缺陷率 = (bug数/功能点个数)*​(1/每个功能点权重)

​比如项目组A负责开发的代码实现了50个功能点,找到的bug数是100个,每个功能点所对应的权重为w1,w2,w3.....w50, 代码缺陷率 = (100/50)*(1/(w1*w2*w3*..w50).

​大家可能会对功能点权重有疑问,什么叫做功能点权重?

在这里我对功能点权重的定义是:功能代码在代码编译、代码转移、代码修改及代码运行这四个纬度上值的总和。

每个纬度的值要考虑的因素为:

基于自己的项目每个纬度的评值因素、纬度单位值可以再定义。比如,A项目每个纬度的总值为5,一个功能点如果满足一个纬度的所有因素就是5,不满足就相应的扣分,所扣分数大小直接取决于对项目的影响大小,比如“可评估”-功能实现难易对分配任务影响大,那么可以直接分配3分,非常难的实现给3分,很简单的给0.5,变动的单位值可以项目组讨论决定。一个功能点的权重就是每个纬度评值后的总和。

基于前面的铺垫,举个例子来讲实际运用。

一个项目组在过去的6个月中完成了一个平台开发的2个模块,30个功能特性,发现了110个bug,那么其代码缺陷率(代码质量指标)为 = (110/30)*( 1/∏f(1)...f(50))

​每个功能权重可以在创建story(如果是敏捷开发),或是制作WBS(工作任务分解)时通过项目组讨论、评估获得。

使用这种方法不管是对项目组的代码开发能力、开发者能力等都能进行一个有效、可见、合理的评判。​走我的实践来看,这是软件质量管理一个好的方法。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值