62 lines
3.2 KiB
Markdown
62 lines
3.2 KiB
Markdown
# 测试计划
|
|
|
|
## 1. 治理门禁测试
|
|
|
|
- 验证新功能档案必须包含独立 `development-summary.md`。
|
|
- 验证开发总结缺少任一必备章节、章节正文为空或只有无解释占位词时失败。
|
|
- 验证设计、测试计划、GitNexus 影响计划和两类 Review 的安全、性能、同步修改证据校验。
|
|
- 验证有具体理由与边界的“不适用”可以通过,防止强迫所有功能执行无意义负载或攻击测试。
|
|
- 验证错误输出包含文件和章节,便于开发者修复。
|
|
|
|
## 2. 前端边界测试
|
|
|
|
- 拒绝 API 目录外直接导入 `axios`、创建 Axios 实例或调用全局 `fetch`。
|
|
- 拒绝业务 API 文件自行创建 Axios 实例或绕过 `@/utils/request`。
|
|
- 允许 `utils/request.ts` 使用 Axios,允许 `api/<业务域>/index.ts` 调用统一 request。
|
|
- 覆盖 `.ts`、Vue `script`/`script setup`、动态导入和路径别名,避免简单字符串规则误判或漏检。
|
|
- 继续验证 Web 不依赖 Server 源码、内部 RocketMQ 消息不进入生成契约。
|
|
|
|
## 3. Axios 请求测试
|
|
|
|
- 基础 URL 去除重复斜线并正确请求 `/api/v1/health`。
|
|
- 成功响应只返回类型化 DTO,不暴露 `AxiosResponse`。
|
|
- 网络错误和 HTTP 错误转换为不泄漏地址、凭据和原始响应的稳定错误。
|
|
- `AbortSignal` 取消保持可识别的取消语义,不被当成普通服务故障。
|
|
- 默认超时有限且可测试;不启用自动重试。
|
|
- 健康 DTO 继续经 adapter 转换成现有 `HealthViewModel`,未知状态仍被拒绝。
|
|
|
|
## 4. 契约与架构验证
|
|
|
|
- 重新生成 OpenAPI 与前端类型,确认无非预期契约漂移。
|
|
- TypeScript 编译证明 Axios API 包装使用生成响应类型且无 `any` 回退。
|
|
- Review 检查后端规范采用业务模块内按需分层,没有要求空目录或透传层。
|
|
- Review 检查依赖方向、DTO/Domain/Entity 边界和新增依赖评估。
|
|
|
|
## 5. 安全验证
|
|
|
|
- 对错误样本植入数据库连接串、内网地址和伪密钥,断言用户错误不包含这些内容。
|
|
- 检查 Web 源码与构建产物不包含服务端配置键或密钥。
|
|
- 检查 Axios 来源、锁定版本、许可证与已知依赖风险;保存不含凭据的结果。
|
|
- Git diff 与秘密扫描确认没有 `.env`、Token、密码或生产数据。
|
|
- 本功能不引入认证 Cookie、远程 HTML、动态 SQL 或服务端 URL 抓取,因此 CSRF、XSS、SQL 注入和 SSRF 的运行攻击测试不适用;后续触及对应边界的功能必须重新评估。
|
|
|
|
## 6. 性能验证
|
|
|
|
- 比较迁移前后 Web 生产构建产物大小,记录 Axios 引入的实际增量。
|
|
- 验证请求封装没有默认重试和无上限超时。
|
|
- 治理工具在当前仓库运行一次并记录耗时;其不进入生产请求路径,不执行负载测试。
|
|
- 本功能不改变数据库查询、缓存读写、消息并发、行情计算或图表渲染,因此这些性能测试不适用;后续业务功能需各自提供目标和证据。
|
|
|
|
## 7. 全量验证
|
|
|
|
- `pnpm check:contracts`
|
|
- `pnpm lint`
|
|
- `pnpm format:check`
|
|
- `pnpm typecheck`
|
|
- `pnpm test`
|
|
- `pnpm build`
|
|
- `pnpm verify:e2e`
|
|
- `pnpm verify:release`
|
|
- 桌面与移动视口视觉截图和页面控制台检查。
|
|
- `gitnexus_detect_changes`、重新索引和前后对比。
|