灰度测试定义
灰度测试是指在同一个时间周期内,存在两个不同的应用版本,一个版本叫做黑色版本,而另一个版本叫做白色版本。根据观测到的两个版本的不同表现,来调整用户访问它们的比例。如果一切顺利,就渐渐把所有用户访问从黑色版本过渡到白色版本。这种通过同时并存黑、白版本进行测试的过程就叫做灰度测试或灰度发布。
灰度测试与A/B测试比较
灰度发布/灰度测试 | A/B测试 | |
---|---|---|
时间周期 | 一般在新版本发布的早期。 | 版本整个生命周期,都持续不断的做A/B测试。 |
目的 | 验证新版本工程正确性,如功能特性、性能、可靠性、易用性等。 | 为商业目的,优化用户体验相关的各方面特性。 |
用户人群 | 一般对用户人群的属性和数量没有特殊要求。 | 对用户人群的属性和数量有较高要求。 |
是否修改功能特性 | 否,灰度测试过程中一般不修改新版本的功能特性。 | 是,A/B测试是持续不断的修改版本的界面和流程,以便找到最优设计。 |
实施方法 | 采集数据,分析是否有功能缺陷(bug)、性能问题、稳定性问题、易用性问题等。 | 有规范的过程步骤:提出假设,设定目标,制作版本、分析结果等。有严格的数理统计算法,判断结果的可信度。 |
灰度测试实现方式
通常情况下,有两种方式来实现灰度测试。第一种是修改代码,通过对代码的修改实现灰度测试的逻辑。修改代码的优点在于开发人员能够非常精细地控制不同版本的细节,无论多么复杂的需求都能够实现,能够较好地满足测试的需求。但是修改代码的方式会较深地侵入代码,同时不能够快速响应需求,开发人员实现需要的功能是需要时间的。
第二种方法就是通过负载均衡系统实现了,在负载均衡服务器上调整配置,使得用户在访问应用的时候能够自动被分配到不同的版本上去。这种方式的优点在于部署简单,不需要过多的改动。但是这样做就会增加运维人员的负担,改动负载均衡系统的配置具有一定的风险。
随着云眼A/B测试软件的广泛应用,人们开始利用AB测试软件进行灰度发布和灰度测试,这样不仅能够保证新版的工程正确性,也能保证新版本的商业目的得到科学、准确的验证,并且在整个生命周期里都可以持续不断的优化改进。
利用云眼AB测试工具实施灰度测试,确实简便、效率高,重要的是新版本与旧版本效果比较更加科学、准确!