可按照以下步骤来计算一个程序的缺陷密度: 1.累计开发过程中每个阶段发现的缺陷总数(D)。 2.统计程序中新开发的和修改的代码行数(N)。 3.计算每千行的缺陷数Dd=1000*D/N。例如,一个29.6万行的源程序总共有145个缺陷,则缺陷密度是: Dd=1000*145/296000=0.49 defects/KLOC。
在缺陷密度度量中存在的两个主要困难是:
1. 缺陷权值如何计算:是否将严重程度较轻的缺陷和较重的缺陷同等对待?
2. 代码行怎么统计:代码行的数量可能会因编程人员的技术水平和所使用的语言不同而不同。
3. 对于黑盒测试人员,可能不太容易获取到代码行数。
为了解决以上问题,缺陷密度计算方法可以改为
D/C 即缺陷总权值 除以 功能总权值
缺陷总权值计算方法 = Sum(缺陷数x该缺陷等级的权值)
假如 缺陷等级有四级
等级 权值
Blocker:阻塞-阻塞开发或者测试工作进度,或影响系统无法正常运行 10
Critical:致命-系统崩溃,丢失数据或内存溢出等严重错误 5
Major:严重-主要功能或业务无效 3
Minor:普通-系统功能部分无效 1
Trivial:琐碎-拼写错误,文本未对齐,数据长度格式校验等 0.5
假如有1个Blocker错误,1个Critical错误,3个Major错误,6个Minor错误,10个Trivial错误,那D=1*10+1*5+3*3+6*1+10*0.5= 35
权值可以根据自己项目的实际情况,进行拟定
功能权值计算方法跟缺陷权值计算方法类似,项目经理根据各个功能模块的复杂度拟出每一个模块权值,为了对不同项目缺陷密度的可比性,不同项目的功能权值要求要基本大致相同。