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

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

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

举一个栗子:

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

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

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

灰度测试的重点问题

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

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

2、灰度测试的安全性

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

如何选择灰度测试形式?

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

1、A/B 测试

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

2、金丝雀发布

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

3、小程序化

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

4、Feature Flags

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

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

相关推荐
weixin_4896900214 分钟前
MicroSIP自定义web拨打协议
服务器·前端·windows
幻云201027 分钟前
Python机器学习:筑基与实践
前端·人工智能·python
web小白成长日记29 分钟前
Vue3中如何优雅实现支持多绑定变量和修饰符的双向绑定组件?姜姜好
前端·javascript·vue.js
晴天飛 雪35 分钟前
Spring Boot 接口耗时统计
前端·windows·spring boot
0思必得043 分钟前
[Web自动化] Selenium模拟用户的常见操作
前端·python·selenium·自动化
Apifox.1 小时前
测试用例越堆越多?用 Apifox 测试套件让自动化回归更易维护
运维·前端·后端·测试工具·单元测试·自动化·测试用例
玉梅小洋1 小时前
Chrome设置链接自动跳转新标签页而不是覆盖
前端·chrome
EndingCoder1 小时前
反射和元数据:高级装饰器用法
linux·运维·前端·ubuntu·typescript
Marshmallowc1 小时前
React性能优化:useState初始值为什么要用箭头函数?深度解析Lazy Initialization与Fiber机制
前端·react.js·性能优化·前端框架·react hooks
Coder_Boy_1 小时前
基于SpringAI的在线考试系统-试卷管理模块完整优化方案
前端·人工智能·spring boot·架构·领域驱动