更新时间:2026年8月16日
A/B测试是一种通过随机对照实验验证产品改动是否有效的方法,广泛应用于网站、App、广告投放和产品增长。
例如,一个着陆页目前使用“注册”作为按钮文案,注册率为5%。团队认为改成“免费注册”可能提高注册率。
可以将用户随机分成两组:
- 对照组A:按钮文案为“注册”;
- 实验组B:按钮文案为“免费注册”。
如果两组用户除了按钮文案外,其他条件尽量一致,就可以比较注册率差异,并判断文案修改是否产生了真实影响。
不过,A/B测试并不是简单地“上线两个版本,看看哪个数据高”。一个可靠的实验至少需要完成:
发现问题 → 提出假设 → 确定指标 → 计算样本量 → 随机分流 → 验证实验数据 → 分析结果 → 决定是否发布
第一步:提出可以验证的假设
A/B测试通常从业务问题开始,一个完整的实验假设应包括:
- 当前存在什么问题;
- 准备修改什么;
- 为什么这个修改可能有效;
- 预计影响哪个指标;
- 预期提升幅度是多少。
例如:
当前着陆页注册率为5%。我们认为“免费注册”比“注册”更能降低用户的决策压力,因此预计将注册率至少提高到6%。
这个假设包含:
| 项目 | 内容 |
|---|---|
| 当前问题 | 注册率只有5% |
| 实验改动 | “注册”改为“免费注册” |
| 作用机制 | 强调免费,降低用户顾虑 |
| 关键指标 | 注册率 |
| 最小目标 | 从5%提高到6% |
AB测试的第一步是分析业务数据,确定当前最关键的改进点,提出优化改进的假设。
并不是所有产品改动都需要经过A/B测试,以下情况通常不适合等待完整实验结果:
- 严重Bug、安全漏洞或合规问题;
- 已经影响支付、登录等核心流程的故障;
- 法律、平台政策或监管要求必须实施的修改;
- 流量过低,无法在合理时间内获得足够样本;
- 改动会影响所有用户,无法稳定地划分实验组;
- 两个版本之间可能发生明显的数据污染;
- 改动结果不可逆,风险无法控制。
竞争对手已经采用某个功能,也不能直接证明该功能适合你的用户。除非属于必须快速跟进的业务变化,否则仍建议通过数据、用户研究或小范围实验验证。
第二步:确定实验指标
启动实验前,需要先确定用什么指标判断结果。
不要等实验结束后再从几十个指标中寻找“显著提升”的指标,否则很容易挑中偶然波动。
实验指标通常分为三类。
主要指标
主要指标用于决定实验是否成功,一般只设置一个。
本例中的主要指标是:注册率 = 完成注册的用户数 ÷ 进入实验的用户数
选择主要指标时,需要明确指标名称、分子和分母、用户级还是会话级、统计窗口、是否去重、事件触发条件。
辅助指标
辅助指标用于解释主要指标为什么变化。
例如:注册按钮点击率、表单开始率、表单完成率、表单错误率、页面退出率。
辅助指标不应过多。通常选择3~5个与实验机制直接相关的指标即可。
护栏指标
护栏指标用于防止实验在改善局部指标的同时损害整体业务。
例如:付费转化率、退款率、客服投诉率。
假设“免费注册”将注册率从5%提高到6%,但注册用户的付费率明显下降,这个版本未必值得全面发布。
统计显著只说明差异不太可能完全由随机波动造成,不代表这个变化一定有商业价值。
第三步:设计实验版本
最简单的A/B测试包含一个对照组和一个实验组:
| 组别 | 按钮文案 |
|---|---|
| A:对照组 | 注册 |
| B:实验组 | 免费注册 |
为了判断结果是否来自按钮文案,两组之间应尽量只改变这一项。
第四步:确定随机分流单位
实验分流可以按不同对象进行:用户、设备、会话、账号、门店、城市、广告活动。
网站和App实验通常优先按用户或账号分流,并保证同一用户持续看到同一个版本。
如果同一用户第一次看到A版本,第二次又看到B版本,会导致:
- 用户体验不一致;
- 两组数据相互污染;
- 新奇效应更难判断;
- 转化无法稳定归因。
登录产品可以使用账号ID分流;匿名网站通常使用第一方Cookie或设备标识。跨设备场景则需要考虑同一个人可能进入不同实验组的问题。
分流和分层有什么区别?
当企业同时运行多个实验时,通常需要实验分层。
互斥实验
同一用户只能进入其中一个实验。
适合:
- 两个实验修改同一个页面元素;
- 两个实验可能互相影响;
- 需要避免实验之间发生交互。
正交或分层实验
同一用户可以同时进入多个相互独立的实验。
例如:
- 实验一修改首页按钮;
- 实验二调整搜索结果排序;
- 实验三测试结算页提示。
只有在这些实验不会明显互相影响时,才适合并行运行。
“同时参加多个实验”并不一定提高效率。如果实验之间存在交互,结果会变得难以解释。
第五步:计算最小样本量
在做AB测试之前,还需要确定足够的样本量,以便确定活动在评估结果之前应运行的时间。
样本量主要取决于:基准转化率;MDE(最小可检测效果);显著性水平;统计功效;实验版本数量;流量分配比例;指标波动程度。
通常是根据AB测试计算所需的最小样本量,最小总样本量与置信度(默认95%)、统计功效(默认80%,通常需要80%以上)和核心指标相关,比如现在的注册率是5%,要提高到6%,至少需要多少样本呢?
可以用Adobe Target的Sample Size Calculator去计算:
注意:转化率越低,检测到相同幅度提升所需样本越多
第六步:估算实验时间
实验时间可以先用下面的方式估算:
测试时间=最小总样本量/每天可获得样本量的取整。
每个实验组最小总样本是8155,每天可获取样本量是2000,那么测试时间=8155/2000*2=8.155,上图的中的Days to Complete Test就是测试时间,所以测试时间需要9天。
最小总样本量和测试时间是负相关,需要平衡好两者的关系,一般是测试时间越短越好,但要考虑到:
- 周内效应:建议测试是最少是7天,包含完整的一周,消除周期性波动的影响,国内很多互联网公司是用7天作为一个测试周期,如果可能,按14天作为一个测试周期,谷歌优化工具Optimize是建议14天作为一个测试周期
- 新奇效应:实验新上线可能会导致新用户好奇,老用户的排斥,导致数据影响,可能需要更长的时间,或划分新旧用户分别看数据。(UI变化的AB测试要着重考虑这个)
第七步:实施前检查数据质量
实验正式运行前,建议先检查:
- A、B组是否按照预期比例分流;
- 同一用户是否始终进入同一组;
- 两组页面是否正常显示;
- 关键事件是否重复或遗漏;
- 实验参数是否发送到分析平台;
- 主要指标的分子和分母是否正确;
- 页面速度是否因实验代码而下降;
- 机器人和内部员工流量是否需要排除。
检查SRM
SRM(Sample Ratio Mismatch,样本比例不匹配)表示实际进入各实验组的用户比例与预设比例存在异常差异。
例如,实验计划50/50分流:
A组:60%
B组:40%
- 分流逻辑错误;
- 某个版本加载失败;
- 埋点缺失;
- 用户被重复计算;
- 特定浏览器无法进入某一版本;
- 过滤规则不一致。
SRM通常意味着随机化或数据收集存在问题。在解决问题之前,不应直接比较两组的转化率。
第八步:运行实验时不要随意停止
传统固定样本A/B测试最常见的错误,是每天查看结果,一旦出现95%显著性就立即停止。
这种做法会增加假阳性概率。
固定周期实验应在开始前计算样本量,并等待达到预设样本量后再做最终判断。
只有使用专门的序贯检验或支持持续监控的统计引擎时,才可以按照相应规则提前停止实验。
因此,实验方案中应提前写明:计划样本量、最短运行时间、最长运行时间、显著性水平、提前停止规则、异常情况下的终止条件。
第九步:分析实验结果
不同指标需要使用不同统计方法。
| 指标类型 | 示例 | 常见分析方法 |
|---|---|---|
| 二元转化 | 注册、购买、点击 | 两比例Z检验、卡方检验 |
| 小样本二元数据 | 低频购买、稀有事件 | Fisher精确检验 |
| 连续指标 | 收入、时长、订单金额 | Welch’s t检验 |
| 明显偏态数据 | 收入、长尾时长 | Bootstrap、Mann–Whitney U |
| 计数指标 | 订单数、事件次数 | Poisson或负二项模型 |
分析时不要只看P值,还应同时查看A、B组指标值、绝对差异、相对提升、置信区间、实际样本量、护栏指标、SRM和实验运行时间。
例如:
A组注册率:5.0%
B组注册率:5.8%
相对提升:16%
95%置信区间:-0.1%~1.7%
即使B组表面上更高,只要置信区间仍包含0,就不能排除真实效果为零或负面的可能。
统计不显著不等于表示当前数据不足以证明差异,此时不能因为结果不理想就不断延长实验。
应先检查:
- 是否已经达到预设样本量;
- 是否达到最长实验时间;
- 实验是否存在SRM或埋点问题;
- 实际差异是否小于MDE;
- 置信区间是否仍然很宽;
- 假设和改动是否足够强。
如果已经达到计划样本量但仍不显著,通常应将结果记录为“未发现足够证据证明实验组更好”,然后结束实验。
后续可以:
- 提出更强的假设;
- 增大版本之间的差异;
- 改进目标人群;
- 重新选择主要指标;
- 设计新的独立实验。
不要把同一次实验无限延长,直到出现想要的结果。
第十步:根据业务价值决定是否发布
实验结束后,常见结论包括:
实验组胜出
满足以下条件时,可以考虑发布:
- 主要指标达到统计要求;
- 实际提升具有业务价值;
- 护栏指标没有明显恶化;
- 数据质量检查通过;
- 技术和运营成本可以接受。
即使实验组胜出,也可以先通过灰度发布逐步扩大流量,而不是直接覆盖100%用户。
对照组胜出
如果实验组显著更差,应维持原版本,并分析假设为什么没有成立。
失败的实验仍然有价值,因为它排除了一个看似合理但实际无效的方案。
差异不显著
如果达到预设样本量后仍不显著,应记录为没有足够证据证明实验组优于对照组。
是否仍然发布,需要结合开发和维护成本、用户体验、品牌一致性、技术风险、未来产品方向。
不显著并不一定意味着绝对不能发布,但不能把它描述为实验胜利。
常见问题
流量少还能不能做A/B测试?
如果流量较少,可以:
- 测试幅度更大的改动;
- 选择更高频的上游指标;
- 延长实验周期,但提前设定上限;
- 聚焦高价值页面或用户;
- 使用用户访谈、可用性测试等定性研究;
- 汇总多个相似页面,但确保用户和场景可比。
A/B测试与灰度发布有什么区别?
A/B测试和灰度发布的目的不同。
| 对比项目 | A/B测试 | 灰度发布 |
|---|---|---|
| 主要目的 | 比较两个版本的效果 | 控制新版本发布风险 |
| 是否需要对照组 | 通常需要 | 不一定 |
| 是否随机分流 | 通常需要 | 可以按比例、地区或账号发布 |
| 主要关注 | 因果效果 | 稳定性和风险 |
| 最终结果 | 选择更有效的版本 | 逐步扩大到全部用户 |
常见做法是:
A/B测试验证效果 → 灰度发布验证稳定性 → 逐步扩大流量 → 全量发布
如何选择A/B测试工具?
可根据团队规模和实验对象选择。
网站和营销页面可以选择Adobe Target,Optimizely,VWO, AB Tasty,Kameleoon。
产品功能和App实验可以选择Optimizely Feature Experimentation,LaunchDarkly,Statsig,Firebase A/B Testing;。

