让我们来谈谈统计吧 - 面向软件质量的统计入门(No.2 与数据正确相处的方法)
Back to Top
为了覆盖更广泛的受众,这篇文章已从日语翻译而来。
您可以在这里找到原始版本。
前言
#“让我们来谈谈统计吧”第二期将讨论作为统计处理前提的“数据本身”应如何对待。
无论使用多么高大上的分析方法,如果所依据的数据不恰当就毫无意义。
这里我们从以下三个方面来掌握数据的基础:
- 数据的种类(定性·定量+量表)
- 测量值与误差的关系
- 为了收集优质数据的条件
数据的种类:定性数据和定量数据
#统计中的数据大致可分为“定性数据”和“定量数据”两类:
● 定性数据(质性数据)
#是具有意义或属性的数据,不是用数值表示,而是用 标签 或 类别 表示。
- 示例:缺陷类型(UI、逻辑、性能)
- 示例:评审判定(OK / NG / 需要重新确认)
- 示例:测试结果(合格 / 不合格)
特点:
- 无法进行数值计算(无法得出平均值等)
- 可用于比较比例或出现频率
此外,质性数据还可再细分为以下两种:
● 定量数据(量化数据)
#是以数量形式测量的数据,数值本身具有意义。
- 示例:缺陷数量、测试执行时间、代码量(KLOC)
- 示例:修复所用天数、缺陷密度
特点:
- 可用于描述性统计(平均、方差等)和推断统计
- 易于通过折线图或散点图等进行可视化
此外,量化数据也可再分为以下两类:
关于数据的尺度(量表)
#此外,不同数据在含义和处理方式上有所差异。
要正确选择统计方法和可视化方式,理解“尺度(量表)”是必不可少的。
● 名义量表(Nominal Scale)
#- 仅仅是标签(例如:缺陷类型、错误代码分类)
- 能进行的计算只有出现次数或众数
● 顺序量表(Ordinal Scale)
#- 顺序具有意义(例如:评审等级、满意度调查:满意 > 一般 > 不满意)
- 可以计算中位数和排名比较,但在某些情况下不适合计算平均值
● 区间量表(Interval Scale)
#- 等间隔具有意义,但不存在绝对0(例如:日期、温度℃)
- 可以进行加减运算、计算标准差等
● 比率量表(Ratio Scale)
#- 存在绝对0,所有运算皆可进行(例如:执行时间、缺陷数量)
- 在统计分析和可视化中最常使用的量表
● 四种量表的差异及对应的统计处理
#下表展示了这四种量表的差异。
量表 | 比较 | 平均 | 差值 | 比率 | 示例 |
---|---|---|---|---|---|
名义量表 | ✕ | ✕ | ✕ | ✕ | 缺陷分类、错误代码分类 |
顺序量表 | ◯ | △ | ✕ | ✕ | 评审等级、满意度调查 |
区间量表 | ◯ | ◯ | ◯ | ✕ | 日期、温度℃ |
比率量表 | ◯ | ◯ | ◯ | ◯ | 执行时间、缺陷数量 |
例如,缺陷密度(件/KLOC)属于比率量表,可以进行平均、方差和趋势分析。
下图显示了每个版本的缺陷密度趋势,可看出当低于0.8件/KLOC时,目标正在逐步达成。
量表的差异影响可采用的统计方法、图表类型及解读方式。
测量值与误差
#无论多么仔细地测量,都必然会产生误差(包括波动)。
如果不了解这一点,盲目信任数据会导致错误判断的风险。
● 测量值 = 真实值 + 误差
#软件质量数据(如评审时间或缺陷发生率等)的测量值存在再现性的限度。
不要仅凭一次测量结果来判断,重要的是要有“测量存在波动”的前提。
下图为对同一测试项目测量10次时波动的示例。
- 示例:测量测试执行时间时,每次大约波动1~2秒
正如如此,即使测量相同对象,每次也不会完全相同,这是现实。
● 误差的类型
#在处理质量数据的现场,如果将“波动”和“偏差”混为一谈,就会导致错误的改进判断。
需要理解测量误差也存在不同类型,并加以区分使用。
下图展示了“系统误差”和“偶然误差”的典型差异。
- 系统误差:总是向同一方向偏移的误差(例如:测量仪表显示快0.5秒)
- 偶然误差:每次测量时随机产生的误差(例如:环境噪声或测量者差异)
● 为什么要重视误差?
#仅凭“单次测量结果”来判断质量改进是非常危险的。
由于测量结果包含波动,要判断变化是否具有统计学意义,必须依赖统计视角。
下图比较了变更前后测量结果的波动。中位数的差异是否显著,您会如何解读?
- 仅凭一次测量结果来判断是危险的
- 通过以统计方式处理误差,可以判断“是否真的发生了变化?”
对数据要始终保持“含有不确定性的观测值”的姿态,这一点很重要。
什么是优质数据?
#统计只有在拥有**“优质数据”**的情况下才有意义。那么,什么是优质数据?
● 优质数据的条件
#- 准确性:是否没有记录错误或单位错误?
- 一致性:测量方法和记录规则是否统一?
- 全面性:所需范围内的数据是否完整采集?
- 时效性:是否在所需的时间点获取了数据?
- 客观性:是否未混入主观或感官上的偏差?
- 目的适配性:该数据是否符合要进行分析和判断的目的?
示例:如果目的是“缺陷原因分析”,是否包含了发生阶段和影响范围等?
● 不良数据示例
#- 在对缺陷数量进行统计时,没有区分现象数和原因数(定义不明确)
→ 将缺陷的定义和分类规则文档化,明确统计规则 - 责任人之间记录“缺陷”的标准不同(掺杂了主观因素)
→ 制定记录规则,进行定义标准化并执行审查 - 测试时间的记录是手写后再录入(缺乏可靠性)
→ 引入自动收集或即时录入机制,保证可靠性
● 数据收集中,“制定规则”占90%
#“先收集了再说”的方式,在真正分析时往往会发现没法使用。
- 明确由谁以何种方式记录什么
- 完善数据定义说明书和记录规则表
在实际现场,由于“记录格式不明确”“各责任人记录粒度不同”等原因,收集后无法进行统计的情况并不少见。
因此,在收集之前就需要先进行记录设计并让相关人员知晓。
总结
#- 数据分为“定性”和“定量”,可使用的统计方法不同
- 测量值始终包含误差,因此需要多次观测并考虑误差
- 要收集优质数据,明确记录规则和定义是必不可少的
下次预告
#下次我们将正式进入“描述性统计”的领域,学习平均数、中位数和众数的区别及使用。
希望能为您的数据分析提供帮助。