一、AB测试
一、A/B测试的好处
消除客户体验(UX)设计中不同意见的纷争,根据实际效果确定最佳方案;
通过对比试验,找到问题的真正原因,提高产品设计和运营水平;
建立数据驱动、持续不断优化的闭环过程;
通过A/B测试,降低新产品或新特性的发布风险,为产品创新提供保障。
二、A/B测试效率
在App和Web开发阶段,程序中添加用于制作A/B版本和采集数据的代码由此引起的开发和QA的工作量很大,ROI(return on investment)很低。AB测试的场景受到限制,App和Web发布后,无法再增加和更改AB测试场景。额外的A/B测试代码,增加了App和Web后期维护成本。因此,提高效率是A/B测试领域的一个关键问题。
三、怎样高效实施A/B测试?
在App和Web上线后,通过可视化编辑器制作A/B测试版本、设置采集指标,即时发布AB测试版本。
AB测试的场景数量是无限的;
在App和Web发布上线后,根据实际情况,设计AB测试场景,更有针对性,更有效;
无需增加额外的AB测试代码,对App和Web的开发、QA和维护的影响最小。
四、AB测试步骤
1.现状分析:分析业务数据,确定当前最关键的改进点。
2.假设建立:根据现状分析作出优化改进的假设,提出优化建议。
3.设定目标:设置主要目标,用来衡量各优化版本的优劣;设置辅助目标,用来评估优化版本对其他方面的影响。
4.界面设计:制作2(或多)个优化版本的设计原型。
5.技术实现:
网站、App(Android/iOS) 、微信小程序和服务器端需要添加各类A/B测试平台提供的SDK代码,然后制作各个优化版本。
Web平台、Android和iOS APP需要添加各类A/B测试平台提供的SDK代码,然后通过编辑器制作各个优化版本。
通过编辑器设置目标,如果编辑器不能实现,则需要手工编写代码。
使用各类A/B测试平台分配流量。初始阶段,优化方案的流量设置可以较小,根据情况逐渐增加流量。
6.采集数据:通过各大平台自身的数据收集系统自动采集数据。
7.分析A/B测试结果:统计显著性达到95%或以上并且维持一段时间,实验可以结束;如果在95%以下,则可能需要延长测试时间;如果很长时间统计显著性不能达到95%甚至90%,则需要决定是否中止试验。
五、A/B测试实施策略
1.从简单开始:可以先在Web前端上开始实施。Web前端可以比较容易的通过可视化编辑器制作多个版本和设置目标(指标),因此实施A/B测试的工作量比较小,难度比较低。在Web前端获得经验后,再推广到App和服务器端。
2.隔离变量:为了让测试结果有用,应该每个试验只测一个变量(变化)。如果一个试验测试多个变量(比如价格和颜色),就不知道是哪个变量对改进起了作用。
3.尽可能频繁、快速进行A/B测试:要降低A/B测试的代价,避免为了A/B测试做很多代码修改,尽量将A/B测试与产品的工程发布解耦,尽量不占用太多工程部门(程序员、QA等)的工作量。
4.要有一个“停止开关”:不是每个A/B测试都会得到正向的结果,有些试验可能失败,要确保有一个“开关”能够停止失败的试验,而不是让工程部门发布一个新版本。
5.检查纵向影响:夸大虚假的CTA(Call To Action)可以使某个A/B测试的结果正向,但长期来看,客户留存和销售额将会下降。因此,时刻要清楚我们追求的是什么,事先就要注意到可能会受到负面影响的指标。
6.先“特区”再推广:先在一两个产品上尝试,获得经验后,推广到其他产品中。
六、A/B测试与一般的工程测试的区别。
A/B测试用于验证用户体验、市场推广等是否正确,而一般的工程测试主要验证软硬件是否符合设计预期,因此AB测试与一般的工程测试分属于不同的领域。
七、A/B测试工具
国外:Optimizely,Visual Website Optimizer,Omniture等;
国内:Testin,ABTester,AppAdhoc Optimizer、云眼。
二、灰度测试
灰度测试是什么意思呢?如果对互联网软件研发行业不太了解的话,可能对这个词还是很陌生的,其实灰度测试就是指如果软件要在不久的将来推出一个全新的功能,或者做一次比较重大的改版的话,要先进行一个小范围的尝试工作,然后再慢慢放量,直到这个全新的功能覆盖到所有的系统用户,也就是说在新功能上线的黑白之间有一个灰,所以这种方法也通常被称为灰度测试。
从目前来看,灰度测试存在两种方式,一种是软件系统内自带灰度测试发布系统,另一种方式就是使用第三方工具来辅助进行,这两种方法都是可行的。
灰度测试这种方法可以帮助研究团队快速试验并发现问题并在大规模推向用户之前及时把问题修正过来,很大成度上减少了不少风险的产生,所以灰度测试是很有必要的。要知道只有不断创意并完善的软件才能在激烈的市场竞争中立于不败之地,当有创意的时候,小规模的灰度测试是非常有必要的。不但满足了一部分人抢先体验的愿望同时也可以发展研发团队不容易发现的各种问题,还能收集到真正的用户体验,这些对于优化全新的系统内容都是非常有帮助的,如果没有灰度测试的话,其实和闭门造车的感觉是差不多了,在增加灰度测试以后才能真正把其推向用户。
灰度测试存在的意义是什么呢?要知道现在很多互联网产品都存在用户规模非常大,版本更新过于频繁的问题,每当有新版本进行更新或者上线的时候,新的版本都是要承受非常大的压力的,而灰度测试的使用则可以很好的规避这种存在可能性非常大的风险问题。