一段小插曲

前段时间产品改版,产品经理为了改进用户体验,就决定改版用户的注册流程页面,但又怕身份证注册验证接口不稳定(第三方的身份证校验)。

于是产品经理就让我通过随机概率去控制注册流程,让一部分用户使用身份证注册,让一部分用户使用手机号注册。当时我听这种需求确实有点懵,总感觉不好做,产品经理就说了句,先用灰

度测试一下,听完我就学到了这个“灰度测试”术语,网上研究了一下这个术语,顺便把这个需求实现。

概念

什么是灰度测试(发布)

测试同一个产品发布,随机让一部分用户会使用新版,一部分用户仍然使用旧版。比如:A组用户使用新版,B组用户使用旧版。

什么是A/B Testing

测试同一个产品页面,不同的组件设计风格。(颜色,大小,形状)比如:A组用户看到购买按钮是红色的,B组用户看到购买按钮是橙色的。

什么是Split Test

测试同一个产品页面,不同的布局设计风格。(左右布局,上下布局)比如:A组用户会在首页顶部菜单看到注册按钮,B组用户会在首页banner位看到注册按钮。

PS:灰度测试是国内IT行业的说法,国外并没有这么一说。某些业界人员认为灰度测试与A/B Testing是不同的概念,认为灰度测试是从技术上看产品质量问题,A/B Testing与Split Test是从市场上看用户体验问题。A/B Testing与Split Test本质是相似的,在我看来,灰度测试与A/B Testing实施方案是一样的,所以没必要去区分灰度测试、A/B Testing、Split Test。

灰度测试≈A/B Testing(两项测试)≈A/B/N Testing(多项测试)≈Multivariate Testing(多项测试)≈Split Test(分类测试)

目的

为什么要进行灰度测试(A/B Testing)

1.从用户体验角度来讲,可以分析用户数据,改进用户体验。

2.从产品质量角度来讲,可以保证产品顺利迭代,控制产品影响范围。

实施

如何进行AB Testing

第一步:制定A/B Testing的用例。

考虑用户界面技术实现。

考虑预期用户界面体验效果。

第二步:确定A/B Testing的用户。

1.没有用户ID关联的

根据用户的IP区域信息来测试。

根据用户的设备信息来测试。

通过消息推送/提示窗口通知用户测试。

2.有用户ID关联的

根据用户的活跃度来测试。

通过邮件/短信通知用户来测试。

第三步:控制A/B Testing 周期。

周期最好控制在一个月内,周期越长,A/B Testing的结果就容易受到污染。(原因请看后面)

第四步:收集数据并分析。

不要片面分析结果,进行产品技术分析,数据分析,互动分析(比如社交群反馈)。

PS:互动分析由为重要,能直接反馈用户对产品的看法,请不要忽视社交群反馈意见。

问题

A/B Testing结果是否准确?

不准确,A/B Testing结果会存在一定的误差,A/B Testing结果误差产生有以下几个主要原因。

1.随机访问。

随机访问意味着任何用户访问该网站都有相同的概率被选择进入新版(另一个用户界面),从而看到网站的A/B Testing的变化。从技术的角度来讲,无论是前端,还是后端控制概率A/B,往往都是基于cookie去控制这个A/B测试的变化。假设用户更换电脑,更换浏览器,清除cookie,那A/B Testing的结果就不准确。

2.用户样本过少。

用户样本过少意味着产品测试覆盖率低,不容易发现产品问题。从技术的角度来讲,可能抽样的用户测试新功能都没有问题,结果全面推送给所有用户使用新功能就有可能出现一些产品问题(Bug),那A/B Testing的结果就不准确。

3. 网站营销活动。

网站营销活动意味着会提高网站的访问量,无论网站A/B Testing的变化如何,A 组用户界面与B 组用户界面的转化率都有较大的提升。从用户体验的角度来讲,看不出哪一组的用户界面转化率高,那A/B Testing的结果就不准确。

4.人为不可控的活动。

人为不可控的活动因素有很多,比如抽样的用户没时间去使用新功能或者不喜欢使用新功能,又或者同一台电脑或者浏览器给多人使用等不可控因素,那A/B Testing的结果就不准确。

总结

A/B Testing结果可以反馈产品质量问题,但不能准确反馈用户体验问题。(如果需要收集更多数据分析网站转化率,请配合第三方分析工具进行数据分析,比如Google Tag Manager,友盟,百度统计等工具)

探究灰度测试(A/B Testing)的更多相关文章

  1. 模糊测试(fuzz testing)介绍(一)

    模糊测试(fuzz testing)是一类安全性测试的方法.说起安全性测试,大部分人头脑中浮现出的可能是一个标准的“黑客”场景:某个不修边幅.脸色苍白的年轻人,坐在黑暗的房间中,正在熟练地使用各种工具 ...

  2. 模糊测试(Fuzz testing)

    模糊测试(fuzz testing)是一种安全测试方法,他介于完全的手工测试和完全的自动化测试之间.为什么是介于那两者之间?首先完全的手工测试即是渗透测试,测试人员可以模拟黑客恶意进入系统.查找漏洞, ...

  3. 冒烟测试(smoke testing)

    冒烟测试(smoke testing),就是开发人员在个人版本的软件上执行目前的冒烟测试项目,确定新的程序代码不出故障.冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常 ...

  4. 浅谈冒烟测试(Smoke Testing)

    鉴于之前跟开发提到提测前需要进行冒烟测试,然后几个开发一脸迷茫的问我:什么叫冒烟测试?所以我准备跟大家从以下几个方面简单的分享一下什么是冒烟测试. 一.软件测试的分类 二.冒烟测试(Smoke Tes ...

  5. 测试理论--branch testing and boundary testing

    1 branch testing 分支测试 测试代码的所有分支 2 boundary testing 测试 程序的限制条件

  6. 缓存测试分享篇:如何利用测试环境进行灰度测试缓存迁移solo

    此文已由作者王婷英授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 缓存,看到这两个字,第一反应,最近怎么又要弄缓存的改造啊,这个测试好复杂,一不不留心就踩一个线上bug.实在 ...

  7. 腾讯产品快速尝鲜,蓝鲸智云社区版V6.1灰度测试开启

    这周小鲸悄悄推送了社区版V6.1(二进制部署版本,包含基础套餐.监控日志套餐),没过一天就有用户来问6.1的使用问题了.小鲸大吃一鲸,原来你还是爱我的. ![请添加图片描述](https://img- ...

  8. 尖峰冲击测试(spike Testing)

    与可靠性测试类似,尖峰冲击测试这种方法也是从其他行业借鉴而来.在电力工业,有一种冲击测试,用来验证设备在刚刚接通电源时能否经受住涌流的破坏.所谓涌流,通俗地说,就是电源接通瞬间,电流突然变大的现象.涌 ...

  9. A/B测试与灰度发布

    1.A/B测试与灰度发布的理论 产品是多维度的,设计体验.交互体验.系统质量.运营支持等等, 测试的目的是为了系统最终的交付,一套各方面都足够好的系统,而不是文档上定义的系统,系统是需要不断进化的. ...

随机推荐

  1. Myeclipse发布第一个jsp页面及web project部署到tomcat上的几种方法

    菜鸟日记: 1:new web project: 2:fix the visiting  path of the tomcat,打开在安装目录下conf目录中的server.xml,在</Hos ...

  2. Class 学习 (Es6阮一峰)

    es5 构造函数 实例: function Point(x, y) { this.x = x; this.y = y; } Point.prototype.toString = function () ...

  3. JavaScript 事件对象event

    什么是事件对象? 比如当用户单击某个元素的时候,我们给这个元素注册的事件就会触发,该事件的本质就是一个函数,而该函数的形参接收一个event对象. 注:事件通常与函数结合使用,函数不会在事件发生前被执 ...

  4. js 数组array es5-es6+ 新增方法函数

    arr.forEach(function(item,index,arr){},this)  相当于普通的for循环,第一个回调参数,第二个this可以重定向[箭头函数则不生效] arr.map() 非 ...

  5. win10 vm 11 桥接模式配置

    1 保证你Vmware里面的虚拟机是关机状态 2 在本地连接 属性中 卸载VM 桥接协议 3 管理员身份运行VM ,编辑>虚拟网络编辑器 删除所有网卡,并且重新配置网络适配器 4 配置完成后,选 ...

  6. Beginning Python Chapter 3 Notes

    变量(variable)是储存数据的实体,在Python中也被称为"名称"(name). 1.Python"名称"基本命名法则 1.1) "名称&qu ...

  7. Postgres 9.11 网络地址类型函数和操作符

    9.11. 网络地址类型函数和操作符 Table 9-31 显示了可以用于 cidr 和 inet 的操作符. 操作符 <<,<<= >>,和 >>= ...

  8. WAMP安装提示缺少 msvcr100.dll文件解决方法

    WAMP安装提示缺少wamp msvcr100.dll文件解决方法 因为wamp基于vs c++2010开发,需要提前安装这个组件才可以正常运行 微软官方组件下载地址: 32位:http://www. ...

  9. AHK进阶之路

    本文摘自 http://www.cnblogs.com/echorep/p/4911117.html   小鸟学AHK(1)之运行程序或打开文档 AHK就是AutoHotKey,是一款免费的.Wind ...

  10. UI的组织形式

    UI的组织形式是树状结构: 根据层次的不同分为叶子节点和干节点. 叶子节点负责简单的信息展示. 复杂的主干复杂叶子节点的组织和整体展示. http://www.cnblogs.com/feng9exe ...