缺陷趋势分析

发布于 2023-7-26 10:33
浏览
0收藏

1. 缺陷和缺陷趋势分析

项目中,没有人会喜欢缺陷,就像我们不喜欢自己身体有病痛症状一样。但病痛症状会提醒我们身体存在的问题,是能帮助我们及时来调整和修复身体的。


同样,缺陷可以看作是产品、项目健康与否的指示器(indicator)。善待缺陷,对其进行有针对性的分析和采取切实的措施。会提升产品、项目的质量。


ASPICE中的“SUP.9BP9: 分析问题的趋势 / Analyzeproblem trends”是要求对问题(主要指缺陷)做趋势分析,并由此触发相应的后续措施。


这里的要求不是对某一个单一缺陷的分析和解决。而是通过对“缺陷集合”的分析,以掌握”项目/产品的整体情况”或“系统性的原因”,从而能采取针对性的措施。

2. 缺陷趋势分析方法

下面介绍一些常用的缺陷趋势分析的方法:

(2.1) 缺陷发现个数、缺陷解决个数的趋势分析

新冠疫情在国内刚开始的时候,大家每天都会看累计发现确诊病例的趋势图,并预测什么时间可以到达”拐点”。


缺陷发现个数的趋势分析,是与此类似的,例如:

缺陷趋势分析 -汽车开发者社区

上图所示的“累计缺陷个数“的趋势图,可以看出缺陷个数没有收敛趋势,产品质量还不稳定,还需要继续测试。

缺陷趋势分析 -汽车开发者社区

上图所示的“累计缺陷个数“的趋势图,可以看出缺陷个数存在收敛趋势(到达了拐点),产品质量趋于稳定,从成本&收益的权衡来看,继续测试的意义不大,可以考虑停止测试了。


如上分析,是应用了这样的一个规则:在相同的测试力量下,发现的缺陷越多,产品中遗留的缺陷就越多;发现的缺陷越少,产品中遗留的缺陷就越少。(是这样吧)


新冠疫情期间,大家也会关注每日的治愈病例的趋势图、以及与确诊病例增长趋势的对比,这是在考察医疗救护能力,以及医疗救护能力是否达到极限,是否需要其它地区的支援等。


缺陷解决个数的趋势分析,是与此类似的,例如:

缺陷趋势分析 -汽车开发者社区

上图所示的趋势图,可以看出缺陷的解决能力不足,未解决的缺陷越来越多。

缺陷趋势分析 -汽车开发者社区

上图所示的趋势图,可以看出缺陷的解决能力是足够的。


有些时候,可以使用趋势图进行缺陷的预测。累计发现缺陷个数、累计解决缺陷个数是符合CompertZ曲线的,因此常基于此来进行预测,例如:

缺陷趋势分析 -汽车开发者社区

缺陷发现个数、缺陷解决个数的趋势的分析可以掌握产品质量状况和缺陷解决能力的状况,通常在项目的测试阶段进行使用。

(2.2 ) 缺陷根因分析–> 识别并修复“产品设计开发过程中的系统性问题“–-> 缺陷预防

缺陷趋势分析 -汽车开发者社区

如上图所示,在产品设计开发过程中,有些过程活动会”注入缺陷”,另外一些过程活动负责“剔除缺陷“。


通过缺陷根本原因分析,并采取针对性措施来优化”产品设计开发过程”的目的是:

  • 让”注入缺陷”的过程活动,尽量少的注入缺陷。例如:通过应用相关的需求开发方法及对需求工程师的培训,使得需求工程师编制的需求都能清晰、准确。
  • 让“剔除缺陷“的过程活动更有效,尽可能多的剔除应该在该过程活动中剔除的缺陷。例如:变量在使用前没有被初始化的问题,需要在”静态代码分析“活动中识别出来。(不应该遗留到后续的测试活动中来发现,或者一直不被发现)


接下来谈一谈具体的方法:

1)找到主要的问题点(抓住主要矛盾)

1.1) 可以根据80/20原则,采用帕累托图(Pareto chart)来找主要的问题点

例如可以从缺陷引入活动、缺陷所属模块等维度来找到主要的问题点,如下图所示: 

缺陷趋势分析 -汽车开发者社区

1.2) PCE(Phase Containment Effectiveness)分析

PCE适用于”注入缺陷的过程活动”,PCE = 该过程阶段发现的由于本过程阶段引入的缺陷个数/ 该过程活动注入的缺陷个数。


例如:软件需求分析活动引入的缺陷总数是34个,在软件需求的评审活动中,发现了其中的10个,那么软件需求分析活动的PCE = 10 / 34 = 29.41%

说明:此处的缺陷包括所有缺陷剔除活动所发现的Product Problem.


通过PCE的分析,能有效分析在V模型左侧的“验证(评审)“活动的效果,并识别出效果不好的点。


2)针对主要问题点,采用原因分析方法(如:鱼骨图、5Why、头脑风暴)找到问题的根因,并制定对应的措施,以达到缺陷预防的目的。


上述的针对根本原因的分析,主要在项目阶段点来进行。是用来对上一个阶段发现的所有缺陷进行的分析和Lessons Learned,并制定对应措施,在下一个阶段进行改善。

3. 数据分析

缺陷趋势分析,是缺陷数据的趋势分析。本文最后这个部分,就谈谈“数据分析“。


有一次,和项目成员谈缺陷数据分析时,项目成员打开JIRA的Dashboard,给我说:项目有做缺陷的趋势分析,你看JIRA的Dashboard有这么这么多的数据图。


JIRA Dashboard从各个维度对缺陷数据所作出的图表,是”完整的数据分析”吗?


举一个生活中的例子:

Thomas去医院做心电图检查,医生给出的心电图检查报告会包括:

  • 心电图的Diagram
  • 基于心电图的Diagram,医生给出的心脏是否正常,以及如果不正常的话,是哪里不正常(如:房颤、心率不齐等)的判断。
  • 医生给出的后续措施,如:每年定期体检即可、或者需要立刻转到专科医院做进一步的检查和治疗等。


上述的心电图检查报告就是比较典型的“完整的数据分析“。


软件度量让你知道什么时候该哭,什么时候该笑 (Software metrics let you know when to laugh and when to cry。- Tom Gilb)


进行缺陷的趋势分析时,需要包括:缺陷数据、基于缺陷数据生成的图表、对数据或图表的分析(数据图表等展示的情况好还是不好,哪里好,哪里不好,有多好,有多不好,是什么原因,是否需要采取措施,需要采取什么措施……)


最后做个小练习,如下四个数据分析图里面,哪些是“数据分析”?

缺陷趋势分析 -汽车开发者社区


推荐阅读:


文章转载自公众号:仨人谈起


分类
收藏
回复
举报
回复
相关推荐