您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件测试技术 > 其他相关 > 正文

从零开始学AB测试:基础篇

发表于:2020-06-04 作者:黑客悟理 来源:博客园

什么是AB测试?

通俗点理解,AB测试就是比较两个东西好坏的一套方法,这种A和B的比较在我们的生活和人生中非常常见,所以不难理解。具体到AB测试这个概念,它和我们比较哪个梨更大、比较哪个美女更漂亮、比较哪个工作更好之间有什么区别吗? 区别其实非常明显,从以下几个方面不难看出来:

• 领域不同:AB测试的概念是在互联网中被提出来的,所以它有特定的应用领域。

• 标准不同:AB测试需要比较产品的两个不同版本之间的优劣,但是评判要交给用户,不像我们生活中遇到的AB比较,基本都可以“自己拿主意”。

正是因为标准在“用户爸爸”那里,所以这个看起来很简单的AB比较就变得异常复杂。在我这个理科男眼里,凡是跟人有关的东西都更复杂,何况和千千万万人有关的产品。因此,为了比较A和B两个不同版本产品的优劣,AB测试这一套系统的方法被发明出来了。

AB测试

上图是AB测试的一个直观解释。我们会随机给不同的人群提供两个不同版本的产品,然后通过收集用户反馈的数据进行统计分析,决定出哪个版本的产品更好。相信我们每个人都当过AB测试的小白鼠,细心的你不难在使用微信、抖音、高德、美团这些APP时发现一些端倪。

维基百科上给AB测试下了一个定义:

A/B testing is a way to compare two versions of a single variable, typically by testing a subject's response to variant A against variant B, and determining which of the two variants is more effective.

在我看来这跟啥也没说差不多,就是我上面“通俗理解”的翻译版本。AB测试属于那种一听就懂,一看就明白,一做就抓瞎的事。所以定义和概念不重要,实践才重要。幸运的是,前辈们已经帮我们总结了非常多的经验教训,而我作为知识的搬砖工,将会用几篇文章来和大家一起从零开始学习AB测试。

• 互联网公民第一守则:不要重复造轮子。

• 互联网公民第二守则:参照上一条。

为什么要做AB测试?

AB测试虽然思想简单但是非常有效,看了如下的几个好处你就明白为什么一定要做AB测试了:

• 如果我们人工针对部分用户做调研,很难消除一些外部因素的影响,比如交通、天气、节日,而AB测试可以通过随机分配和对照的方式,有效消除这些影响。

• 如果我们听取专家或研究机构的建议,众所周知,他们很可能出错。用户行为是个很复杂的事,具有潜在性,很多时候用户自己都不知道自己怎么想的,想要什么。

• 让数据说话,而不是听老板的

总之,AB测试可以帮助我们消除主观因素的影响,尽量做出更理性,更符合实际的决策。

AB测试的步骤

在此引用一本书里的图片,AB测试的基本步骤如下:

翻译过来大致如下:

• 创建假设:明确要测试的目标。

• 分析并具体化假设:目标一定要具体化,比如将用户点击率提升1个百分点。

• 定义评估指标:如何对你关心的指标量化?

• 决定要做实验的平台:网页端?移动端?安卓还是IOS?

• 技术实现:交给码农

• 结果分析

• 消除干扰:不要以为有了结果就可以下结论了,后面会教大家躲坑大法

• 结论

可以看出在实际执行过程中有很多细节和步骤需要考虑,并不是直接把两个版本的产品随机分配给不同用户那么简单。既然AB测试是让数据说话,所以目标/指标量化就很关键,说直白点,拿什么来证明A比B好呢?好比挑个西瓜,你也得有几个评估的标准:大小,色泽,声响等等。

另外,在真正开始做实验之前,还有个重要的问题需要解决,那就是你的测试样本要选多大。你要清楚,我们不可能对大多数用户都进行测试,那样跟“先上线有了问题再回退版本”的简单粗暴方式就没有了区别。所以在实验之前需要评估出你所需要的最小样本数目(最少被测试用户的数目)。AB测试本质上是做统计假设检验,所以已经有很多现成的统计工具帮我们来做类似的事情,下面有个简单的网页端工具,感兴趣的朋友可以去试试看。

一个AB测试的辅助工具: https://abtestguide.com/calc/