Files
a-share-analysis/docs/features/GOV-012-node-schema-exporter/test-plan.md
T

2.2 KiB

测试计划

单元与契约测试

  • 旧实现下先证明无 MySQL CLI 时失败,再使纯 Node 路径转绿。
  • 假连接覆盖表、视图依赖、触发器、过程、函数、事件和空库。
  • 覆盖 MySQL 5.7.x 成功以及 5.6、8.x、MariaDB、字符集和排序规则失败。
  • 覆盖视图拓扑排序、循环依赖、未知对象、权限不足、空 SHOW CREATE 和对象摘要漂移。
  • 覆盖标识符转义、DEFINER 清除、当前自增值清除和稳定分隔符。
  • 覆盖顶层数据操作、凭据、连接串和生产标识拒绝;对象体内合法 DML 保留。
  • 覆盖连接成功、查询失败、渲染失败和持久化失败时的连接关闭与临时目录清理。
  • 覆盖相同输入逐字节确定性和 SQL/manifest/checksum 篡改检测。

历史兼容

  • 全部 format v1/v2 历史夹具继续验证。
  • format v3 的 captured、captured_empty 和 not_applicable 分支通过。
  • 旧字段不被新格式复用,历史目录不发生内容变化。
  • governance:start 继续验证基线已跟踪、已推送、当前分支和远程标签一致。

真实开发库验证

  • 只读取 deploy/env/development/api.env.local 和固定开发库。
  • 记录服务端版本、字符规则、对象数量、耗时和最终状态,不记录密码、地址或 SQL 正文到聊天和 QA 摘要。
  • 当前为空时生成 captured_empty;发现实际对象时生成完整 captured,不得按预期强制为空。
  • 运行 schema:verify、治理测试、格式、lint、类型检查和完整仓库验证。

安全验证

  • 证明没有子进程数据库客户端调用、业务表数据查询、生产配置读取或多语句执行。
  • 固定夹具验证对象数量、响应大小、查询和总时长保护。
  • 残余风险包括真实库权限差异和并发 DDL;通过失败关闭、摘要复核和人工重跑控制。

性能验证

  • 假连接验证单连接、5 秒查询超时、30 秒总时长、5,000 对象和 1 MiB 单定义限制;真实开发库记录导出状态和耗时,不记录 SQL 或凭据。
  • 本功能是低频治理命令,不在 API 请求路径,也不承载在线行情吞吐;因此不执行业务负载压测,边界是版本基线生成和验证命令本身。