帮助中心
AB测试

AB测试,也会被称为对照实验。即将相同属性人群分为两组,让两组人分别使用同样功能的不同版本,来测试哪一个版本的收益最大。通常,对照实验可以为AB两组或ABn多组。这种对照实验方法在计算机软件流行前,就已经被很多其他行业使用。如医药行业中测试心里作用对恢复病情的重要性,会将一个组人服用没有效果的药物,另一组人服用真实的药物。

这种对照实验可涉及的场景非常的巨大,互联网行业对其更是依赖有加。而 Feature flags 的一个基因中带有的能力就是 ABn测试能力。使用 feature flags 实现一个 AB 测试的步骤如下:

1. 对 feature flag 设置不同的版本

2. 对人群进行分类,从一类属性相同的用户中分出两个数量相当的小组,将 feature flag 的不同版本等比分流到这两个小组。

3. 设置AB测试的指标,如点击率、付费率、平均访问时间等等。

4. 找到 feature flag 和一个指标,为其创建实验。

5. 开启实验,查看效果。

本文将以敏捷开关介绍一下上述步骤的实现方法

创建 feature flag 并设置不同的版本

如下图所示,我们建立了 feature flag "AB测试教学开关",并为其分配了三个版本:

  • 版本A
  • 版本B
  • 版本C

在初期,所有用户都使用版本A。

将用户分流使用不同的版本

我们从中选取一组用户,并且我们认为这组用户对所需要测试的内容没有太大的属性区别,从而导致测试结果误差过大。所以我们需要建立一个默认规则,找到这组用户,并将这组用户按照下图配置分流至不同版本。

我们在一开始按照90%,5%,5%的方式分流,是为了避免版本B和C会出现BUG而影响正常的使用,可以理解为AB测试前的灰度测试。

我们需要点击按钮 "A/B测试分流设置",使进行AB测试的计算的用户是等比分配的。

如下图所示,我们从上图的90%的版本A用户中抽取 5/90的部分用来做对照计算。

建立指标和实验

建立指标

如下图所示,进入"数据实验"页面的"Metrics"(指标)子板,点击按钮"添加 Metric",添加AB测试指标。

在弹出框内,我们填入指标信息。如下图所示,我们创建了一个自定义事件指标。这个指标将通过在程序中埋点的方式被捕捉。

建立实验

回到概览子板,点击"添加实验"按钮添加实验。

在弹出的看板中,我们选中上面建立的 feature flag,和我们刚刚建立的指标,并选中"版本A" 为基准版本(即版本B和C去参照和对比的版本)。点击确认按钮

在代码中集成 feature flag 并为指标埋点

以JavaScript SDK代码为例,对不同的版本进行分流控制。

let abTestFlag = flags.AB测试教学开关;
if(abTestFlag === '版本A'){    
    showVersionA()
}
else if(abTestFlag === '版本B'){    
    showVersionB()
}
if(abTestFlag === '版本A'){    
    showVersionC()
}

然后在需要捕捉事件的程序处添加 "order-convert" 事件的埋点代码,如下方是在后端 Java 项目中进行的埋点捕捉。

ffcClient.trackMetric(user, "order-convert");

具体的SDK使用和实现方法,可以参照SDK章节

开启实验

如下图所示,在实验列表中,找到对应的实验点击"查看开关"按钮。

点击后,我们将进入相关 feature flag 的"数据实验"页面子板,点击 "开始实验" 按钮,实验就将开启,并开始监测功能的使用情况和转化率。

一个 feature flag 可以和多个指标产生多个对照实验,且每个实验的用户都可以是分层、分组、正交的

查看报告

随着时间的变化,我们就可以在"数据实验"的子板中看到随着时间变化的实验报告了。

在数据不充足,或者对照差异不显著时,我们会收到如下图的提示

当数据充足,且差异明显时(如p值小于0.05),我们会收到哪个结果的占优的提示,如下图所示"版本C"胜出

最后更新于 2022/05/30
未能解决您的问题?请联系
评价此篇文档
有帮助
没帮助

请留下具体问题或建议

能够解决我的问题
我还有其他想说的
本篇目录