某公司积累了最近2年24个项目缺陷发生率的历史数据(缺陷发生率为系统测试发现的缺陷个数除以开发的工作量),如下表所示:
对上述的历史数据,按年份画箱线图比较分析如下:
针对上述的箱线图,是否可以下结论认为2013年开发质量提升了,开发人员犯的错误就少了呢?
其实未必。
如果对年份与项目的开发方式做卡方分析,则有如下的结论:
汇总统计量: 年份, 开发方式
行: 年份 列: 开发方式
全新
开发 修改 全部
2012年 8 4 12
2013年 3 9 12
全部 11 13 24
单元格内容: 计数
Pearson 卡方 =4.196, DF = 1, P 值 = 0.041
似然率卡方 = 4.332, DF = 1, P 值 = 0.037
可以发现2013年是修改类项目多,全新开发类项目少,而2012年正相反。而我们如果按照开发方式对项目分类,也去画此两类项目的的箱线图,则可以发现全新开发的项目与修改类项目的缺陷发生率具有显著的差别:
缺陷发生率的降低不因为2013年比2012年质量改进手段更有效,而是由于项目类型决定的!
如果我们有全新开发类项目与修改类项目的测试投入,我们也可以继续分析看看是否这2类项目的测试投入不同,或者如果有两类项目的评审投入数据也可以继续分析是否2类项目前期评审投入有所不同,而导致缺陷发生率的的显著差别。总之,当数据给了我们一个客观现象的陈述之后,不要匆忙下结论,而是要深入挖掘,不要被数据的表象给迷惑了!