mcpField
A
ab-test-setup

ab-test-setup

github.com/sickn33营销与增长48.7k813 次安装今天更新
代码仓库

关于 ab-test-setup

面向产品团队的实验规划技能,用于设计具有可衡量结果的随机测试。它检查假设、前提、样本需求、追踪和启动条件,并说明结果解读的边界。

主要功能

  1. 01锁定假设与决策标准
  2. 02检查有效性前提
  3. 03选择适合的测试类型
  4. 04定义指标与护栏
  5. 05估算样本量和测试时长
  6. 06启动前验证追踪

适用场景

  1. 01测试流量充足的产品改动
  2. 02规划 A/B 测试及停止规则
  3. 03检查实验启动准备情况
  4. 04记录结果与解读限制

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill ab-test-setup

安装后在 Claude Code 中输入/ab-test-setup确认已加载。

详细介绍

A/B 测试设置

1️⃣ 目的与范围

定义一个能够回答特定产品问题的实验,并在向用户暴露之前验证其假设。此流程本身无法保证有效性。

  • 记录停止规则
  • 在所述假设下估算样本需求
  • 使假设和决策标准可被审查

2️⃣ 前置条件

你必须具备:

  • 清晰的用户问题
  • 对分析数据源的访问权限
  • 大致估算的流量规模
假设质量检查清单

一个有效的假设包括:

  • 观察或证据
  • 单一、具体的变更
  • 方向性预期
  • 明确的受众
  • 可衡量的成功标准

3️⃣ 假设锁定(硬性关卡)

在设计变体或指标之前,你必须:

  • 呈现最终假设
  • 明确指定:
    • 目标受众
    • 主要指标
    • 预期效应方向
    • 最小可检测效应(MDE)

使用任务中已达成一致的假设。如果缺少对发布至关重要的选择,请呈现具体选择以供确认,同时继续独立分析。不要对已获授权的决策反复请求批准。


4️⃣ 假设与有效性检查(强制)

明确列出关于以下方面的假设:

  • 流量稳定性
  • 用户独立性
  • 指标可靠性
  • 随机化质量
  • 外部因素(季节性、营销活动、版本发布)

如果假设较弱或被违反:

  • 警告用户
  • 建议推迟或重新设计测试

5️⃣ 测试类型选择

选择最简单的有效测试:

  • A/B 测试 – 单一变更,两个变体
  • A/B/n 测试 – 多个变体,需要更高流量
  • 多变量测试(MVT) – 交互效应,需要极高流量
  • 拆分 URL 测试 – 重大结构性变更

默认使用 A/B,除非有明确的理由选择其他类型。


6️⃣ 指标定义

主要指标(强制)
  • 用于评估成功的单一指标
  • 直接与假设相关联
  • 在启动前预先定义并冻结
次要指标
  • 提供背景信息
  • 解释结果发生的_原因_
  • 不得覆盖主要指标
护栏指标
  • 不得劣化的指标
  • 用于防止有害的“胜利”
  • 如果显著为负则触发测试停止

7️⃣ 样本量与持续时间

预先定义:

  • 基线比率
  • MDE
  • 显著性水平 alpha(通常为 0.05,对应 95% 置信度)
  • 统计功效(通常为 80%)

估算:

  • 每个变体所需的样本量
  • 预期测试持续时间

没有现实的样本量估算,请勿继续。


追踪验证(关卡 8 之前必须完成)

在进入下方的执行就绪关卡之前,请运行此检查清单,使“追踪已验证”具有具体含义:

  1. 事件触发: 在预发布环境或调试页面上触发主要和次要指标所依赖的每个事件(注册、加入购物车、自定义事件),并确认它在该管道记录的延迟内到达;记录观察到的延迟。
  2. 变体归因: 验证变体分配 ID 附加到每个触发的事件——不仅仅是入口事件。使用分析工具的原始事件视图,对每个变体比较 5 个以上事件的样本。
  3. 去重: 确认用户重新加载页面不会导致事件被重复计数。使用稳定的事件/事务 ID,并记录跨客户端/服务端的去重;仅靠变体标签不是唯一的事件键。
  4. 样本随机化: 使用预先指定的统计检查和充分的记录,检查样本比率与配置分配之间的不匹配。对 100 条记录使用固定的 ±5% 区间不是有效的通用随机化测试。检查分配稳定性、单元独立性和缺失的曝光记录。
  5. 护栏指标管道: §6️⃣ 中定义的每个护栏指标必须在测试启动时拥有可用的仪表板或警报。

如果以上任何一项失败,请停止并在关卡 8 之前解决它。


8️⃣ 执行就绪门禁(硬性停止)

只有在以下全部成立时,你才可以进入实施:

  • 假设已锁定
  • 主要指标已冻结
  • 样本量已计算
  • 测试时长已定义
  • 护栏已设置
  • 埋点追踪已验证

如果缺少任何一项,请停止并解决它。


运行测试

测试期间

要做:

  • 监控技术健康状况
  • 记录外部因素

不要做:

  • 因为结果“看起来不错”就提前停止
  • 在测试中途更改变体
  • 添加新的流量来源
  • 重新定义成功标准

分析结果

分析纪律

在解读结果时:

  • 不要将结论推广到受测人群之外
  • 不要声称超出受测变更范围的因果关系
  • 不要无视护栏失败
  • 将统计显著性与业务判断分开
解读结果
结果行动
显著正向考虑全量发布
显著负向拒绝该变体,记录经验教训
不确定报告不确定性;使用预先指定的继续规则或设计新测试
护栏失败不要发布,即使主要指标胜出

文档与学习

测试记录(强制)

记录:

  • 假设
  • 变体
  • 指标
  • 样本量 vs 实际达成
  • 结果
  • 决策
  • 经验教训
  • 后续想法

将记录存储在共享、可搜索的位置,以避免重复失败。


拒绝条件(安全)

在以下情况下拒绝继续:

  • 基线率未知且无法估计
  • 流量不足以检测 MDE
  • 主要指标未定义
  • 在没有适当设计的情况下更改了多个变量
  • 假设无法清晰陈述

解释原因并建议后续步骤。


关键原则(不可妥协)

  • 每个测试一个假设
  • 一个主要指标
  • 启动前做出承诺
  • 不要偷看
  • 学习优先于获胜
  • 统计严谨性优先

何时使用

当产品变更拥有足够的合格流量进行随机化对比,并且有可衡量的结果时使用。对于低流量发布或定性探索,考虑使用可用性研究或描述性测量,而不是声称因果关系带来的提升。

样本量计算示例

对于一个说明性的二元指标,估计从 10% 到 11% 的变化(一个百分点,10% 相对提升)、50/50 分配、双侧 alpha 0.05 和 power 0.80 时,每个变体所需的样本量。这个 Python 3 大样本近似使用 Cohen's proportion effect size:

from math import asin, ceil, sqrt
from statistics import NormalDist

baseline, variant = 0.10, 0.11  # illustrative assumptions, not measured data
alpha, power = 0.05, 0.80
h = abs(2 * asin(sqrt(variant)) - 2 * asin(sqrt(baseline)))
z = NormalDist()
per_variant = ceil(2 * (z.inv_cdf(1 - alpha / 2) + z.inv_cdf(power)) ** 2 / h ** 2)
print(per_variant)

预期输出:在这些假设下,每个变体需要 14745 个观测值。

此计算假设独立单元、一个二元结果、固定时间范围且无多重性调整。它不适用于聚类或重复观测、序贯决策或连续收入指标。在将样本估计转化为日历时长之前,需要考虑合格流量、流失、结果延迟和抽样单元。相等假设率的效果量为零,并且没有有限样本可用于检测该差异。

完整示例

Observation: users abandon a long signup form.
Change: remove one optional field; unit: account; allocation: 50/50 and stable.
Primary metric: completed signup / eligible assigned accounts within 24 hours.
Guardrails: validation failures and support requests.
Before launch: estimate sample needs from baseline and MDE, verify exposure and
completion IDs, define analysis window and stopping rule.
Expected report: counts, absolute/relative effect, interval, data-quality checks,
guardrail results and a decision with its limits; never just “p < 0.05, ship”.

局限性

  • 聚类用户、溢出效应和重复观测可能使独立样本计算失效。
  • 序贯监控需要预先规划的序贯方法;固定时间范围的显著性并不授权反复偷看。
  • 尽管主要指标表现良好,埋点追踪缺口或样本比例不匹配仍可能使推断失效。
  • 此技能不会自动激活开关、发布变体或建立监管合规性。

评论

支持 Markdown