发布机制-A/B 测试:百科
| ylbtech-发布机制-A/B 测试:百科 |
AB测试是为Web或App界面或流程制作两个(A/B)或多个(A/B/n)版本,在同一时间维度,分别让组成成分相同(相似)的访客群组(目标人群)随机的访问这些版本,收集各群组的用户体验数据和业务数据,最后分析、评估出最好版本,正式采用。
| 1.返回顶部 |
- 中文名:A/B测试
- 外文名:A/B Testing
- 别 名:分组测试,分桶测试
- 英文名:Split Testing, Bucketing Tests
| 2.返回顶部 |
实施作用
- 消除客户体验(UX)设计中不同意见的纷争,根据实际效果确定最佳方案;
- 通过对比试验,找到问题的真正原因,提高产品设计和运营水平;
- 建立数据驱动、持续不断优化的闭环过程;
- 通过A/B测试,降低新产品或新特性的发布风险,为产品创新提供保障。
应用场景
实施步骤

- 网站、App(Android/iOS) 、微信小程序和服务器端需要添加各类A/B测试平台提供的SDK代码,然后制作各个优化版本。
- Web平台、Android和iOS APP需要添加各类A/B测试平台提供的SDK代码,然后通过编辑器制作各个优化版本。
- 通过编辑器设置目标,如果编辑器不能实现,则需要手工编写代码。
- 使用各类A/B测试平台分配流量。初始阶段,优化方案的流量设置可以较小,根据情况逐渐增加流量。
实施关键
- AB测试的场景数量是无限的;
- 在App和Web发布上线后,根据实际情况,设计AB测试场景,更有针对性,更有效;
- 无需增加额外的AB测试代码,对App和Web的开发、QA和维护的影响最小。
实用经验
| 3.返回顶部 |
A/B 测试附录 7.10原来主要用于产品功能的比对测试,收集用户反馈和对比数据做产品功能设计的决策。实际上,A/B 测试也可以作为一种新功能发布技术。下图展示基于 LB 实现的一种 A/B 测试发布。

实践要点
上图中,原来 PC 端和手机端都访问老版本 V1 服务(也称 A 组或控制组),当 V2 新版本(也称 B 组或实验组)发布以后,为了验证 V2 的功能正确性,同时也为了避免 V2 有问题时影响所有用户,先通过 LB 将手机端的流量切换到 V2 版本,经过一段时间的 A/B 比对测试和观察(主要通过用户和监控反馈),确保 V2 正常,则通过 LB 将全部流量切换到 V2。
基于 LB 方式实现 A/B 测试,LB 需要能够通过某种条件做流量路由,例如通过 client ip,设备类型,浏览器类型,甚至是定制的 HTTP Header 或查询字符串。
高级的 A/B 测试需要专门的平台支撑,wasabi附录 6.6就是 intuit 开源的一个支持高级 A/B 测试的平台,这类平台可以细粒度到针对某类用户做 A/B 测试,例如针对某个地区的用户,某个年龄段的用户,公司内部用户等等。举了例子,假设一个关键业务的新功能上线,为了降低风险采用 A/B 测试,可以做到先只让公司内部员工能访问到新功能,待新功能验证过,再全量放开给外部用户使用。
功能开关和 A/B 测试有点相似,但功能开关一般是无状态和全量的,无法做到针对某类特定用户进行测试,而 A/B 测试一般是有状态的,能够跟踪事务和用户级别的状态,可以实现针对某类特定用户进行测试。
优势和适用场合
优势:
用户体验影响小;
可以使用生产流量测试;
可以做到针对某类特定目标用户进行测试;
不足:
搭建复杂度相对高,有一定技术门槛
适用场合:
核心关键业务,比如涉及资金的
具备一定的 A/B 测试平台研发能力
流量模式

针对某类目标用户进行 A/B 测试,图片来自附录 6.1
| 4.返回顶部 |

| 5.返回顶部 |
| 6.返回顶部 |
![]() |
作者:ylbtech 出处:http://ylbtech.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |
发布机制-A/B 测试:百科的更多相关文章
- Spring的事件发布机制
一:Spring的事件发布 ApplicationContext提供了针对Bean的事件传播功能,其中的主角是publishEvent()方法,通过这个方法可以将事件通知给系统内的监听器(需实现App ...
- 安卓新发布机制----app bundle
Android App Bundle是一种改进的应用程序打包方式,能大幅度减少应用体积 unity可以直接导出appbundle,只需要在导出的时候勾选 但是通常项目有sdk离不开java端,我这里是 ...
- 一文读懂蓝绿发布、A/B 测试和金丝雀发布的优缺点
作者 | 扬少 背景 目前,业界已经总结出了几种常见的服务发布策略来解决版本升级过程中带来的流量有损问题.本文首先会对这些普遍的发布策略进行简单的原理解析,最后结合阿里云的云原生网关对这些发布策略进行 ...
- linux中tomcat启动脚本:关闭、发布、重启、测试是否成功
说明 在使用jenkins持续集成时,需要实现自动发布包到tomcat.该脚本实现了在jenkins将包发送到linux服务器上后的自动关闭.发布.启动.测试启动是否成功的过程 思路 该思路以tomc ...
- 从spring源码汲取营养:模仿spring事件发布机制,解耦业务代码
前言 最近在项目中做了一项优化,对业务代码进行解耦.我们部门做的是警用系统,通俗的说,可理解为110报警.一条警情,会先后经过接警员.处警调度员.一线警员,警情是需要记录每一步的日志,是要可追溯的,比 ...
- Nacos源码分析-事件发布机制
温馨提示: 本文内容基于个人学习Nacos 2.0.1版本代码总结而来,因个人理解差异,不保证完全正确.如有理解错误之处欢迎各位拍砖指正,相互学习:转载请注明出处. Nacos的服务注册.服务变更等功 ...
- 发布机制-灰度发布-例子:Windows
ylbtech-发布机制-灰度发布-例子:Windows 在传统软件产品发布过程中(例如微软的Windows 7的发布过程中),一般都会经历Pre-Alpha.Alpha.Beta.Release c ...
- Hibernate的一级二级缓存机制配置与测试
特别感谢http://www.cnblogs.com/xiaoluo501395377/p/3377604.html 在本篇随笔里将会分析一下hibernate的缓存机制,包括一级缓存(session ...
- ios 8+ (xcode 6.0 +)应用程序Ad Hoc 发布前多设备测试流程详解
我们开发的程序在经过simulator以及自己的iOS设备测试后,也基本完成应用程序了,这时候我们就可以把它发布出去了更更多的人去测试,我们可以在iOS平台使用ad hoc实现. 你在苹果购买的开发者 ...
随机推荐
- java_day06_java高级特性
Advance Java Programming 第六章: java语言高级特性(part1) 1.static修饰符 1)static变量 在类中,使用static修饰的成员变量,就是静态变量,反之 ...
- hive--构建于hadoop之上、让你像写SQL一样编写MapReduce程序
hive介绍 什么是hive? hive:由Facebook开源用于解决海量结构化日志的数据统计 hive是基于hadoop的一个数据仓库工具,可以将结构化的数据映射为数据库的一张表,并提供类SQL查 ...
- 网络基础篇之NAT(原理)
一.NAT的产生 由于网络的飞速发展和网络应用的极速增多,致使IPv4可用地址空间逐渐枯竭.尽管IPv6可以在根本上解决地址枯竭问题,但IPv4发展到IPv6还需要一个过渡,而这便产生了NAT. 二. ...
- 2.NumPy简介
一:NumPy简介 • 官网链接:http://www.numpy.org/ • NumPy教程链接:https://www.yiibai.com/numpy/ • NumPy是Python语言的一个 ...
- hive-staging文件产生的原因和解决方案
通过spark-sql.hive-sql.hue等提交select或者insert overwrite等sql到hive时,会产生该目录,用于临时存放执行结果,比如insert overwrite会将 ...
- python+Appium自动化:记录遇到的坑
1.打开 uiautomatorviewer同步的的时候突然报错 Error while obtaining UI hierarchy XML file: com.android.ddmlib.Syn ...
- Java思维题
1.求取字符串中出现的第一个非重复字符. 比如: "hello" 中的 h, "hello, how r you?" 中的 e 2.使用26字符母实现加密 ...
- CSS选择器div和p的用法和区别
div,p.div p.div>p.div+p.div~p.div.a的用法和区别 div,p:选择所有<div>元素和<p>元素 <style> p,spa ...
- vue等诸多概念记录
讲的很好,转载记录下,转载自: https://www.cnblogs.com/taowd/p/11808710.html vue学习笔记-遗留问题记录 Node.js是什么?对node.js的理解 ...
- vue的简单使用
1.使用vue 下载vue.js: 下载地址:https://vuejs.org/js/vue.min.js:打开链接后是一大堆js代码:ctrl+s保存即可: 新建一个htm ...
