在一些实施CMMI高成熟度的软件公司中对于过程的性能数据进行分析时,常常发现应该具有相关性的2个变量根据历史的数据不能证明这种相关性,或者是应该正相关的数据却分析出了负相关的结论,原因何在呢?例如:
我们的经验与常识:
假设或常识1:高水平的测试人员找出的BUG多, 低水平的测试人员找出的BUG少。
假设或常识2:高水平的开发人员犯的错误应该少,低水平的开发人员犯的错误应该多。
我们的实际数据:
在实践中常常采用的策略:
策略1:关键的模块应该由高水平的开发人员进行开发,非关键的模块由低水平的开发人员进行开发。
策略2:高水平的测试人员要测关键的模块,低水平的测试人员测试非关键的模块。
如果是这样,对于测试过程做了度量以后,数据无法证明假设1和2的成立。
这就是问题的症结!我们的实际数据本身就是有倾向的样本!而不是随机的样本!因为我们采用了策略1和策略2!所以历史数据表明:我们发现的bug的多少是与开发人员的水平、测试人员的水平是无关的。
如果要证明假设1和2,需要做实验,即在保证**条件相同的情况下,我们做实验看测试人员或开发人员的水平对测试的BUG数的影响,统计过程的性能数据去证明假设1和假设2。
所以遇到数据中存在不符合常识的结论时,应该仔细剖析一下,看看问题何在。
原文链接:http://tech.ccidnet.com/art/302/20120612/3947921_1.html