有网友询问如表1所示的原始数据如何分析,发现问题,我觉得很有代表性,试着分析进行了分析,供大家参考。

表1: 11个项目的缺陷状态原始数据

产品名称

未解决

设计如此

重复Bug

外部原因

已解决

无法重现

延期处理

不予解决

转为需求

总计

A产品

148

52

5

62

1701

20

14

8

8

2018

B产品

52

11

1

16

515

12

3

6

0

616

C产品

31

75

22

40

1621

37

38

103

33

2000

D产品

25

7

0

2

223

2

0

0

1

260

E产品

13

7

2

4

263

4

5

0

4

302

F产品

7

2

0

8

269

4

6

3

0

299

G产品

3

0

0

0

26

0

0

0

0

29

H产品

0

17

0

3

273

1

4

4

0

302

I产品

0

0

0

0

98

0

24

0

0

122

J产品

0

0

4

14

223

4

17

8

0

270

K产品

0

6

1

8

381

3

22

10

0

431

第1步:澄清数据的含义

问:设计如此是指设计缺陷吗?

答:设计如此包含了产品设计如此和技术设计如此。

问:B到J列的数据,没有包含的关系,是可以累加得到最后一列,对吧?

答:是的,B到J列没有包含关系。

问:这11个项目是已经完成的项目,还是当前正在进行的项目?

答:大部分是完成95%的项目。后面就是新的迭代了。

问:不予解决是什么意思?

答:不予解决就是接受这个问题存在。

问:你这个产品是项目级么?

答:产品级。

第2步:对数据做变换

为了确保不同项目之间的数据具有可比性,将绝对的数值,转换为相对的数值。

把每列与合计列相除得到缺陷状态的%,参见表2:

表2: 归一化的数据

产品名称

问题解决%

未解决%

设计%

重复bug%

外部原因%

无法重现%

延期处理%

不解决%

转为需求%

A产品

0.8429

0.0733

0.0258

0.0025

0.0307

0.0099

0.0069

0.0040

0.0040

B产品

0.8360

0.0844

0.0179

0.0016

0.0260

0.0195

0.0049

0.0097

0.0000

C产品

0.8105

0.0155

0.0375

0.0110

0.0200

0.0185

0.0190

0.0515

0.0165

D产品

0.8577

0.0962

0.0269

0.0000

0.0077

0.0077

0.0000

0.0000

0.0038

E产品

0.8709

0.0430

0.0232

0.0066

0.0132

0.0132

0.0166

0.0000

0.0132

F产品

0.8997

0.0234

0.0067

0.0000

0.0268

0.0134

0.0201

0.0100

0.0000

G产品

0.8966

0.1034

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

H产品

0.9040

0.0000

0.0563

0.0000

0.0099

0.0033

0.0132

0.0132

0.0000

I产品

0.8033

0.0000

0.0000

0.0000

0.0000

0.0000

0.1967

0.0000

0.0000

J产品

0.8259

0.0000

0.0000

0.0148

0.0519

0.0148

0.0630

0.0296

0.0000

K产品

0.8840

0.0000

0.0139

0.0023

0.0186

0.0070

0.0510

0.0232

0.0000

第3步 对数据进行横向或纵向对比分析

该数据表中的产品是同时进行的项目,没有时间的先后顺序数据,所以不做纵行对比分析,可以进行横向对比分析,即对同一时间段的项目进行对比分析。比如可以对问题解决%进行对比分析。对这11个项目可以采用柱状图分析,分析时要先排序:

表3: 排序后的问题解决%

产品名称

问题解决%

I产品

0.8033

C产品

0.8105

J产品

0.8259

B产品

0.8360

A产品

0.8429

D产品

0.8577

E产品

0.8709

K产品

0.8840

G产品

0.8966

F产品

0.8997

H产品

0.9040

图1 问题解决%的柱状图

对于上图,可以采用80-20的原则,取排名最靠后的2个产品进行原因分析,即为什么产品I或C这2个产品问题解决%那么低?这2个项目未必一定是离群点,只是最低而已。

对于其他度量元依此类推,也可以画柱状图进行分析。

第4步 通过统计的方法识别离群点

采用柱状图、条形图、饼图等是基于经验识别不合理的现象,但是未必很合理,有可能得到的结论是不科学的,此时我们可以借助统计的方法来识别离群点,即识别小概率事件,小概率事件发生的概率很小,是有别于正常事件的,是特殊原因造成的。

对于本组数据,我们可以画箱线图来识别离群点。

图3 Minitab中问题解决%的箱线图

图4 Excel中问题解决%的箱线图

对该度量元没有发现离群点,但是如果我们对其他度量元也进行分析:

图5 Minitab中对多个度量元进行箱线图分布分析

则我们发现产品I的延期处理%是离群点,产品C和E的转为需求%是离群点,对这3个项目应该进行原因分析!是另类的产品!

Minitab是专业的统计分析工具,简单易用,比EXCEL功能强大。

第5步 分析数据之间的相关性

分析相关性是为了识别因果规律,原因决定了结果。

可以通过散点图观察两个变量之间的相关性,对于本组数据,如果我们画出无法重现%与外部原因%的散点图,得到图6:

图6: 无法重现% 与 外部原因% 的散点图

观察上图,可以发现随着外部原因%的增加,无法重现%也是增加的,二者是正相关的!意味着很可能二者之间有因果关系,或者它们都是因另外一个因子影响而同步变化的!具体是哪种情况,需要继续和组织或产品组进行更多的沟通才能判定。

更准确的判断是否两个数据之间存在相关性可以在Minitab中计算相关性系数,进行相关性的假设检验,对上述数据,相关性检验的结果如下:

图7 相关性分析结果

当P值小于0.05时,可以认为这2个变量是相关的。我们找到了3对相关的度量元:

外部原因% 与 重复bug%

外部原因% 与 无法重现bug%

不解决% 与 重复Bug%

由于本组数据样本点比较少,我们还需要仔细看看散点图是否真的相关。通过图6的观察与相关性检验的结果,我们可以认可外部原因%与无法重现bug%是中度相关的,相关性系数为0.684。

图8 重复bug%与外部原因%的散点图

仔细观察图8,隐隐的有2个趋势在里面,由于样本点少,不能轻易下结论,需要再采集数据,再观察。

图9 不解决%与重复bug %的散点图

仔细观察图9,红圈中的样本点如果删除,相关趋势是否还那么明显呢?

该组数据只有11个点,相关性的趋势不是特别明显,需要再继续采集数据,不好轻易下结论。

综述:

1 简单的数据分析可以只做到第3步,并非要做第4、5步。

2 根据图8,我们怀疑存在2类项目,但是原始数据中没有给出每个项目的特征,比如是否新产品,采用的是迭代还是瀑布的生命周期模型,所以我们无法进行分类分析。

3 第4步中,如果数据记录了发生的先后顺序,我们也可以通过控制图的方法识别离群点。

4 样本点多了,数据的分布规律与因果规律才是规律,不是偶然。

5 如果再有各产品的规模数据(比如功能点数),就可以做产品间的质量水平对比,或算出各类bug缺陷密度的基准区间,比如延期处理的bug单位功能点有多少个是合理的。

案例:缺陷状态数据分析相关推荐

  1. 通过客户流失预测案例感悟数据分析设计方法思考——数据驱动、AI驱动

    国际著名的咨询公司Gartner在2013年总结出了一套数据分析的框架,数据分析的四个层次:描述性分析.诊断性分析.预测性分析.处方性分析. Gartner于2020年中给出预测,到2024年底,75 ...

  2. python用于数据分析的案例_Python数据分析经典案例

    从事机器学习,数据分析,数据挖掘的同学们以及python使用者 选择经典案例基于真实数据集,从数据预处理开始到建立机器学习模型以及效果评估,完整的讲解如何使用python及其常用库进行数据的分析和模型 ...

  3. python数据分析实战案例-Python数据分析案例实战

    原标题:Python数据分析案例实战 至今我们网站已经开设了多个数据分析系列的课程,大部分都是基于算法思路来开展的,课程中着重点在于算法的讲授.软件的使用,案例只是辅助学习.然而很多学员反映,希望可以 ...

  4. python建筑案例_Python数据分析实战-链家北京二手房价分析

    前言 最近在自学Python,通过学习大家的分享案例,看到使用Python进行较多的主要4个方面:爬虫,数据处理,数据可视化以及机器学习建模.对我来说目标就是: 熟练使用numpy pandas 进行 ...

  5. 知识众筹第9期 一个经典案例学会数据分析 | 开始分红报名

    什么是知识众筹?投资者选择自己看好的知识分享项目,并与知识分享者一起享受项目分红. 本期项目邀请了猴子数据分析社群会员.成功将数据分析技术应用在工作中,实现了工作效率提升的王承顺. 王承顺毕业于北京科 ...

  6. python实操案例_Python数据分析基础实操案例

    上游,是勇士劈风破浪的终点,下游,是懦夫一帆风顺的归宿. 本文是Python基础知识点的姊妹篇,以药店销售数据分析为例,带你一起走一遍数据分析5部曲.鲸歌:Python基础知识点​zhuanlan.z ...

  7. python金融数据分析案例_Python数据分析行业案例课程--欺诈检测

    注意: 1. 本行业案例课程为Python 3 数据分析系列课程的行业案例部分,学员请务必先观看课程介绍免费视频,确认已学习本课程所需Python分析技能. 2. 本课程的核心目的是协助学员学习具体业 ...

  8. python实验数据预处理案例_Python数据分析小案例——红楼梦文本分析(一) 文本预处理...

    本文开始介绍一个简单的数据分析案例,分析红楼梦文本,本文主要内容是将红楼梦文本按照章节获取每一回的标题,字数,段落数并保存到csv中方便后续数据分析 红楼梦小说文本可以在这里下载 链接:https:/ ...

  9. python 数据分析 实际案例-Python数据分析案例实战

    原标题:Python数据分析案例实战 至今我们网站已经开设了多个数据分析系列的课程,大部分都是基于算法思路来开展的,课程中着重点在于算法的讲授.软件的使用,案例只是辅助学习.然而很多学员反映,希望可以 ...

最新文章

  1. 半导体量子芯片开发获重要进展
  2. 2015年山石网科面试题
  3. android ListView常用知识总结
  4. 2015计算机类专业课类试卷,2015计算机专业知识试题.doc
  5. 计算机图形学考题答案,计算机图形学考题答案.doc
  6. 函数可重入问题reentrant functions
  7. CleanCodeHandbook Chapter 9: Binary Search(48-50)
  8. [译]Vulkan教程(08)逻辑设备和队列
  9. 在ubuntu系统下下载和卸载skype
  10. ROS2 和Ubuntu 版本对应关系
  11. 光驱放入空盘,出现无法访问函数不正确(收藏)
  12. iview中Page分页组件添加首页尾页按钮
  13. SitePoint Podcast#181:解决比创建更多的问题
  14. 随机函数rand()[c++]
  15. win10:如何通过注册表删除右键菜单
  16. 微信app支付和微信网页支付 java
  17. 【Java】基础知识-JAXP解析XML(一)
  18. 51单片机实例5——基于单片机的花样彩灯
  19. 加权GN算法的Java实现
  20. FITC-SNA,EBL;荧光素标记的黑接骨木凝集素(SNA,EBL)

热门文章

  1. matlab dock什么意思,dock栏是什么意思? 电脑dock栏使用方法
  2. ibm+x3650+m4+linux+raid驱动,IBM X3650M4阵列卡驱动
  3. DHCP OPTION 82的原理
  4. Python 印章代码(附有解析)
  5. 几张一模一样的照片_一个人持有两个真实的身份证 照片看上去一模一样
  6. React、Preact还是Inferno?哪个是用于快速应用程序的最佳JS框架
  7. 等保测评--- 岗位职责、权限划分设计思路(三权分立)
  8. 批处理文件删除注册表数据
  9. 前端互联网金融项目总结
  10. Java语言程序设计基础篇(第十版)课后习题答案 - 第一章