天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
分类: 云计算
2025-02-14 12:09:18
本文分享自天翼云开发者社区《缺陷分析方法简介》,作者:Miya
一、缺陷分析简介
质量是反应软件与需求相符程度的指标,缺陷则被认为是软件与需求不一致的某种表现。因此通过对测试过程中所有已发现的缺陷进行分析和评估,可以更加清楚地了解软件的质量状况,同时可以帮助项目组很好地掌握和评估软件的研发过程,进而改进研发过程。此外,还能为软件新版本的开发提供宝贵的经验,进而在项目开展之前,制定准确、有效的项目控制计划,为开发高质量的软件产品提供保障
二、缺陷分析方法简介
常用的缺陷分析方法有:缺陷根因分析法、四象限缺陷分析法、ODC 缺陷分析法、Rayleigh缺陷分析法和Gompertz 缺陷分析法等等
根据缺陷分析的目的不同,缺陷分析方法可以分类如下:
1、缺陷根因分析
RCA(Root Cause Analysis)根本根因分析方法,是一种产品质量管理工具,也经常应用于问题根因分析中。简单定位为:使用结构化的过程和方法,识别问题产生的根本原因并制定相应的解决方案,使问题不再发生。
RCA 过程包括四个阶段:收集信息、理解问题、确定根本原因和制定解决方案,其流程如下所示
5W2H法通常被应用在多个领域,如做产品、销售等,在缺陷分析领域同样可以通过7个问题来确认问题的根因。
5W(即5个为什么):
what(发生什么事)
when(什么时候)
where(哪里)
why(为什么)
who(是谁)
2H:
how (怎么做)
how much(多少钱)
E-C(Effect-CauseDiagram)是进行设备类故障分析的常用方法。失效机理是从激活缺陷的事件出发,到故障症状,是一个正向的“技术回放”,把系统行为打开,从逻辑上展示定位结论是正确的。分析方法包括五步,如下:
{BANNED}中国第一步:先两端(首:诱发时间 尾:故障症状)
第二步:再中间(导致的直接缺陷)
第三步:补节点(补充场景的事件及中间流程)
第四步:加强防护措施(包括正向和失效防护措施)
第五步:找隐患,总结负向经验(问题/隐患、改进措施、改进类别、完成时间、责任人)注:改进类型纠正修改、排查清零、负向需求、设计准则、场景库、测试经验。
2、过程改进
FST,全称Fault Slip Through,缺陷流出,是当前应用比较成熟的一种分析方法。其主要作用是根据各个阶段发现的问题数进而反向推动整个开发流程的一种负向改进方法。其目的是尽早暴露缺陷,在有限的开发和测试人力的基础上尽量降低后续暴露定位和修复的代价(即发现成本+修复成本{BANNED}最佳低原则)
主要从缺陷引入和缺陷流出两个维度进行分析,以确定缺陷的{BANNED}最佳佳发现活动。
缺陷流入率=本阶段发现的前期缺陷/本阶段发现的总缺陷
缺陷流出率=本阶段之后发现的本该本阶段发现的缺陷/本阶段应该发现的缺陷总数
通过分析各个阶段的缺陷流出率,可以优先改进流出率{BANNED}最佳大的研发阶段,进而分析该阶段哪种类型的缺陷漏出{BANNED}最佳多。
根据缺陷漏测的原因归类分析
通过识别发现缺陷的手段方法的归类,对过程做针对改进。
3、分类分析
ODC,全称Orthogonal Defect Classification,正交缺陷分类。是将缺陷按照不同属性分别归入正交的类别中,然后对分类后的数据进行定量分析,从中得出过程改进措施
odc缺陷分析法的具体工作流程如下:
{BANNED}中国第一步,对缺陷进行分类。
第二步,校验已经被分类的缺陷。
第三步,对数据进行评估。
第四步,采取行动来对工作作出改进
针对{BANNED}中国第一步的缺陷分类,目前ODC技术的主要维度包括发现问题的活动(分为8类)、触发因素(分为36类),结果影响(分为13类),问题根源对象(分为6类),缺陷类型(分为39类)、缺陷定界(分为3类),责任来源(分为5类),缺陷年龄(分为4类)8个,共114类。根据大量缺陷分类后产生的各类缺陷的统计数字,结合缺陷定位信息(所属子系统、模块、特性)进行多维度正交分析,能准确确定产品主要质量问题区域,识别缺陷引入和去除过程的重点改进对象,实现对过程和产品的精确改进指导。
4、质量评估
缺陷趋势分析
根据测试的累积投入时间和累积缺陷增长情况,拟合得到符合自己过程能力的缺陷增长Gompertz曲线,用来评估软件测试的充分性、预测软件基线缺陷数和退出测试所需时间、作为测试退出的判断依据、指导测试计划和策略的调整。
通过生命周期各阶段缺陷发现情况得到缺陷Rayleigh曲线,用于评估软件质量、预测软件现场质量
缺陷对比分析
根据软件内部各模块、子系统、特性测试所积累时间和缺陷去除情况,和累积时间和缺陷去除情况的基线进行比较,得到各个模块、子系统、特性测试分别所位于的区间,从而判断哪些部分测试可以退出,哪些测试还需要加强,用于指导测试计划和策略的调整。