现在流行敏捷开发,版本迭代也会更快,由于每次版本迭代都是一些小更改,因此对性能上的测试灵敏度要求也会更高,而性能在版本间迭代时总是在动态变化的,因此很难有一个基准值作为判断的参考,如果老大需要一些版本时性能迭代的变化数据,比如,版本之间启动速度变化,以及浏览器加载的性能提升范围等,由于概率事件,很难说性能真的上升或者下降了,因为一切都可以解释成这只是正态分布中的某一次可能值。
然而,还是可以引入一些数学上的方法的。不过需要用到大学学过的概率论。
1.其实很多场景能抽象为以下模型来坐量化: 随机抽取100组数据,其中n1组数据通过检验,100-n1组不通过检验,计算一个99%的置信区间,其中均值测试结果为通过的概率。
已知这个模型,那我们需要什么呢,
(1)判断数据通过或者不通过的标准是什么。
那么我们可以把A组的均值mean_a跟方差var_a求出来,当作总体的均值跟方差。然后判断标准是B组的100个值里,每一个值如果在(mean_a-3*sqrt(var_a),mean_a+3*sqrt(var_a))内,则判断数据为通过检验,如果在区间外,则判断不通过检验。
(2)针对这100组数据做计算。
样本均值:mean=(n1*p+(100-n1)*(1-p))/100,
样本方差:var =(n1*(1-mean)^2+(100-n1)*(0-mean)^2)/(100-1) ,
样本标准差:s=sqrt(var)
根据中心极限定理,任何分布的均值都服从正态分布,因此
抽样分布均值:mean_1=mean
抽样分布标准差: s_1 = s/sqrt(100)
因此样本均值服从(mean_1,s_1)的正态分布,通过查询正态分布z值表,可以知道样本在某个标准误(x)范围内(mean_1-x,mean_1+x)可以达到99%的可信度,证明:
(1)测试是通过的,证明此项测试指标在迭代过程中有99%的可能没变化
(2)测试不通过,代表此项测试指标在迭代过程中有变化。(具体如何变化,可以用t检验或者z检验)
先挖坑,日后填。