IT技术博客大学习 共学习 共进步

A/B测试:基本概念

阿里巴巴(中文站)用户体验设计部博客 2010-09-12 23:37:09 累计浏览 2,463 次

    网站设计中,我们经常会面临多个设计方案的选择,比如某个按钮是用红色还是用蓝色,是放左边还是放右边。传统的解决方法通常是集体讨论表决,或者由某位专家或领导来拍板,实在决定不了时也有随机选一个上线的。虽然传统解决办法多数情况下也是有效的,但A/B 测试(A/B Testing)可能是解决这类问题的一个更好的方法。

    所谓 A/B 测试,简单来说,就是为同一个目标制定两个方案(比如两个页面),让一部分用户使用 A 方案,另一部分用户使用 B 方案,记录下用户的使用情况,看哪个方案更符合设计目标。当然,在实际操作过程之中还有许多需要注意的细节。

    A/B 测试并不是互联网测试新发明的方法,事实上,自然界也存在着类似 A/B 测试的事件,比如下图中的达尔文雀

    自然界的 A/B Testing

    达尔文雀主要生活在太平洋东部加拉帕戈斯(Galapagos)的一个名为伊莎贝拉(Isabela)的岛上,一部分生活在岛的西部,另一部分生活在岛的东部,由于生活环境的细微不同它们进化出了不同的喙。这被认为是自然选择学说上的一个重要例证。

    同样一种鸟,究竟哪一种喙更适合生存呢?自然界给出了她的解决方案,让鸟儿自己变异(多个设计方案),然后优胜劣汰。具体到达尔文雀这个例子上,不同的环境中喙也有不同的解决方案。

    上面的例子虽然和网站设计无关,但包含了 A/B 测试最核心的思想,即:

    1、多个方案并行测试;

    2、每个方案只有一个变量(比如鸟喙)不同;

    3、以某种规则优胜劣汰。

    需要特别留意的是第 2 点,它暗示了 A/B 测试的应用范围,――必须是单变量。有时我们的多个设计稿可能会有非常大的差异,这样的情况一般不太适合做 A/B 测试,因为它们的变量太多了,变量之间会有较多的干扰,我们很难通过 A/B 测试的方法来找出各个变量对结果的影响程度。比如,土豆烧肉和豆腐鲫鱼汤都挺美味,但我们很难比较土豆和豆腐哪一个对菜的美味影响更大,而土豆烧肉和豆腐烧肉则是不错的比较。另外,虽然 A/B 测试名字中只包含 A、B ,但并不是说它只能用于比较两个方案的好坏,事实上,你完全可以设计多个方案进行测试,“A/B 测试”这个名字只是一个习惯的叫法。

    回到网站设计,一般来说,每个设计方案应该大体上是相同的,只是某一个地方有所不同,比如某处排版、文案、图片、颜色等。然后对不同的用户展示不同的方案。

    要注意,不同的用户在他的一次浏览过程中,看到的应该一直是同一个方案。比如他一开始看到的是 A 方案,则在此次会话中应该一直向他展示 A 方案,而不能一会儿让他看 A 方案,一会儿让他看 B 方案。同时,还需要注意控制访问各个版本的人数,大多数情况下我们会希望将访问者平均分配到各个不同的版本上。要做到这些很简单,根据 cookie (比如 cookie 会话ID的最后一位数字)决定展示哪个版本就是一个不错的方法。

    下面是 A/B 测试示意图:

    A/B Testing 用户分流

    可以看到,要实现 A/B 测试,我们需要做以下几个工作:

    1、开发两个(或多个)不同的版本并部署;

    2、收集数据;

    3、分析数据,得出结果。

    关于 A/B 测试的基本概念就介绍到这里,其余部分我会在后续文章中继续介绍。

建议继续学习

  1. Xvfb+YSlow+ShowSlow搭建前端性能测试框架 (累计阅读 55,345)
  2. 安全测试与渗透测试区别 (累计阅读 24,826)
  3. 使用Fiddler对手机应用进行抓包测试 (累计阅读 8,463)
  4. 服务器性能测试工具推荐 (累计阅读 7,905)
  5. 给Apache做压力测试时遇到的问题 (累计阅读 7,186)
  6. WEB性能测试工具推荐 (累计阅读 6,946)
  7. 可用性测试好助手——Morae软件的应用 (累计阅读 6,686)
  8. 12款很棒的浏览器兼容性测试工具推荐 (累计阅读 6,146)
  9. 性能测试工具sysbench简介 (累计阅读 5,906)
  10. 可用性测试的权衡之道(二) (累计阅读 5,723)