1.什么是A/B 测试?有什么用?
做过App功能设计的读者朋友可能经常会面临多个设计方案的选择,例如某个按钮是用蓝色还是黄色,是放左边还是放右边。
传统的解决方法通常是集体讨论表决,或者由某位专家或领导来拍板,实在决定不了时也有随机选一个上线的。虽然传统解决办法多数情况下也是有效的,但A/B测试可能是解决这类问题的一个更好的方法。
简单来说,A/B测试就是为同一个目标制定两个版本,这两个版本只有某个方面不一样,其他方面保持一致,例如两个版本只有按钮的颜色不一样。让一部分用户使用A版本(实验组),另一部分用户使用 B版本(对照组)。试运行一段时间后,分别统计两组用户的表现, 然后对两组数据进行对比分析,最后选择效果更好的版本正式发布给全部用户。
 
2.A/B测试是怎么来的呢?
2007年,参议员的巴拉克•奥巴马在芝加哥参加了总统竞选。谷歌的产品经理丹•西罗克是奥巴马竞选团队“新媒体分析”部门的负责人。他用A/B测试优化了竞选网站的“捐款”按钮,使得捐款金额增加了5700万美元。
他对这个“捐款”按钮做了什么呢?
西罗克在奥巴马捐赠页面上进行了A/B测试,发现:
1)对于第一次访问竞选网站的用户,按钮文字是“捐赠并领取礼物”效果最好。
2)对于长期访问竞选网站,但是从来没有捐款的用户,按钮文字是“捐款”效果最好。
3)对于过去曾经捐过款的用户,按钮文字是“捐助” 效果最好。
在奥巴马就任总统后,西罗克创办了一家网站优化公司(Optimizely。)。在下一轮的总统选举中,这家公司的客户名单里是各个总统竞选团队。
现在A/B测试已经广泛应用于互联网公司,帮助优化产品。
吴恩达在主题为“AI是新的电力”的演讲中说到,能够定义互联网公司的并不是你是否有网站,而是你是否进行A/B测试,是否有很短的周期迭代,是否把决策权由CEO交给工程师和产品经理。
 
3.A/B测试案例
爱彼迎(Airbnb)是一家提供民宿服务的平台,创建于2007年,现在已经估值约300亿美元。
在2011年初,爱彼迎团队通过查阅数据寻找房源预订量比较低的地区。他们发现纽约市的房源预订量竟然不达标。要知道,纽约可是热门的旅行地区,为什么房源预定量低呢?
在观察这个地区的房源照片时发现,这些照片都是手机拍的,拍的即不清晰也不美观。如果房东发布的房源信息里有拍摄效果更加专业的照片,房东是不是会更容易租出自己的房子呢?
为了验证这个假设,爱彼迎团队先挑选了一部分房东作为实验组,免费为他们提供专业的摄影服务。
然后,将实验组的平均住宅预定量和纽约其他公寓的平均预订量进行对比。
数据显示,如果房源信息里有专业拍摄的住宅照片,房源预订量高于爱彼迎平均房源预定量的2- 3倍。也就是说,照片质量会影响预定量,说明前面的假设是成立的。
根据这个A/B测试结论,爱彼迎推出一个摄影计划,聘请了20名摄影师,专门为房东提供专业的拍照服务,这使得爱彼迎的房源预定量实现了快速增长。爱彼迎团队进一步决定向所有房东推广这一业务,这极大的提升了房源预定量。
 
同样,Google 用A/B测试来调整和测试它的算法和网站的设计; Facebook 通过A/B测试上线新功能、新版本,优化广告营收。电商巨头亚马逊通过A/B测试来不断完善网站,优化用户体验。
如果你对你的网站或者 App 感到十分不满,但又担心改头换面的重新设计会带来风险,那么可以尝试使用A/B测试,最终在得到一个全新的网站的同时,也会带来转化率的提升。
 
补充:其实A/B 测试的底层方法是对比分析方法
分析方法:如何进行对比分析?​www.zhihu.com
 

什么是 A/B 测试?的更多相关文章

  1. SignalR系列续集[系列8:SignalR的性能监测与服务器的负载测试]

    目录 SignalR系列目录 前言 也是好久没写博客了,近期确实很忙,嗯..几个项目..头要炸..今天忙里偷闲.继续我们的小系列.. 先谢谢大家的支持.. 我们来聊聊SignalR的性能监测与服务器的 ...

  2. Apache Ignite之集群应用测试

    集群发现机制 在Ignite中的集群号称是无中心的,而且支持命令行启动和嵌入应用启动,所以按理说很简单.而且集群有自动发现机制感觉对于懒人开发来说太好了,抱着试一试的心态测试一下吧. 在Apache ...

  3. 测试一下StringBuffer和StringBuilder及字面常量拼接三种字符串的效率

    之前一篇里写过字符串常用类的三种方式<java中的字符串相关知识整理>,只不过这个只是分析并不知道他们之间会有多大的区别,或者所谓的StringBuffer能提升多少拼接效率呢?为此写个简 ...

  4. TechEmpower 13轮测试中的ASP.NET Core性能测试

    应用性能直接影响到托管服务的成本,因此公司在开发应用时需要格外注意应用所使用的Web框架,初创公司尤其如此.此外,糟糕的应用性能也会影响到用户体验,甚至会因此受到相关搜索引擎的降级处罚.在选择框架时, ...

  5. .NET Core系列 :4 测试

    2016.6.27 微软已经正式发布了.NET Core 1.0 RTM,但是工具链还是预览版,同样的大量的开源测试库也都是至少发布了Alpha测试版支持.NET Core, 这篇文章 The Sta ...

  6. 渗透测试工具BurpSuite做网站的安全测试(基础版)

    渗透测试工具BurpSuite做网站的安全测试(基础版) 版权声明:本文为博主原创文章,未经博主允许不得转载. 学习网址: https://t0data.gitbooks.io/burpsuite/c ...

  7. 在ubuntu16.10 PHP测试连接MySQL中出现Call to undefined function: mysql_connect()

    1.问题: 测试php7.0 链接mysql数据库的时候发生错误: Fatal error: Uncaught Error: Call to undefined function mysqli_con ...

  8. 【初学python】使用python调用monkey测试

    目前公司主要开发安卓平台的APP,平时测试经常需要使用monkey测试,所以尝试了下用python调用monkey,代码如下: import os apk = {'j': 'com.***.test1 ...

  9. CoreCRM 开发实录——Travis-CI 实现 .NET Core 程度在 macOS 上的构建和测试 [无水干货]

    上一篇文章我提到:为了使用"国货",我把 Linux 上的构建和测试委托给了 DaoCloud,而 Travis-CI 不能放着不用啊.还好,这货支持 macOS 系统.所以就把 ...

  10. 从零开始编写自己的C#框架(24)——测试

    导航 1.前言 2.不堪回首的开发往事 3.测试推动开发的成长——将Bug消灭在自测中 4.关于软件测试 5.制定测试计划 6.编写测试用例 7.执行测试用例 8.发现并提交Bug 9.开发人员修复B ...

随机推荐

  1. C#判断某元素是否存在数组中

    string s = "K2:CENTALINE\\lukshing|K2:CENTALINE"; string[] s1 = s.Split('|'); //判断方式是 等于 而 ...

  2. 全网最深分析SpringBoot MVC自动配置失效的原因

    前言 本来没有计划这一篇文章的,只是在看完SpringBoot核心原理后,突然想到之前开发中遇到的MVC自动失效的问题,虽然网上有很多文章以及官方文档都说明了原因,但还是想亲自看一看,本以为很简单的事 ...

  3. 《UNIX环境高级编程》(APUE) 笔记第十二章 - 线程控制

    12 - 线程控制 GitHub 地址 1. 线程限制 下图为与 线程操作 有关的一些 限制: 可以通过 sysconf 函数进行查询 . 2. 线程属性 可使用 pthread_attr_t 结构修 ...

  4. AdminLTE 2.4

    https://jeesite.gitee.io/front/AdminLTE/2.4/index2.html

  5. C# 自定义常用代码段快捷键

    不断更新中... 分享地址:http://pan.baidu.com/s/15oE0X

  6. scala数据结构(一)

    一.概述 1,特点 )Scala同时支持不可变集合和可变集合 )两个主要的包: 不可变集合:scala.collection.immutable 可变集合: scala.collection.muta ...

  7. 运用设计模式告别项目中大量臃肿的if else

    前言 以前写过的一个老项目中,有这样一个业务场景,比喻:一个外卖系统需要接入多家餐馆,在外卖系统中返回每个餐馆的菜单列表 ,每个餐馆的菜单价格都需要不同的算法计算. 代码中使用了大量的if else嵌 ...

  8. # Mysql常用函数总结(一)

    Mysql常用函数总结(一) 博客已搬家,更多内容查看https://liangyongrui.github.io/ 遇到什么总结什么 DATE_SUB(date,INTERVAL expr type ...

  9. python入门008

    目录 一.for循环 作用:for循环是因为在循环取值(即遍历值)时for循环比while循环的使用更为简洁 1.for循环语法: 2.应用案例: 注意:break 与 continue也可以用于fo ...

  10. java NIO 原理解析之学习笔记

    关键抽象 1.Buffer缓冲区 NIO数据传递模型,是一个连续的内存区域.所有数据传递均通过buffer类处理:NIO提供了字符串.整形.字节.堆等多种缓冲区. 2.Channel(通道) NIO把 ...