AB测试是为Web或App界面或流程制作两个(A/B)或多个(A/B/n)版本,在同一时间维度,分别让组成成分相同(相似)的访客群组随机的访问这些版本,收集各群组的用户体验数据和业务数据,最后分析评估出最好版本正式采用。
-
中文名
- A/B测试 外文名
- A/B Testing
-
别 名
- 分组测试,分桶测试 英文名
- Split Testing, Bucketing Tests
一、A/B测试的好处
-
消除客户体验(UX)设计中不同意见的纷争,根据实际效果确定最佳方案;
-
通过对比试验,找到问题的真正原因,提高产品设计和运营水平;
-
建立数据驱动、持续不断优化的闭环过程;
-
通过A/B测试,降低新产品或新特性的发布风险,为产品创新提供保障。
二、A/B测试效率
在App和Web开发阶段,程序中添加用于制作A/B版本和采集数据的代码由此引起的开发和QA的工作量很大,ROI(return on investment)很低。AB测试的场景受到限制,App和Web发布后,无法再增加和更改AB测试场景。额外的A/B测试代码,增加了App和Web后期维护成本。因此,提高效率是A/B测试领域的一个关键问题。
三、怎样高效实施A/B测试?
在App和Web上线后,通过可视化编辑器制作A/B测试版本、设置采集指标,即时发布AB测试版本。
-
AB测试的场景数量是无限的;
-
在App和Web发布上线后,根据实际情况,设计AB测试场景,更有针对性,更有效;
-
无需增加额外的AB测试代码,对App和Web的开发、QA和维护的影响最小。
四、AB测试步骤
1.现状分析:分析业务数据,确定当前最关键的改进点。
2.假设建立:根据现状分析作出优化改进的假设,提出优化建议。
3.设定目标:设置主要目标,用来衡量各优化版本的优劣;设置辅助目标,用来评估优化版本对其他方面的影响。
4.界面设计:制作2(或多)个优化版本的设计原型。
5.技术实现:
-
网站、App(Android/iOS) 、微信小程序和服务器端需要添加各类A/B测试平台提供的SDK代码,然后制作各个优化版本。
-
Web平台、Android和iOS APP需要添加各类A/B测试平台提供的SDK代码,然后通过编辑器制作各个优化版本。
-
通过编辑器设置目标,如果编辑器不能实现,则需要手工编写代码。
-
使用各类A/B测试平台分配流量。初始阶段,优化方案的流量设置可以较小,根据情况逐渐增加流量。
6.采集数据:通过各大平台自身的数据收集系统自动采集数据。
7.分析A/B测试结果:统计显著性达到95%或以上并且维持一段时间,实验可以结束;如果在95%以下,则可能需要延长测试时间;如果很长时间统计显著性不能达到95%甚至90%,则需要决定是否中止试验。
五、A/B测试实施策略
1.从简单开始:可以先在Web前端上开始实施。Web前端可以比较容易的通过可视化编辑器制作多个版本和设置目标(指标),因此实施A/B测试的工作量比较小,难度比较低。在Web前端获得经验后,再推广到App和服务器端。
2.隔离变量:为了让测试结果有用,应该每个试验只测一个变量(变化)。如果一个试验测试多个变量(比如价格和颜色),就不知道是哪个变量对改进起了作用。
3.尽可能频繁、快速进行A/B测试:要降低A/B测试的代价,避免为了A/B测试做很多代码修改,尽量将A/B测试与产品的工程发布解耦,尽量不占用太多工程部门(程序员、QA等)的工作量。
4.要有一个“停止开关”:不是每个A/B测试都会得到正向的结果,有些试验可能失败,要确保有一个“开关”能够停止失败的试验,而不是让工程部门发布一个新版本。
5.检查纵向影响:夸大虚假的CTA(Call To Action)可以使某个A/B测试的结果正向,但长期来看,客户留存和销售额将会下降。因此,时刻要清楚我们追求的是什么,事先就要注意到可能会受到负面影响的指标。
6.先“特区”再推广:先在一两个产品上尝试,获得经验后,推广到其他产品中。
六、A/B测试与一般的工程测试的区别。A/B测试用于验证用户体验、市场推广等是否正确,而一般的工程测试主要验证软硬件是否符合设计预期,因此AB测试与一般的工程测试分属于不同的领域。
七、A/B测试工具
国外:Optimizely,Visual Website Optimizer,Omniture等;
国内:Testin,ABTester,AppAdhoc Optimizer、云眼。