无论在哪种数据驱动环境下,A/B测试都是主要的工具之一。你可以想它为一个大笼子内的比赛。把你的卫冕冠军和其他一些挑战者都送进去,出来的就是胜利者。

当然,网上的比赛并不那么血腥,更需要的是统计方法,但基本原则是不变的:如果你不强制它们战斗到最后一刻,你怎么能知道谁将胜出?

A/B测试使你能同时比较同一网页多个不同版本,看哪一个能带来最好的结果,如提高点击率、粘合度,或是你选择的其他任何指标。

那么,到底什么是A/B测试呢?

A/B测试是进行测试的一种方式,你把各组随机分配到特定的单变量处理水平,把一个或多个测试组的表现同控制组相比较。我们分开来说。

首先,你决定做一个测试。也许你正在创建一个用户注册的网页程序,并且你想在你的着陆页(注册首页)做测试。你想看你是否能提高用户注册的百分比。

你的着陆页的转化率为:

转化率=注册来访者人数/所有来访者人数

举个例子,如果今天有100个人访问你的着陆页,其中的20个人注册了,那么你的转化率为20%。在其他所有东西都一样的情况下,有更高转化率的着陆页更好1。

建立处理水平

一旦你清楚想测试什么,你就要为测试建立不同的处理水平。其中一个处理水平为控制条件,也就是你当前的着陆页。其他的处理水平是在当前的着陆页做一些改变。这些是值得测试的角度:

布局。移动注册表的位置。添加或移除字段。

标题。添加标题。给标题不同的颜色。改变文本。

文本。改变大小、颜色、位置和任何你页面上的文字内容。

你想有多少个处理水平都可以,但较少的处理水平可以让你更快获得较好的数据。我很少进行多于四个处理水平的A/B测试。

随机方式控制

你不能随便的在周五上一个着陆页,周六上另一个着陆页,然后比较它们的转化率 — 没有理由认为周五来访者和周六来访者的转化率是相同的。事实上,它们极可能不同。

A/B测试通过同时进行测试并随机地给每个来访者分配一个处理水平来解决这个问题。这种方式控制了任何受时间影响的变量,并且按比例把人群分配到各处理水平中去。

我们来看一个样例数据集。

一个例子

假设我们有一项服务叫“Foobar”并且我们想在着陆页进行一次测试。我们的目标是至少提高10%的转化率。当一个新的来访者到达着陆页时,我们把他们随机分配到三个处理水平中的一个:控制水平、A处理水平、B处理水平。

让我们再假设处理水平与标题文本有关。例如,控制条件的标题文本可能是:“Foobar是个很好的服务!在这里注册。”另一处理水平可能是:“Foobar让你轻易地与国内的亲人保持联系。”

你进行了几天的测试,得到如下数据:
A / B测试样例数据 — Foobar服务 
处理水平 总来访者 注册的来访者 转换率 
控制水平
1,406
356
25.32%
A处理水平
1,488
372
25.67%
B处理水平
1,392
425

30.53%

从上面的数据你可以概括出B处理水平最好,但是你要小心 — 如果转化率较接近或你的样本量较小时,你不能得出哪种处理水平最好的结论。例如,你能确凿地说A处理水平比控制水平好吗,还是这只是偶然?

样本量大小有影响

一个处理水平的样本量为接受这个处理水平来访者的数量。样本量越大,你越能肯定样本的表现反应了此处理水平真正的表现。

例如,上面的数据变成下表的样子会怎样?
A/B测试样例数据 — Foobar服务 
处理水平 总来访者 注册的来访者 转换率 
控制水平
10
3
30.00%
A处理水平
12
6
50.00%
B处理水平
9
4

44.44%

现在哪个处理水平最好?你可能倾向于认为A处理水平最好,因为它的转化率最好。但这类似于说你认为某一枚硬币分布不均,因为你掷了它三次结果都正面朝上。

那种情况不大可能发生,但并不是没有可能。样本量越大,你越确定你观察到的效应为处理水平的真正差异而不仅仅是偶然。事实上,这些结果没有一个在统计上是显著的,也就是说它们由偶然导致或由处理水平间真正差异导致的可能性相等。

既然样本量是对每个处理水平而言的,可以有两种主要的方式来加大它:减少处理水平或加长测试进行的时间。

接下来是什么?

关于A/B测试还有很多可说的。我将在接下来星期中写这几个主题:

实施

我们清楚A/B测试是什么后,我们如何去实施?不同的产品需要不同的实施吗?

统计显著性

我们从A/B测试得到结果后,我们如何量化确信的程度?我们进行多久测试后才能确定得到的结果?

假设检验

如果我们要测试更复杂的行为怎么办?如果我们得到的数据不能转化为简单的百分数怎么办?

最佳实践

什么值得测试?你如何在测试的背景下平衡短期目标和长期目标?