爱交互 > 交互设计 > 如何有效的做A/B Test
如何有效的做A/B Test
2017-2-4

相信很多人对于A/B测试的名字都很熟悉,也基本有一个大致的概念。其本身在用户体验设计领域经常被提到。简单来说,A/B测试无非就是A/B两个选项给到用户,让用户自己代替研究员、设计师选出最优的方案。然后通过统计数据来进行后期改进方案的推进,或被应用到其他的产品设计中去,当然其本身的结论也是可以作为你自身的一个设计经验的积累。说白了A/B测试就是一种优化设计的工具。那今天就和大家一起来聊聊我在工作中应用A/B测试的一些tips以及对于A/B测试本身的一个思考。

Point1.应用成本

任何一个设计工具的存在都可以定向的解决一类型的问题,A/B测试通常会在当产品流程、设计上有多套方案,决策者无法凭借经验来快速做出合理判断的时候使用。其本质是一个分离式组间实验。他就像我们中学生物做实验时常用的对比实验一样,只不过这一次被测的通常是人类,也就是产品的用户。任何实验都需要成本,A/B测试也不例外。需要注意的是:A/B测试不是一个一次,两次就可以完美执行的测试方案,需要在前几次的测试结束之后,对于数据,对于方式等进行针对产品本身特性的调整,才可以在后续的A/B测试获得较为准确的结果。

有效的A/B测试需要的前提:

  • 足够大的样本量
  • 一个足够支持进行所需变量改变的前后端解决方案

仅凭这两点,大部分的小企业、小产品都不太能负担起A/B测试的各种时间、人力成本。

I have a question:你说足够大的样本量,那多少的样本量算合适呢?

总体而言,样本量越大,结果精度越高。某些条件下,收集样本花费的成本和获得信息的价值是一个类似正态分布的曲线。大多数时候我们都需要思考如何更有性价比的完成测试。以下有一个经验可供参考:

  • 总量小于1000,在保证样本的精确性的前提下,需要大约300样本,约占总量的30%。
  • 总量在1w左右,需要大约1000样本,约占总量的10%。
  • 总量超过10w,需要大约1000-2000样本,约占总量的1-2%。
  • 总量超过1000w,需要大约2500样本,约占总量的0.025%。
  • 需要注意的是,当抽样比率非常小时,总体大小的影响就不那么明显了,类似于你从1亿总体里面取出2500样本,和从1000w总体里取出同样数量的样本,其精确度是相同的。

关于条件的第二条,前后端解决方案的问题。俗话说兵马未动,粮草先行。那么既然我们要去落实A/B测试,那么必须在交互、产品的参与下,把测试方案知会到对应的开发人员。不管是前端的展示还是后端对A、B两个方案用户的对应推送,以及对于全量用户的常规处理。这些都需要在A/B测试进行之前确定,并对应给出解决方案。

那么我们通常需要:

1.先选出足够大样本量的一批活跃度及各项特征差不多的用户。将选取的用户随机分为2部分

要考虑到样本量用户收不到样本数据的情况,比如说我推送了大约2000个样本用户,但是收集到的数据结果只有200-300,为什么?有可能这些你认为的活跃用户,恰恰关闭了推送,或是没有进行对应的更新,或是曝光口那几天的数据异常。这也就是我为什么说,A/Btest不是一种做一次就可以获得满意数据的原因,他需要我们对出现的情况进行一些对应的调整。

当然也有例外,你说我推全量用户,而不是像你说的选出测试用户推送。A方案是旧方案,B方案是改进方案,然后按网上说的标准示例,让用户自己选择,选择完之后,我把不好的方案随时撤下来,没错,这个就是A/B测试的完美标准范例。但是这种具有风险性的实验,推进本身是有巨大难度的,而且其比较适合web端,对于客户端有风险,而客户端的运营活动则根本没法这样做,原因不细表了。

所以大部分我们不能推全量用户的情况下,需要适当的扩大测试用户的量,以确保最后收集到的数据有说服力。

2.选择曝光量足够且稳定的入口

首页Banner,文字链广告位,弹窗,消息中心等等,不管你选择哪里,但是尽量收集之前的数据来确保这个入口的曝光率是符合标准并且是较为稳定的。别问为啥,信我的,没错。

3.对于A/B两个方案数据的收集,提前做好测试方案,做好数据埋点

最好数据平台能支持可视化,或是图表对比就更好了。一切就绪,你只需要在测试上线后,倒一杯热腾腾的白开水,坐在500美刀的办公椅上,哪里不知点哪里就可以了。

4.数据、信息整理,有价值的结论输出

有了样本,有了数据,你不给个结论,估计参与者都要揍你了。设计者本身在测试开始之前就应该有一个预测,数据和样本只是来验证你的猜想的。那么这个结论本身的价值也需要在开始之前就要进行预估。毕竟耗费资源的工作都需要有对应的价值,要不然你折腾这么久就是浪费大家的时间了。所以开始之前先想好,这次测试的价值点在哪?对于未来核心数据是否有帮助?是否能应用到之后的活动或工作中?结论是不是显而易见?没必要对显而易见的结论做测试,如果这些点想不清楚,最好不要盲目的动手。

5.规范化,流程化。提高效率永远是体现工作价值的良好表现

Point2.测试条件数量一定的前提下,可以获得最优解

我任性的认为在变量一定的情况下在某一时间段内组合实验一定能获得一个最优的解。就是需要花费时间成本。拿我们常见的充值赠送活动来说,在活动优惠一定的情况下,通过不同档位展示位置的变化,观察总收入变化及各档位的付费状况。在当前时间段一定能获得一个收入最高的展示方式。如果由于成本导致我们无法通过大量测试获得最优解的情况下,关键项优先测试。

充值赠送活动

Point3.A/B测试和灰度发布的关系

A/B test是一种灰度发布方式,让一部分用户继续用A,另一部分用户开始体验B,如果B的效果更好,慢慢的用A的用户就会被转移到B方案上。如果B方案出现问题,则会回退会A方案。这里就先不细聊灰度发布。但是通常传统软件发布,一般会经历,Pre-A(Pre-Alpha)、A(Alpha)、B(Beta)、RC(Release Candidate)、GA(General Availability)这几个阶段。简单可以划分为3个阶段、内部测试阶段、部分用户测试阶段、正式上线阶段。灰度发布出现在部分用户测试阶段。但是A/B测试可以根据不同的需要出现在任意一个阶段。

Point4.如何选择你要进行测试的目标

关于A/B test测试的目标其实可以有很多,比如说,颜色、位置、大小、文案、标题、说明、数量、字段类型、价格、促销力度、图片、文字的长短等等,当然像视觉风格、页面布局等等也可以作为进行A/B测试的点。

归根到底,选择测试目标这块最为核心的是要找到你想要去优化的点,不管是探索是否有更优的方案,还是解决一些当前数据不好的地方。只有明确了目标才可以更好的把测试方案落地。

总的来说,做A/B测试是一件很有意思的事情,整个设计从最开始的分析、调研一直到收获了A/B测试的数据,得到一个结果。这个设计过程可以说就是一个完整的设计。而同时我们最后获得的这个结果,恰恰就是设计最有价值的部分,也是可以被积累和沉淀的部分。

郁剑华

一起来把交互设计做专业吧~

Shanxi,Taiyuan