ODC,英文全称为Orthogonal Defect Classification,译作"正交缺陷分类",由IBM 的Waston中心推出。
当需要分析与开发者和测试人员相关、与开发阶段相关、与顾客的满意程度相关的产品质量的外部属性时,据IBM介绍可以通过ODC分析这些属性的结果提高软件的质量。
ODC技术对于以下3种情况特别适用:
(1)开发生命周期相对来说是一个很漫长的过程,包括后续的改进工作。例如,这个项目包括多个软件版本或者一个版本有多次迭代。
(2)潜在的缺陷数目是相当大的。缺陷数目越多,客观的分析结果也越多,对我们了解软件质量越有好处。
(3)这个项目已经将"高质量"设定为它的主要目标之一。
ODC技术将每一个缺陷按不同维度进行分类。当缺陷数量较多时,也可以对缺陷进行抽样分析。目前ODC技术的主要维度包括发现问题的活动(分为8类)、触发因素(分为36类)、结果影响(分为13类)、问题根源对象(分为6类)、缺陷类型(分为39类)、缺陷界定(分为3类)、责任来源(分为5类)、缺陷年龄(分为4类)8个,共114类。根据大量缺陷分类后产生的各类缺陷的统计数字,结合缺陷定位信息(所属子系统、模块、特性)进行多维度正交分析,就能准确确定产品主要质量问题区域,识别缺陷引入和去除过程的重点改进对象,实现对过程和产品的精确改进指导。将传统度量手段和ODC技术相结合,能实现对过程和产品的宏观评估和微观解剖。
将一个缺陷在生命周期各环节的属性组织起来,从单维度、多维度来对缺陷进行分析,从不同角度得到各类缺陷的缺陷密度和缺陷比率,从而积累得到各类缺陷的基线值,用于评估测试活动、指导测试改进和整个研发流程的改进;同时根据各阶段缺陷分布得到缺陷去除过程特征模型,用于对测试活动进行评估和预测。7.7节中前面几个小节描述中涉及的缺陷分布、缺陷趋势等都属于这个方法中的一个角度而已。
相关链接:
http://www.research.ibm.com/softeng/ODC/DETODC.HTM
其他缺陷分析方法:
1、Gompertz分析:根据测试的累积投入时间和累积缺陷增长情况,拟合得到符合自己过程能力的缺陷增长Gompertz曲线,用来评估软件测试的充分性、预测软件极限缺陷数和退出测试所需时间、作为测试退出的判断依据、指导测试计划和策略的调整;
2、Rayleigh分析:通过生命周期各阶段缺陷发现情况得到缺陷Rayleigh曲线,用于评估软件质量、预测软件现场质量;
3、四象限分析:根据软件内部各模块、子系统、特性测试所累积时间和缺陷去除情况,和累积时间和缺陷去除情况的基线进行比较,得到各个模块、子系统、特性测试分别所位于的区间,从而判断哪些部分测试可以退出、哪些测试还需加强,用于指导测试计划和策略的调整;
4、根本原因分析:利用鱼骨图、柏拉图等分析缺陷产生的根本原因,根据这些根本原因采取措施,改进开发和测试过程;
5、缺陷注入分析:对被测软件注入一些缺陷,通过已有用例进行测试,根据这些刻意注入缺陷的发现情况,判断测试的有效性、充分性,预测软件残留缺陷数。在06年软件评测师考试中有一题就是考这个思路,参见这个帖子我的回复:http://bbs.51testing.com/thread-114979-1-1.html
6、DRE/DRM分析:通过已有项目历史数据,得到软件生命周期各阶段缺陷注入和排除的模型,用于设定各阶段质量目标,评估测试活动.