千行代码出错率

公司外审时需要测试报告提供差错率,由于本人做测试也不是很久,所以不知道差错率是什么,于是百度了一下,所谓的差错率即系统千行代码的出错率,计算方式为:bug数/代码行数*1000,于是结果就出来了,总代吗行数约30万,bug数约63,差错率等于0.21‰ 。好,如此上报,没有后续。。。之后一直这么计算。。。
某日闲着无事看到了报告中出错率,就好奇这个值究竟代表何意,心想着今天一定要把这个给了解透,于是又进行了百度学习,觉得有意思的地方拿出来跟大家分享下:

所谓的千行代码出错率,CMMI级别中做出了相关的指标规定:
千行代码缺陷率(bug率):
CMM1级 11.95‰

CMM2级 5.52‰

CMM3级 2.39‰

CMM4级 0.92‰

CMM5级 0.32‰
截止2012年国内通过CMMI5的企业有东软、中国软件、新宇科技、中科院软件研究所、软通动力、亚信科技、华为印度研究所、华信、惠普中国软件研究中心、用友、埃森哲。
看到以上信息是我诧异了,我计算出来的我们公司的代码出错率0.21‰,已达CMMI5标准,显然我们公司还未到达这个实力。于是分析了下原因:原本计算方式中代码行数统计不合理,千行代码出错率中的代码行数应该是项目开发周期中程序员编写的不包含第三方插件程序部分内容。
千行代码指测试阶段发现的bug出错率,所以它一定程度上反映了开发产出物的质量问题(可靠性),所以我们可以看出,出错率低的公司他们的产品可靠性相对较高。当然也有人会说,那也只是说明了测试前的产品质量,通过测试,测试结束后的质量就不是同一回事了。的确这么说没什么错,但是我们想想后期这个测试成本呢,周期呢?很明显,高出错率的产品所产生的投入远远超出预期,这个在我们公司,我是深有体会!
那么如何提高所谓的出错率呢?不让程序员写错误的代码吗?肯定不是咯。。。同样摘取网上一段数据:
Raythoon公司……将其成熟度从CMM1提升到CMM3……所开发的产品在成熟度提升前每千行错误率为0.31,提高后仅为0.03。(来源:CMU/SEI报告)
分析如下:对1000行程序而言:
1.经过PSP训练的工程师平均缺陷引入率为50/KLOC,所以编码后为50个缺陷;
2.编译效益为50%,编译后为50-25=25个缺陷;
3.自查效益为80%,自查后为25-20=5个缺陷;
4.审查效益为60%,审查后为5-3=2个缺陷;
5.单元测试效益为50%,单元测试后为2-1=1个缺陷;
剩下的测试降到0.03/KLOC
由以上数据可以得出结论,软件系统的质量仅仅靠测试时远远不够的,更多的问题需要在前期审查、自检等,这也是提高项目
周期的最有效的方式。这就是为什么高可靠性的软件公司,他们的软件管理过程一定是很规范有序的,好的合理的管理方式有利于提升软件质量、缩短项目周期,提高生产率。这个在我们公司,我也是深有体会!
通过以上分析,相信大家对出错率有了一定的理解了吧。当然有人这么质疑:
可以假设一下场景A、B同时开发一个系统的两个模块,其中A负责的模块从功能上稍微复杂
点(分工时完全保证两人工作量相同几乎是不可能的),结果如下:
A - 3000行代码实现功能 bug数 3
B - 洋洋洒洒9000行 bug数 9
开始评估,A 千行BUG数为 1, B千行BUG数 1
AB代码质量相同?
以上问题,首先我不明白的是为什么要说B程序洋洋洒洒呢,咱又不是写作文,难道还添油加醋不成?倒是可以说明B程序员的资质浅,充其量多写了几行无用代码而已吧。怎么能说他的产品质量就低呢。。并且复杂的功能怎么才写的3000行,差这么多。
千行代码的出错率反映的是软件的可靠性,可靠性只是软件质量9大模型之一,并不能完全反映软件质量。我们在做出错率计算的时候,还是拿真实的数据说话,反映真实情况,不同公司不同人员产出的程序出错率都是不同的,没有一个绝对的标准。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页