特性开关测试是什么
特性开关(Feature Flag)让未完成或实验性功能可控上线;测试需要覆盖开关开与关的组合、灰度规则、过期开关清理与默认值行为。开关把「一次发布」变成「持续开启」,测试策略必须跟上:新旧逻辑并存期间,两条路径都要保持可运行、可回归。
基本信息
| 开关矩阵 | 开与关 × 用户分群 × 环境默认值 |
|---|---|
| 灰度规则 | 按用户、地域、比例放量时的命中验证 |
| 降级行为 | 配置中心不可用时用默认值且不阻塞主流程 |
| 清理机制 | 功能稳定后移除开关,避免状态长期发散 |
| 测试自身 | 被开关控制的新旧逻辑都要有覆盖 |
典型使用场景
- 灰度放量:按比例与分群验证命中与未命中两类行为。
- 兜底演练:配置中心故障时验证默认值与告警路径。
- 版本兼容:开关开时走新接口、关时走旧接口,两端都要覆盖。
- 清理回归:开关移除后按全量新逻辑回归一遍。
- 发布演练:开关配合回滚预案,验证分钟级关停能力。
- 组合治理:登记开关生命周期与负责人,控制数量。
矩阵设计示例
| 维度 | 取值 | 验证点 |
|---|---|---|
| 开关状态 | 开、关 | 新旧逻辑都能跑 |
| 用户分群 | 命中、未命中 | 无泄漏、无重复提示 |
| 环境默认 | 各环境默认值 | 行为与配置一致 |
| 降级 | 配置不可用 | 回退默认值不阻塞 |
开关数量增长会形成组合爆炸,需登记开关生命周期并定期清理。
默认值随环境差异写入用例,逐一断言:测试环境与生产行为不一致的常见来源就是默认值漂移。
开关开与关都要测「新逻辑对旧数据」的兼容,历史数据在新代码路径下的表现常被忽略。