从技术角度可以选择哪些灰度测试方式

灰度测试对于大部分的技术童鞋都不陌生,是我们在做产品迭代时经常会出现的需求,具体来讲是一种在应用测试时常用的方法,它允许在生产环境中对新功能或更改进行控制从而实现有限的上线发布。这使得开发者和测试人员可以在真实世界的条件下测试新代码,而不会对所有用户造成影响。

更简单的来说就是通过我们的技术手段对业务功能进行部分的展示,这个部分可能是基于用户画像、也可能是基于地区范围、手机系统等条件。

举一个栗子:

我是一个在线教育机构,已经上线了一个线上课程学习的App,里面有视频课程、背单词、题库练习等一系列的功能模块,但是里面的背单词是新上线的功能,我仅想开放给忠实的老用户进行试用,这是就可以通过条件设置仅对注册时间大于或等于3年的用户展示。

我们作为开发者,关于灰度测试我们应该关注什么呢?

这里主要分享下我们在开展灰度测试时如何进行工具的选择和应该去重点关注的一些问题。

灰度测试的重点问题

1、确认灰度测试的复杂性

如果我们仅是针对一些简单的场景,一般的灰度测试工具都能满足,但是如果遇到一些非常复杂的灰度测试情况,例如我们的App用户量本来就比较多,并且设置的条件也比较多,例如同时设置了年龄、地区、性别、客户等级等多个条件,就需要选择更加灵活的技术工具。

2、灰度测试的安全性

因为灰度测试几乎都会涉及调用到我们的用户数据,我们就需要确保灰度测试的工具能够保证数据的安全,防止一些未授权的数据被工具访问、调用。

如何选择灰度测试形式?

灰度测试实现的方式有很多,因此可供我们选择的形式或工具也比较多,有些可能是企业直接设计的模式有些是借助便捷化的工具进行管理。

1、A/B 测试

例如我们常见到的A/B 测试就是一种最基础的灰度测试,一般情况下开发者通过将用户分组,每个用户组看到不通的应用功能版本,后续根据用户的行为反馈对上线的功能效果进行评估。

2、金丝雀发布

将应用的新版本逐步部署到生产环境当中,能够在一定程度上确保一部分用户能够访问和体验新功能,如果用户的访问没有太多的问题就可以扩大应用的访问范围。

3、小程序化

小程序化的意思是借助H5/小程序 Runtime SDK(或者也称为小程序容器)将App内的功能模块替换为H5或小程序,从而所有的功能模块能够以管理后台上下架的形式去管理,一般情况下,这类SDK产品会配套一个管理后台,后台还有一个作用就是去设定每个功能模块的展示条件逻辑,例如用户画像信息。

4、Feature Flags

是一款集"功能开关+ 灰度发布 + 远程配置 + ab测试 + 版本控制 + 持续交付 + 订阅管理 + 等等" 多个能力融为一体的技术,主要机制是允许开发人员在生产环境中启用或禁用新功能,这种方式下可以让开发人员以更加灵活的方式逐步推出新功能,并根据用户的反馈进行调整。

你们都是如何实现灰度测试的?

相关推荐
Hashan6 分钟前
Elpis:抽离业务代码,发布NPM包
前端·javascript·vue.js
quikai198111 分钟前
python练习第六组
java·前端·python
用户479492835691514 分钟前
0.1加0.2为什么不等于0.3-答不上来的都挂了
前端·javascript·面试
rit843249915 分钟前
C#实现的远程控制系统
前端·javascript·c#
诺斯贝克24 分钟前
Unable to create converter for xxx.NetworkResponse<Auth> for method AuthService
前端·后端
listhi52024 分钟前
针对燃油运输和车辆调度问题的蚁群算法MATLAB实现
前端·算法·matlab
渔_26 分钟前
uni-app 页面传参总丢值?3 种方法稳如狗!
前端
快被玩坏了26 分钟前
二次封装了个复杂的el-table表格
前端
用户938169125536027 分钟前
在TypeScript中,可选属性(?)与null类型的区别
前端
eason_fan36 分钟前
Resize 事件导致的二进制内存泄漏:隐式闭包的 “隐形陷阱”
前端·性能优化