Files
a-share-analysis/docs/features/GOV-011-runtime-version-series/test-plan.md
T

3.8 KiB
Raw Blame History

GOV-011 测试计划

  • 功能编号:GOV-011
  • 验证环境:Node.js 22.11.0、pnpm 10.25.0、macOS 开发机
  • 数据库边界:不连接、探测或读取生产数据库;本次不执行真实 Schema 导出

1. Node.js 系列验证

  • 接受 22.0.0、22.11.0 和带预发布/构建后缀的合法 22.x。
  • 拒绝 21.x、23.x、空字符串、v22 和其他无法解析格式。
  • pnpm 继续只接受 10.x,不因 Node 约束调整而放宽。

2. Schema 元数据验证

  • 接受 MySQL 服务端 5.7.0、5.7.41、5.7.42-log。
  • 拒绝 5.6.51、8.0.40、5.7、5.7.x 和空字符串。
  • mysql 与 mysqldump 客户端继续要求合法 5.7.x。
  • 服务端版本通过后,字符集仍必须为 utf8mb4,排序规则仍必须为 utf8mb4_general_ci。
  • 回归 captured、captured_empty、not_applicable、历史 manifest、生成入口和发布门禁调用链。
  • 因用户授权的 v0.0.8 基线一次性例外,严格发布基线用例预期只在目录缺失处失败;使用 --test-skip-pattern='严格发布门禁' 验证其余 28 项全部通过。

3. API 健康检查验证

  • 5.7.41-log 返回 MySQL 5.7.41 / <数据库> / +08:00,证明 patch 来自服务端元数据而非硬编码。
  • 拒绝 5.6.x、8.x 和无效版本格式。
  • 拒绝错误库名、utf8、utf8mb4_0900_ai_ci 和 SYSTEM 时区。
  • 保持固定只读元数据查询、健康 DTO 结构和生产库名按当前配置校验。
  • 执行 Server 全量测试、类型检查和 API/Scheduler/Worker 三进程构建。

4. 规范与部署验证

  • 当前系统架构、代码开发规范、本地开发和 Ubuntu 源码部署文档必须写明 MySQL 5.7.x。
  • 上述四份当前文档不得再出现 MySQL 5.7.42;历史 QA、Schema 清单、CHANGELOG 历史版本和已发布功能档案不参与该否定扫描。
  • Node.js 22.x、pnpm 10.25.0、Ubuntu 源码部署、systemd、Nginx、Redis 和 RocketMQ 约束保持不变。

安全验证

  • 版本字符串仅进入固定正则,不执行命令、不拼接 SQL。
  • MySQL 健康错误不回显服务端原始附加文本、连接地址、账号或密码。
  • Schema 测试使用固定夹具和依赖注入,不连接真实数据库;本功能不执行 schema:baseline。
  • pnpm audit --prod --registry=https://registry.npmjs.org/ 必须为 0 已知漏洞。
  • 扫描 Web/Server 构建产物中的凭据模式;配置键名允许存在,真实值、连接串和授权头不得存在。
  • git diff --check、GitNexus detect-changes 和 Review 核对没有生产数据、真实 .env 或凭据进入提交。

性能验证

  • 版本解析为启动/治理阶段常数时间正则匹配,不增加数据库查询、网络调用、重试、缓存或消息操作。
  • 健康检查继续只执行一次既有元数据查询,连接池上限仍为 2。
  • Web 页面和依赖未变化,生产 JS/CSS 体积应与 v0.0.8 基线一致。
  • 本功能不改变行情计算、数据库扫描、Redis 热点、RocketMQ 吞吐、Worker 并发或图表渲染,因此不执行负载测试;后续触及这些路径的业务功能必须重新设定性能目标。

7. 全量与视觉验证

  • 执行 runtime、governance、MySQL、环境、Schema、契约、边界、部署、Web 和 Server 测试。
  • 执行 OpenAPI 重新生成、lint、格式、类型检查、Web/Server 构建和源码发布验证。
  • Playwright 在 Chromium 1440×900 与 390×844 下验证页面、同源健康 API、横向溢出和控制台。
  • 保存桌面/移动截图并人工检查无重叠、裁切或空白渲染回归。
  • 真实执行 pnpm verify:release、pnpm schema:verify 和 pnpm governance:finish GOV-011 runtime-version-series;三者因同一个已授权 v0.0.8 基线缺失条件失败,必须保存失败证据并手工执行其余等价门禁。