API 版本兼容性测试要判断:受支持的客户端与服务端版本能否交换数据,而不破坏消费者契约或改变业务含义。新增字段不自动等于安全,兼容性取决于真实消费者和项目支持策略。
建立版本与支持矩阵
根据已有项目证据记录契约、客户端和服务端版本、支持及弃用时间线、迁移顺序,再列出实际适用的组合。
| 客户端与服务端组合 | 所需证据 |
|---|---|
| 旧客户端与旧服务端 | 基线行为及支持周期 |
| 旧客户端与新服务端 | 客户端对新增字段、取值和错误的接受行为 |
| 新客户端与旧服务端 | 是否支持回退或迁移行为 |
| 新客户端与新服务端 | 目标契约及消费者预期 |
明确保留不支持或未知的矩阵格。不能依惯例填值,也不能因为列出了四种组合就称矩阵完整。
对照传输结构和业务含义
按实际方向比较字段类型与必需性、枚举、默认值、错误载荷和语义单位,再核对真实客户端如何读取和写入。结构兼容的金额如果单位不同、null 被当成默认值,或错误码无法识别,仍可能改变业务行为。
向后兼容结论需要客户端样例和有来源的支持策略。缺少这些材料时,应把对应矩阵格标为未评估,而不是假设客户端会忽略未知字段。
规划共存、弃用和回滚
追踪新服务端或新契约上线时的旧客户端路径,以及迁移期间的新客户端路径。明确哪些观测支持弃用、共存时哪些能力必须保留,以及哪些写入会令回滚不再安全。只有符合项目支持计划时,才提出双版本或弃用检查。
记录 AVC-## 发现
记录版本组合、变更或字段、来源、触发条件、预期消费者行为、证据状态、影响与优先级、责任角色、关闭条件和验证方法。区分不兼容变更与不支持或未知的组合。
保持静态复核和证据边界
对照已有契约、客户端样例、支持说明和过往报告。不要执行测试、修改应用资产、编造版本或行为,也不要把候选矩阵说成运行时覆盖或发布批准。
相关 Skill
- API Schema 校验将样例与单个声明 schema 对照。
- API 契约测试复核更广泛的生产者/消费者约定。
安装与调用
安装这个 Skill:
npx skills add https://github.com/naodeng/awesome-qa-skills/tree/main/skills/zh/testing-types/api-version-compatibility-testing -g
调用 api-version-compatibility-testing 时,提供受支持的版本、客户端样例、服务端契约、支持时间线、迁移顺序和回滚约束。
源文件
阅读API 版本兼容性测试 Prompt。其中定义 AVC-## 发现合同,以及客户端/服务端版本矩阵的判定边界。