快捷搜索:  汽车  科技

软件测试技术趋势:从案例实战看AB Test系统设计及其原理

软件测试技术趋势:从案例实战看AB Test系统设计及其原理P2=(0.086 0.092 0.091 …… 0.087 0.088 0.089) / 14=0.089p1=(0.078 0.084 0.075 …… 0.081 0.075 0.082) / 14=0.081P之计算方式:【双侧检验】P值=(1-NORMSDIST(Z(实际)))*2,例如:(1-NORMSDIST(1.96))*2=0.024997895*2=0.05【单侧检验】P值=1-NORMSDIST(Z(实际)),例如:1-NORMSDIST(1.96)=0.024997895=0.025。通过一段时间的实验,各实验组人数为方案A:n1=18953,方案B:n2=18879,点击率数据得到如下:根据历史数据计算出支付按钮点击率均值p:

2. 得出实验结果

1)方法一

将上一步得到的Z值与α对应的Z值比较,如果Z(实际) >= Z(1- α) 则拒绝原假设,可通过Excel函数计算。

  • 【双侧检验】NORMSINV(1-α/2)。例如:NORMSINV(1-0.05/2)=1.959963985
  • 【单侧检验】NORMSINV(1-α)。例如:NORMSINV(1-0.05)=1.644853627

2)方法二

根据上一步得到的Z值计算出P值,与显著性水平α比较,如果P < α 则拒绝原假设,若两者相等,可加大样本量后再验证。

P之计算方式:【双侧检验】P值=(1-NORMSDIST(Z(实际)))*2,例如:(1-NORMSDIST(1.96))*2=0.024997895*2=0.05【单侧检验】P值=1-NORMSDIST(Z(实际)),例如:1-NORMSDIST(1.96)=0.024997895=0.025。

3. 案例时间

通过一段时间的实验,各实验组人数为方案A:n1=18953,方案B:n2=18879,点击率数据得到如下:

根据历史数据计算出支付按钮点击率均值p:

p1=(0.078 0.084 0.075 …… 0.081 0.075 0.082) / 14=0.081

P2=(0.086 0.092 0.091 …… 0.087 0.088 0.089) / 14=0.089

1)计算Z值

2)计算P值

P=1-NORMSDIST(Z(实际))= 1-NORMSDIST(2.789943083)= 0.002635865

3)得出结论

P值0.002635865远小于显著性水平0.05,说明在当前的数据表现下,原假设几乎不可能发生,拒绝原假设,认为方案B是优于方案A的。

4)计算置信区间

显然我们再做一次实验的话方案B的支付按钮点击率均值不一定还是0.089,有可能会上下波动,那么这个波动范围是多少呢,我们可以由样本统计量构成的总体参数计算出估计区间。计算公式如下:

标准误是描述样本均数的抽样误差,样本的标准误差为(n为样本量):

样本均值为p,样本置信区间为:

方案B的均值为0.089,方差为0.081079,显著性水平为5%,样本量为18879,则方案B的标准误为:

软件测试技术趋势:从案例实战看AB Test系统设计及其原理(1)

可计算出方案B的置信区间为:

这意味着,将方案B应用到总体用户,支付按钮点击率有95%的概率落到[0.085 0.093]这个区间。

五、abtest系统核心功能架构图

经过上面的分析,我们已经知道了A/B Test的完整流程。

一个产品需要测试的点往往是非常多的,如果每次实验都要像上面那样人工走一遍显然效率是非常低的,A/B Test又是近年兴起的增长黑客的秘密武器,需要进行快速迭代快速验证,所以将以上流程自动化是非常有必要的。

下面我们就来看看A/B Test系统需要哪些模块,各模块之间是怎么配合的。

软件测试技术趋势:从案例实战看AB Test系统设计及其原理(2)

1. 配置模块

  1. 配置实验名称、版本等信息;
  2. 选择实验指标,并从数据仓库获取所有实验的指标配置,若有当前在运行的实验与本次实验选择指标一致,则自动化选择该实验为互斥实验;
  3. 选择实验对象,如圈选进行过充值的用户进行实验;
  4. 根据配置的指标及统计参数,计算出需要多少用户量,根据选择的实验对象,从数仓中同步选择的实验对象每天有多少该实验对象用户,计算出需要多少天才能达到最小样本量,并自动化推荐实验时长。

2. 预警模块

若实验快到期,或者实验样本量与预期的出入较大,则向业务方预警及时进行调整。

3. 分流模块

实验配置好并上线后,用户访问APP时,向该模块该用户对应的实验配置信息,分流模块根据现有正运行的实验配置,计算出该用户属于哪些实验,进行互斥处理后返回对应最终实验的版本,客户端展示对应的实验版本。

4. 分析模块

  1. 从数据仓库中读取实验的指标数据、样本量数据、其他辅助指标数据,进行分析;
  2. 针对每天新进实验组的用户数据,进行同期群分析,观察每天新增实验用户的数据波动情况,常见应用于留存分析。

本文由 @不语 原创发布于人人都是产品经理,未经许可,禁止转载

题图来自 Unsplash,基于 CC0 协议

猜您喜欢: