测试数据精准对比的思考
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了测试数据精准对比的思考相关的知识,希望对你有一定的参考价值。
一.前提
现在流行敏捷开发,版本迭代也会更快,由于每次版本迭代都是一些小更改,因此对性能上的测试灵敏度要求也会更高,而性能在版本间迭代时总是在动态变化的,因此很难有一个基准值作为判断的参考,如果老大需要一些版本时性能迭代的变化数据,比如,版本之间启动速度变化,以及浏览器加载的性能提升范围等,由于概率事件,很难说性能真的上升或者下降了,因为一切都可以解释成这只是正态分布中的某一次可能值。
然而,还是可以引入一些数学上的方法的。不过需要用到大学学过的概率论。
一.抽象模型
1.其实很多场景能抽象为以下模型来坐量化:随机抽取100组数据,其中n1组数据通过检验,100-n1组不通过检验,计算一个99%的置信区间,其中均值测试结果为通过的概率。
已知这个模型,那我们需要什么呢,
(1)判断数据通过或者不通过的标准是什么。
- 因为我们其实是对比测试,我们不关心这个数据的具体值是多少,而是要知道他的一个变化,因此,我们可以引入两组测试各100组,假设叫A组(旧版本)跟B组(新版本)
那么我们可以把A组的均值mean_a跟方差var_a求出来,当作总体的均值跟方差。然后判断标准是B组的100个值里,每一个值如果在(mean_a-3*sqrt(var_a),mean_a+3*sqrt(var_a))内,则判断数据为通过检验,如果在区间外,则判断不通过检验。
(2)针对这100组数据做计算。
- 由1,我们得到了一个伯努利分布(n,p)作为判断标准,这个标准可以用来判断B组的100个数据。
- 因此由B组的伯努利分布的一些已知可以计算:
样本均值: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检验)
二.代码实现
先挖坑,日后填。
以上是关于测试数据精准对比的思考的主要内容,如果未能解决你的问题,请参考以下文章