A/B 测试设置
1️⃣ 目的与范围
确保每个 A/B 测试在编写任何代码之前都是有效、严谨且安全的。
- 防止"偷看"(peeking)
- 强制执行统计功效
- 阻止无效假设
2️⃣ 前置条件
必须具备:
- 明确的用户问题
- 可访问的分析数据源
- 大致估算的流量规模
假设质量检查清单
有效假设应包含:
- 观察或证据
- 单一、具体的变更
- 方向性预期
- 明确的目标受众
- 可衡量的成功标准
3️⃣ 假设锁定(硬门控)
在设计变体或指标之前,必须:
- 呈现最终假设
- 明确指定:
- 目标受众
- 主要指标
- 预期效果方向
- 最小可检测效应(MDE)
明确询问:
"这是我们要为此测试承诺的最终假设吗?"
在确认之前请勿继续。
4️⃣ 假设与有效性检查(强制)
明确列出以下假设:
- 流量稳定性
- 用户独立性
- 指标可靠性
- 随机化质量
- 外部因素(季节性、营销活动、发布)
如果假设薄弱或被违反:
- 警告用户
- 建议推迟或重新设计测试
5️⃣ 测试类型选择
选择最简单有效的测试:
- A/B Test – 单一变更,两个变体
- A/B/n Test – 多个变体,需要更高流量
- 多变量测试(MVT) – 交互效应,需要极高流量
- Split URL Test – 重大结构性变更
默认使用 A/B,除非有明确理由选择其他类型。
6️⃣ 指标定义
主要指标(强制)
- 用于评估成功的单一指标
- 直接与假设关联
- 上线前预定义并冻结
次要指标
- 提供上下文
- 解释结果发生的_原因_
- 不得覆盖主要指标
护栏指标
- 不得恶化的指标
- 用于防止有害的"胜利"
- 如果显著为负则触发测试停止
7️⃣ 样本量与时长
预先定义:
- 基准转化率
- MDE
- 显著性水平(通常为 95%)
- 统计功效(通常为 80%)
估算:
- 每个变体所需的样本量
- 预期测试时长
在没有现实的样本量估算之前请勿继续。
8️⃣ 执行就绪门控(硬停止)
只有当以下所有条件都满足时,才能继续实施:
- 假设已锁定
- 主要指标已冻结
- 样本量已计算
- 测试时长已定义
- 护栏指标已设置
- 追踪已验证
如果缺少任何项目,停止并解决它。
运行测试
测试期间
应该:
- 监控技术健康状况
- 记录外部因素
不应该:
- 因"看起来不错"的结果而提前停止
- 测试中途更改变体
- 添加新的流量来源
- 重新定义成功标准
分析结果
分析纪律
解读结果时:
- 不要推广到测试人群之外
- 不要声称超出测试变更范围的因果关系
- 不要覆盖护栏失败
- 区分统计显著性与业务判断
解读结果
| 结果 | 行动 |
|---|---|
| 显著正向 | 考虑发布 |
| 显著负向 | 拒绝变体,记录学习 |
| 无结论 | 考虑更多流量或更大幅度的变更 |
| 护栏失败 | 即使主要指标获胜也不要发布 |
文档与学习
测试记录(强制)
记录:
- 假设
- 变体
- 指标
- 样本量 vs 实际达成
- 结果
- 决策
- 学习
- 后续想法
将记录存储在共享、可搜索的位置,以避免重复失败。
拒绝条件(安全)
如果出现以下情况,拒绝继续:
- 基准转化率未知且无法估算
- 流量不足以检测 MDE
- 主要指标未定义
- 多个变量在无适当设计的情况下被更改
- 假设无法清晰陈述
解释原因并建议后续步骤。
核心原则(不可协商)
- 每个测试一个假设
- 一个主要指标
- 上线前承诺
- 禁止偷看
- 学习重于获胜
- 统计严谨优先
最终提醒
A/B 测试不是为了证明想法正确。 它是为了有信心地学习真相。
如果你想要匆忙、简化或"只是试试"—— 这就是放慢脚步并重新检查设计的信号。
使用时机
本技能适用于执行概述中描述的工作流或操作。
限制
- 仅当任务明确符合上述描述的范围时使用本技能。
- 不要将输出视为环境特定验证、测试或专家审查的替代品。
- 如果缺少所需的输入、权限、安全边界或成功标准,请停止并请求澄清。