AB测试的原理很简单,只用到了最简单的统计假设检验,但表面的简单一般都隐藏着陷阱,这一点没有通过实践的摸爬滚打是不容易看到的,今天我就把前人已经踩过的坑,一共15个,给你们分享一下。在分享以前,你们脑中必定要有个概念,AB测试虽然简单且强大,可是其成立是有前提的:css
只要牢记并时刻检查这两点假设,那么不少下面的陷阱你天然就能避免了。浏览器
很显然,咱们不能不作AB测试。不要企图用一些其余方法替代AB测试,好比:经过比较产品上线以前N天和以后N天的状况,对比分析去得出结论。这不也是AB对比吗?看起来没毛病,这种方法也不是彻底没有用,可是很不稳定,因此不要用。工具
既然AB大法这么好用,那么咱们全靠它不就好了吗?之后有任何功能任何改动都先搞个AB测试吧!AB测试并非作的越多越好,咱们能够经过下面简单的公式来看一下:性能
咱们追求的是总的效果,除了注重数量更要注重质量。学习
举个例子,若是你在节假日对你的产品作AB测试,那么测试阶段的用户群(样本)和平时的用户群天然会有很大的差别(回顾开头讲的第二条前提条件),这样很可贵出你想要的测试结果。AB测试没法在全体样本上进行实验,因此必须采样,采样要保证随机性且能表明整体样本的分布,作实验的时候就要特别注意避免一些可能致使采样污染的特殊因素。测试
除了要避免在一些特殊时间进行测试,测试的时间还要足够长,理由以下:字体
若是测试结果显示新版本比旧版本平均多吸引了30%的用户,那么是否就证实万事大吉,能够开开心心上线了呢? 还不行。这个时候还要对更细粒度的数据作一些分析,保证你看到的“好结果”是真的。 举个极端点例子,万一是系统Bug致使新版本多统计出了更多的用户呢? 咱们相信,在AB实验结束而且展示了良好的结果时,你已经基本接近成功了,可是永远不要在分析更详细用户数据以前下结论。优化
有些看不见的东西同样会影响用户,AB测试阶段除了产品特性的不一样,技术细节也会改变,这些会不会影响到实验结果? 若是新版本加载更多的css资源,会不会致使页面加载变慢?这些看不见的细节也会影响用户体验,给实验结果带来干扰。网站
AB测试不会一直成功,甚至失败的次数可能更多,可是若是实验结束以后不去思考为何,那才是完全的失败。实际上AB测试失败的时候,才是咱们从中学习并真正了解用户的时候,千万不要放弃这样的机会,要多问些为何。翻译
“想要提升成功率,先提升失败率。”
举个例子,若是你优化的是网站首页的性能,那么就不要拿全站的统计结果去作度量标准。度量标准要选好,不要想固然。
若是新版本有10个细节上的改动,那么是否是咱们要作10个AB测试来分别测试他们的效果呢? 固然不行,千万不要这么作。产品的改动效果绝对不是线性相加的,不一样的特征之间要一块儿组合才能生效,就比如把背景变黑以后必定要把字体变白才行。
还有不少咱们没法预料的因素可能会影响到实验结果,那么怎么办呢? 咱们不止要作AB测试,还要作AA测试,用AA测试来保证明验设置自己没有噪声干扰,这个也很重要。因而在实际中你要把1/3的用户分配给B组,1/3的用户分配给第一个A组,1/3的用户分配给第二个A组。
无论你的AB测试是成功了仍是失败了,在必定时间以后你都要从新审视它,由于环境变了。昨天失败的AB测试,极可能是你的理念超前了,也许过了一年用户就能够接受了呢?一次失败不表明用永远失败,反之亦然。
当线上同时存在两个版本的时候,你必定要考虑到单个用户的体验。若是一个用户在不一样浏览器、不一样设备上访问到了不一样的版本,那么可能会带来用户体验的降低,同时对收集的数据形成干扰。 好比,若是AB版本之间的差别过于明显,那么老顾客可能就会很讨厌那个新版本,而在新版本上表现出消极的行为,同时在老版本上表现积极的行为,而咱们没法从统计结果中对这种误差就行纠正。因此保证单个用户体验的一致性就很重要。
不肯定这个翻译准确不许确,就直接按英文直译了。若是你是一个电商网站,那么你最终的目标是要用户下单付款,你的优化目标应该是针对整个下单的全流程,而且以最终下单的数量做为度量标准。假如你在首页作了某些活度,让点击产品页面的用户大幅度提高,有些统计数据看起来会很漂亮,可是对最终的结果可能没有任何帮助。这个也要注意。
线上同时存在多个版本的话,实在是有点复杂,通常状况下不会这么干,但仍要警戒。
AB实验毕竟是一项科学实验,因此咱们要用数听说话,不能想固然。不要乱用一些道听途说的经验,好比:“1000个用户样本就够了”,实际上收集多少用户的数据是要严格计算的。上一篇文章咱们分享过相似的工具。再好比,不要觉得在桌面端测试经过的方案,就能够放心在手机端同时上线了,实际上不一样平台的差别很是大,必须单独进行AB测试。
总之,要记住开头提到的AB测试成立的两个前提,要时刻检验它们是否成立:
若是你喜欢以上内容,欢迎到个人我的主页关注我:Homepage