AB 测试是解决问题的银弹吗?

932 阅读8分钟

什么是 AB 测试

维基百科中对 AB 测试的定义是:AB 测试为一种随机测试,将两个不同的东西(即A和B)进行假设比较。当前 AB 测试通过对比只有一个变量不同的同一产品的两个不同版本的表现来研究该变量的作用以及影响。

AB 测试的原理

在如今的互联网公司,AB 测试是用来解决问题的一个重要手段。

举一个例子:公司一直在做一款音乐类的 App,在下个版本的一个需求的讨论上,产品团队内部出现了分歧,产品 A 的观点是将新推出的运营活动放在首屏 C 位,增加曝光率,为运营活动导流;产品 B 确认为应该维持现有样式,首屏 C 位依然显示用户推荐歌曲,运营活动可以放在首屏其他位置,强行修改 C 位展示布局,会让对活动不感兴趣的用户流失。这两种策略哪种效果更好呢?

此时就可以同时开发一个替换 C 位的 A 版本 App,和一个维持现状的 B 版本 App,分别将 50 % 的用户流量导入这两个版本,运行一段时间后,通过收集两个版本的用户反馈和一些指标(如:CTR,DAU等)做对比,来判断将运营活动放在首屏 C 位这一策略对用户产生了正面影响,负面影响或是无影响。

这其实就是 AB 测试的原理,通过不同版本之间的数据对比来进行正确的判断,本质上就是数据驱动,解决问题的一种方式。

为什么需要数据驱动

在大数据时代来临的前夕,很多决策都是依赖于决策者的经验判断,经验虽然是经历过的客观事实累计的,但是依据经验判断最终还是依靠的人,人做出的判断一定是带有主观性质的,只是主观成分占比多少的不同。

经验判断且不说正确性与否,首先要面临的问题就是决策者怎样说服大家按照决策执行,对于同一件事,执行者的意见很有可能与决策者不一致,若是意见不一致的情况下,执行者完全不思考,只是顺从决策者的意愿,那么这个团队的氛围将是死气沉沉,如提线木偶一般;若是多个执行者提出反对建议,那么这个决策的执行是否能顺利推行就成为了一个问题。尤其公司越大,决策自上而下传递时,这种问题将变得更为复杂。

所以其实经验判断首要解决的并非是正确性的问题,而是执行力的问题。

大数据时代来临后,依靠数据驱动做决策就变得水到渠成,在保证数据真实性的情况下,1 < 2 是所有人都明白的道理。

但数据驱动也是不仅仅只通过一个或几个数据,举一个简单的例子:某个图书 App 在暑假推出了一个活动,结果在活动期间该图书 App 的会员注册数大涨,这样能说明会员注册数大涨是运营活动的功劳,还是因为暑假这个特殊的时间窗口,还有可能单纯就是因为期间与某学校达成了合作导致的。

所以即使是数据驱动,也需要从很多维度进行比较后,才能做出正确的决策。

为什么是 AB 测试

多维度的数据一个很典型的应用场景就是用户画像,那么为什么在谈到数据驱动决策时很少会依靠用户画像。首先很难针对用户画像中的数据对产品现状进行评估,比如现在根据产品用户画像的统计 20 - 30 岁的用户喜好是 A 类和 B 类, 30 - 40 岁的用户喜好是 C 类和 D 类,但这意味着什么呢?我们该如何对产品进行改进呢?所以我们很难通过这类数据来对产品进行一个评判,更难基于这些数据进行产品改进,所以用户画像很难量化,不一个很好的数据驱动基准,它很难指导产品进行具体的改进。

用户画像的场景更适用于个性化定制和投放,针对不同种类的用户的喜好进行精准投放,来提高用户粘性。

AB 测试其实是一种化繁为简的做法,它不希望产品评判是受到多维度因素的影响,而是只受到最重要,或是产品团队最关心的因素的影响。有点类似于控制变量法,把多因素问题变成单因素问题,在保持其他因素不变的情况下,改变其中一个因素来观察其对主体的影响。

AB 测试看上去效率很低,要分组,要确认所有影响因素都在同一标准,最后还只能通过一个个因素调节来查看效果。但这确实是最扎实最稳妥的方式,可以将一个个因素剥离出来,探究其影响性,等到将所有影响因素都剥离出来分析明白后,这个产品的演进基本可以尽在掌握了。当然,这只是 AB 测试最理想的效果,实际情况要复杂的多,不可能也没有必要将所有因素排查出来。

AB 测试是解决问题的银弹吗

那这样看,是不是能够无脑的通过 AB 测试来推进产品的演化,AB 测试是不是适用于所有场景,一统天下了? 很显然,AB 测试并不是解决问题的银弹,它也有自己的局限性。

第一点是影响因素粒度把控的问题。在某大厂有人提出过:“AB 测试看似美好,但实际增加大量无效工作量,是一种宁可慢、不犯错的懒惰决策模式。是唯数据导向的一种变种。”

例如将一个按钮左移 5 像素和按钮不移动这样的场景做 AB 测试。这样事无巨细的将所有场景都进行一遍 A/B 测试,AB 测试将会成为一项懒政,只会大大增加开发的工作量,让产品团队失去自主思考的能力,变得唯数据论。

所以在选择 AB 测试的测试因素时,需要考虑成本与收益,也需要将测试数据和主观思考相结合,才能做出真正科学的决策。

第二点是独立性的问题。一般会出现在资源竞争的一些场景中,举个网约车的例子:把用户分成两组,A 组是一部分用户,用 A 策略,B 组是另一部分用户,用 B 策略。如果只按用户来分,就会存在资源竞争的问题,因为 A 策略和 B 策略的用户有可能都用同一个司机,A 策略的用户把这个司机订走了,B 组的用户就订不到这个司机了。

最后观测到的统计指标,比如成单量、成单率,可能会有交叉影响,且交叉影响的范围是无法预估的,所以这种实验的数据就不具有可对比性,也不能从这些数据中得到什么有效结论。

更为严谨的实验应该是将用户分成 AB 两组,也将司机分为 AB 两组,分别对应进行实验,当要观测的对象不能被严格切分的话,就需要考虑独立性的问题,这时候你做的结论很可能是错的。

第三点是测试周期的问题。这个其实很容易理解,例如促销活动,短期内可能能够获得大量用户,但一旦周期拉长到活动结束,很多粘性不强的用户将会流失。而有些改动,短期内可能活导致一些老用户的流失,但从长期来看,会吸引更多的新用户进来。但 AB 测试的周期通常都不会很长,这些情况是无法覆盖的,甚至可能会得到相反的错误结论。

尾言

AB 测试是获得实验数据的一种科学方式,它很重要,能够通过它获得很多客观数据,来消除做出决策时的主观偏见。但真正想做出一个科学有效的决策,仅凭借实验数据是不行的,这中间一定是需要一些主观的有远见的判断,客观数据与主观判断两者合理结合才是通往成功的秘诀。