分析软件度量数据
分析软件度量数据
Section titled “分析软件度量数据”收集软件度量数据仅仅是第一步;要从中获得有意义的洞见需要仔细分析。分析技术的选择在很大程度上取决于所收集数据的性质、度量的目标以及研究或数据收集的设计。
理解数据的性质
Section titled “理解数据的性质”在分析之前,考虑数据的以下方面:
- 度量尺度 (Measurement Scale):数据是标称尺度 (Nominal)、有序尺度 (Ordinal)、区间尺度 (Interval) 还是比例尺度 (Ratio)?这决定了哪些统计运算是有效的(如“度量尺度”章节所述)。
- 数据分布 (Data Distribution):数据是正态分布(钟形曲线)、偏态分布,还是遵循其他分布?通过可视化检查(直方图、密度图)和统计检验(例如 Shapiro-Wilk 检验)可以帮助确定这一点。许多常见的统计检验都假设数据呈正态分布。
- 总体 (Population) vs. 样本 (Sample):您是在分析感兴趣的整个总体的数据(例如,发布版本中的所有缺陷)还是样本数据(例如,部分用户的可用性评分)?如果使用样本,则需要进行统计推断,以便对总体得出结论。
- 异常值 (Outliers):是否存在可能对分析产生不成比例影响的极端值(例如,由于服务器故障导致某个构建花费了数小时)?调查异常值以了解其原因,并决定是否包含或排除它们。
描述性统计 (Descriptive Statistics)
Section titled “描述性统计 (Descriptive Statistics)”总结数据的主要特征:
- 集中趋势度量 (Measures of Central Tendency):均值 (Mean - 适用于区间/比例尺度),中位数 (Median - 中间值,适用于有序、区间、比例尺度,对异常值不敏感),众数 (Mode - 最常出现的值,适用于所有尺度)。
- 离散趋势度量 (Measures of Dispersion):极差 (Range - 最大值减最小值),方差 (Variance)/标准差 (Standard Deviation - 数据围绕均值的离散程度,适用于区间/比例尺度),四分位距 (Interquartile Range, IQR - 中间 50% 数据的离散程度,适用于偏态数据或有序尺度)。
根据目的调整分析方法
Section titled “根据目的调整分析方法”度量的目标决定了分析方法:
目的 1:比较组别(验证理论/差异)
Section titled “目的 1:比较组别(验证理论/差异)”目标:确定两个或多个组之间基于特定度量是否存在统计学上的显著差异(例如,团队 A 是否比团队 B 更快地修复缺陷?新工具是否减少了构建时间?)。
常用技术:
- 正态分布数据:
- 非正态分布数据或有序数据:
- 标称数据(频率):
注意:统计显著性 (p 值) 表示观察到的差异是偶然发生的可能性。也要考虑实际显著性——这种差异是否大到在实践中有意义?
目的 2:探索关系(相关与回归)
Section titled “目的 2:探索关系(相关与回归)”目标:理解两个或多个变量之间是否存在以及如何相关(例如,代码复杂性与缺陷密度之间是否存在关系?我们能否基于模块规模预测测试工作量?)。
常用技术:
- 可视化:
- 相关分析 (Correlation Analysis):度量两个变量之间线性关系的强度和方向。
- 回归分析 (Regression Analysis):建立数学方程来描述因变量与一个或多个自变量之间的关系。
注意:相关不蕴含因果!存在关系可能是由于偶然性或隐藏的混杂变量 (confounding variable)。
考虑研究设计
Section titled “考虑研究设计”数据收集的方式影响分析选择。例如,来自对照实验 (controlled experiment) 的数据比纯粹的观察性数据 (observational data) 更能得出强有力的因果推断。复杂的设计(例如,包含多个交互因子的因子设计 factorial designs)需要更复杂的统计模型(例如,多因素方差分析 multi-factor ANOVA)。
各种工具支持数据分析:
- 电子表格软件 (Spreadsheet Software) (Excel, Google Sheets):基本分析、描述性统计、简单图表。
- 统计软件包 (Statistical Software Packages) (SPSS, SAS, Minitab):全面的统计分析功能。
- 编程语言 (Programming Languages) (Python with libraries like Pandas, NumPy, SciPy, Statsmodels; R):高度灵活和强大,适用于数据处理、分析和可视化。
- 商业智能 (BI) 工具 (Business Intelligence Tools) (Tableau, Power BI, Qlik):重点在于交互式可视化和仪表板 (dashboarding)。
有效的分析结合了适当的统计技术和领域知识,以便在特定背景下解释结果,并生成可操作的洞见以改进软件质量。