流量过小如何做A/B测试

article/2025/10/24 2:41:13

AB测试对于产品和运营优化的重要性有目共睹。为了能更快的得到试验结果,试验流量越大越好。但是当流量不够的时候怎么办呢?小流量AB测试能不能做?能!下面有多个节约流量的方法。

一、消除异常数据的影响

例如:当点击量作为指标时,有时会看到少量设备贡献了数万的点击。

这些设备可能是出了bug处于异常状态,也可能是在运行自动化测试,总之不会是正常的业务数据。如果将这些数据计入统计结果,将会对结果的准确性产生很大的影响。严重的情况只能重做试验,相当于本次试验流量全浪费掉了。

所以极端用户的数据不进行统计,实践中让点击量最大的1%用户数据不参与计算

二、正确统计进入试验的用户数

转化漏斗中的每个步骤都可以进行AB测试。

假设在转化漏斗的第3层的页面进行AB测试,在统计试验UV的时候,比较科学的方法是将进入到该页面的用户统计为试验UV,而不是所有访客。

如果没进入该页面的用户也统计为试验UV,则会稀释试验数据。下面举个例子看一下稀释的效果:
AB测试需要样本量的经验公式为

在这里插入图片描述
在这里插入图片描述
δ是希望检测到的最小变化,p为转化率,σ是样本的标准差。

下方计算所需样本量,参考我的另一篇博客https://blog.csdn.net/weixin_41744624/article/details/109840263

假设到达该页面的访客为10%,该页面转化率为50%,如果想检测出10%的提升(50%提升到55%),根据公式计算大概需要1600试验样本,对应总访客16000
在这里插入图片描述

如果把所有访客作为试验样本参与统计,则该种算法下页面转化率为5%(只有原来的十分之一),同样想检测出10%的提升(5%提升到5.5%),则需要30400试验样本,对应总访客也是30400
在这里插入图片描述

这个例子里节约了大概1/2的流量,如果试验页面的转化率更高,前面漏斗的转化率更低,节约效果会更明显。

三、点击转化率比点击数量更容易获得统计显著的结果

有些场景下,如果认为用户多次点击和单次的点击差别并不大(比如下载,注册,看广告等),可以观察点击转化率指标的统计结果。转化率是去重的,用户只要点击过就计算为1,否则计算为0。同样的试验样本,点击量的标准差是一定大于转化率的。

仍然用上面提到的公式举例:

假设用户点击量的分布为0次20%,1次20%,2次20%,3次20%,4次20%。

则点击量均值为2方差为2,想检测出10%的提升(0.1 * 2)需要800样本量。

根据前面的样本量公式:n=16*(2)/(0.1 * 2 * 0.1 *2)=800

转化率为80%,方差为0.16,想检测出10%的提升(80%*10%)需要400样本量。
在这里插入图片描述

这个例子里节约了1/2的样本量,如果点击量的分布更加分散,节约效果会更明显。

四、原始版本的流量不要浪费掉

在有些情况下,为了稳妥起见往往只会让一小部分流量(比如总用户的1%)看到试验版本,99%的用户看到原始版本,如果统计试验数据的时候,看到原始版本的用户只挑出和看到试验版本用户数相同的人数(总用户的1%)来参与统计,则另外98%的流量相当于浪费了,他们实际上是对试验有帮助的。

当试验版本和原始版本样本数不相同时,有一个计算等效样本数的公式:

N =1 / (1/N_control + 1/N_experimnet)

  • 当N_control=N_experimnet时:计算得出N=N_experimnet/2
  • 如果原始版本(即control版本)的流量全部参与统计,则N_control >> N_experimne:计算得出N=N_experimnet

等效样本数量翻倍了,相当于又节约了1/2的流量。

五、善用分层试验

想优化的地方太多了,同时跑多个试验是常态,是不是流量就不够用了?如果试验之间互相不会干扰,可以考虑分层试验。

分层试验即允许同一个用户同时参加多个试验,通过流量分配的随机算法保证试验结果的代表性。原来流量只能做一个试验,现在不相关的试验可以一起做了,效率成倍增加。

六、同层试验共用原始版本数据

同层的多个试验,大家的原始版本是完全相同的,分开各自统计显然浪费了数据。

以4个试验为例:

如果每个试验有独立的原始版本和试验版本,流量分配都是总流量的1/8,则根据上面提到的等效样本量公式,每个试验的等效样本数为总流量的n=1/[1/(1/8) + 1/(1/8) ]=1/16。

如果4个试验的原始版本合并为公共的原始版本(占总流量1/2),则每个试验的等效样本数为总流量的n=1/[1/(1/2) + 1/(1/8) ]=1/10。等效样本量提升了60%。

如果多个AB测试试验优化的是同一指标,还可以进一步的对公共原始版本的流量进行微调:

令x为试验数量:
则 (Ncontrol/Nexperimnet)2 = x 时,等效样本数量达到最大值。x=4代入得到原始版本占总流量1/3,每个试验版本占总流量1/6,最终每个试验的等效样本数为总流量的n=1/[1/(1/3) + 1/(1/6) ]=1/9。等效样本量又提升了11%。


http://chatgpt.dhexx.cn/article/nqBGQPZp.shtml

相关文章

无线专项测试--流量测试(下)

这篇文章主要是想介绍下流量专项测试的另外一种方法tcpdumpWireshark抓包测试法。 在后台系统的开发和测试中,借助工具抓取网络包来进行网络层的分析是一种非常常用的技术手段,常用的抓包工具有Windows下的Wireshark工具和Linux下的tcpdump。由于android…

android性能测试 app 实时流量获取

下面介绍几种获取app流量的统计规则: 分析方法D ①如何获取uid? 1.先获取进程pid (adb shell ps |findstr 包名) 2.进入到proc/pid/status 文件中 C:\Users\chenhui>adb shell PD1816:/ $ cd proc/ PD1816:/proc $ cd 20814 PD1816:/proc/20814 $ cd status /s…

安卓app测试之流量监控

一、查看PID 通过ps命令查看:ps | grep packageName 案例:adb shell "ps | grep tv.danmaku.bili" adb shell "ps | grep tv.danmaku.bili$" 二、查看UID 1、通过查看packages.list adb shell cat /data/system/packages.list |…

Android的app性能测试--流量

测试场景:在手机上面点击想要测试的界面或者一组场景,然后查看用了多少流量。 方法一:使用流量测试的工具:1.tcpdump抓包 2 wireshark进行分析 tcpdump介绍:tcpdump是一款用于截取网络分组,并输出分组内容的…

APP性能测试:启动时间、CPU、耗电量、流量、内存

app的启动与停止 启动app的命令:adb shell am start -n packageName/activity 查看被测应用app的包名和活动名activity的命令: adb shell "dumpsys window | grep mCurrentFocus" 这里以调出系统通讯录为例。 查看app启动时间命令&#x…

Charles 流量配置(弱网测试)、断点调试

一、流量配置 流量配置主要是用来检测软件(APP)在不同的网络环境下的一个表现,例如出现丢包闪退等情况. 流量配置主要有以下四步: 在 Charles 窗口中点击菜单 “Proxy” ,选择 "Throttle Setting" 进行网络…

APP测试内容 -- 流量测试常见测试方法

APP测试内容 -- 流量测试常见测试方法 大部分摘自:https://blog.csdn.net/baidu_21833433/article/details/63255182#commentBox 一、Android自带统计功能(统计流量总数值) proc/uid_stat/{UID}/tcp_snd和tcp_rcv UID是每个app安装时候分配的…

app性能测试:(三)流量监控

app性能测试:(三)流量监控 下面对流量监控进行分析: 获取进程ID指令 adb shell “ps | grep 包名”获取进程ID流量adb shell cat /proc/pid/net/dev pid换成第一步获取到的进程ID receive是指当前进程接收的数据,tra…

APP的流量测试(android和iOS的流量测试)

1、准备 性能测试工具—fiddler、电脑、Google浏览器、手机、无线(手机需要和电脑在一个网段里) 2、知识点 1)掌握fiddler工具安装(这个相对比较简单,大家百度进行安装即可) 也可以访问这个网页进行下载…

自动化测试之流量回放技术

流量回放近几年一直是大家热衷讨论的话题,具体的效果智者见智。文章作者也是在技术工程领域有丰富的实践经验,推荐一看。 本篇背景是另外一同事朋友,最近在利用流量回放技术应用在服务端接口自动化测试方面,还在各部门全力推进阶段…

数据流测试

一、基本概念 定义节点 -- DEF(v,n) 使用节点 -- USE(v,n) 谓词使用 -- P-use 计算使用 -- C-use 定义-使用路径 -- du-path 定义-清除路径 -- dc-path 全定义覆盖准则:测试路径需要覆盖所有定义点和任意一个使用点,用dc-path扩展…

app性能测试--流量

测试场景:在手机上面点击想要测试的界面或者一组场景,然后查看用了多少流量。 方法一:使用流量测试的工具:1.tcpdump抓包 2 wireshark进行分析 tcpdump介绍:tcpdump是一款用于截取网络分组,并输出分组内容的…

APP性能测试——流量测试(二)

续上文:APP性能测试--流量测试(一),上篇文章介绍了如何通过代理工具抓网络请求,通过代理抓包我们可以抓到http和https请求的详细信息,由于代理我们需要连接wifi,很难抓取到4G网络下的流量值;今天介绍一下如…

App性能测试之流量监控

下面对流量监控进行分析: 获取进程ID指令adb shell “ps | grep 包名” 获取进程ID流量adb shell cat /proc/pid/net/dev pid换成第一步获取到的进程ID receive是指当前进程接收的数据,transmit是指当前进程发出请求的数据,流量是这两者之和…

性能测试——流量测试

原文资料: http://testerhome.com/topics/2643 http://testerhome.com/topics/2068 ------------------- 流量篇 最近在研究IOS 的性能测试,时间太紧没来得及发帖,加通宵挤出时间给大家分享一点东西,希望对大家有所帮助&#xff0…

App 流量常见测试方法

方法一:Android系统自带统计功能(总体流量数值) Proc/uid_stat/{UID}/tcp_snd和tcp_rcv UID是每个app安装时候分配的唯一编号用于识别该app. tcp_snd:表示发送数据累计大小,单位是字节 tcp_rcv:表示接收…

APP专项测试:流量测试

手机的电量与流量测试主要为了站在用户角度思考,毕竟电量、流量消耗毕竟大,会影响客户的使用感受。手机端电量使用率是和CPU使用率成正比的。 由于这个表现没有毕竟详细的规定,只能给出一个通用的范围,CPU使用率不能超过10%以上&…

APP性能测试——流量测试(一)

写在前面: 第一期主要介绍如何通过anyproxy工具进行流量测试,二期介绍如何通过adb 命令实时监控wifi、4G下的上行以及下行流量值。 app的流量测试是性能测试中重要的指标,也是用户体验的重要部分,目前了解到的有三种方法&#xff…

软件测试简历包装我们会了,但测试人的自我“包装”呢?HR自我介绍包装小技巧【建议收藏】

小编热衷于收集整理资源,记录踩坑到爬坑的过程。希望能把自己所学,实际工作中使用的技术、学习方法、心得及踩过的一些坑,记录下来。也希望想做软件测试的你一样,通过我的分享可以少走一些弯路,可以形成一套自己的方法…

软件测试人员应该如何介绍自己测试过的项目

测试人员在找工作的过程中,通常有一个问题是很难绕开的。就是要如何向别人介绍自己之前做过的项目。下面我们就这个问题简单的做一些分析。 要解决这个问题,大体上可以分为如下几个步骤: 1、对项目进行基本介绍 2、说明自己负责测试的模块 …