feature-acceptance-matrix.md 5.5 KB

DoTouch.AI 功能清单与验收标准(Acceptance Matrix)

版本:v1.0 | 日期:2026-08-08 用途:独立测试 Agent 按此清单逐项验收;结果记录于 test-run-log.md 测试环境:本地 docker(PG16/Redis7)+ mock 上游 :19090 + API :8080 测试账号:test-e2e@dotouch.ai/Test1234(admin,余额 $108.80)| demo.user@dotouch.ai/User2026!(user,$50)| admin@dotouch.ai/Admin2026!(admin)


一、认证与账号(F-01 ~ F-03)

F-01 注册 + 邮箱验证码

# 步骤 验收标准
1.1 POST /v1/auth/send-code {email, purpose:register} 201
1.2 日志读验证码 8 位 [A-Z0-9]
1.3 错误验证码注册 400 验证码错误
1.4 正确验证码注册 201 创建用户
1.5 同邮箱重复注册 409
1.6 send-code 60 秒内重复 429 冷却

F-02 登录与密码策略

# 步骤 验收标准
2.1 正确密码登录 200 + JWT(含 role)
2.2 错误密码 ×5 401 ×5
2.3 第 6 次 429(约 15 分钟)
2.4 弱密码(<8 位/无数字)注册 400
2.5 GET /v1/auth/me 200 email/role

F-03 密码重置

# 步骤 验收标准
3.1 POST /v1/auth/forgot(不存在邮箱) 200 不泄露存在性
3.2 日志读重置验证码 8 位
3.3 错误码重置 400
3.4 正确码重置为新密码 201
3.5 旧密码登录 401
3.6 新密码登录 200
3.7 恢复原密码(重复 3.1-3.4) 201 + 旧密码可登录

二、API Key(F-04)

# 步骤 验收标准
4.1 POST /v1/keys {name} 201 完整 dt_ Key 仅返回一次
4.2 GET /v1/keys 脱敏(仅 prefix)
4.3 POST /v1/keys/:id/rotate 201 新 Key;旧 Key 调网关 401
4.4 DELETE /v1/keys/:id 200;已撤销 Key 调网关 401
4.5 可选 expiresAt 过期 Key 过期后调网关 401
4.6 他人 Key 操作(不同用户) 403

三、钱包与计费(F-05 / F-09)

# 步骤 验收标准
5.1 GET /v1/wallet 200 余额 + 流水
5.2 dev-credit 充值 余额增加 + deposit 流水
9.1 非流式调用后余额 精确扣减(cost>0)
9.2 流式调用后余额 预扣-结算-退款净值正确
9.3 余额不足调用 402 insufficient_balance
9.4 用量记录 costCents 与扣款一致

四、模型目录(F-06)

# 步骤 验收标准
6.1 GET /v1/models ≥236 个,OpenAI 格式
6.2 定价元数据 glm-5.2 等含 input/output 价格
6.3 未认证网关 401 invalid_api_key

五、OpenAI 兼容网关(F-07 / F-08)

# 步骤 验收标准
7.1 chat/completions 非流式 200 OpenAI 格式 + usage
7.2 stream:true SSE data: 块 + [DONE]
7.3 未知模型 404 model_not_found
7.4 无效 Key 401
7.5 错误响应体 {error:{message,type,code,param}}
8.1 61 次/分钟(同 Key) 第 61 次 429 rate_limit_exceeded

六、用量(F-10)

# 步骤 验收标准
10.1 GET /v1/usage 明细含 model/tokens/cost
10.2 GET /v1/usage/summary 按日聚合 totalTokens>0

七、Quota 用量限额(F-11)

# 步骤 验收标准
11.1 PUT /v1/keys/:id/limits {dailyRequestLimit:2} 200
11.2 第 1/2 次调用 200
11.3 第 3 次调用 429 code=quota_exceeded
11.4 清空限额(null) 调用恢复 200
11.5 预警阈值(alertPct=50,达 50%) quota-events 出现 alert
11.6 PUT /v1/account/limits 账号级 生效(账号维度拦截)
11.7 GET /v1/usage/quota 限额配置 + 当前用量 + pct
11.8 GET /v1/admin/quotas 全局视图(用户/Key/状态)
11.9 GET /v1/admin/quota-events block/alert 事件
11.10 重复超限 block 事件 5 分钟节流

八、管理后台(F-12)

# 步骤 验收标准
12.1 admin 访问 /v1/admin/stats 200
12.2 普通用户访问 admin 403
12.3 PUT /v1/admin/models/glm-5.2 定价 200 且 /v1/models 生效
12.4 GET /v1/admin/users 搜索 200 分页
12.5 PATCH 用户封禁 封禁后登录 401/网关 401
12.6 POST /v1/admin/models/sync 501 占位

九、支付 P4(F-13)— 验收标准

# 步骤 验收标准
13.1 POST /v1/wallet/deposit {amountCents:2500}(mock) 201 订单 pending + paymentUrl
13.2 GET /v1/payments/mock-pay/:orderId 模拟支付 成功
13.3 GET /v1/wallet 余额 +2500¢,deposit 流水 refId=orderId
13.4 GET /v1/wallet/orders 订单 status=paid
13.5 重复回调同一订单 幂等,余额不重复增加
13.6 provider=stripe/momo 无凭据 501/400 提示配置
13.7 amountCents < 100 400
13.8 未认证 deposit 401

十、官网首页 P5(F-14)

# 步骤 验收标准
14.1 pnpm build 零错误
14.2 /vi /en /zh-CN /zh-TW 渲染 4 语言文本正确
14.3 导航 5 项 首页/模型/定价/操作文档/控制台
14.4 B1 Logo SVG 渲染正确
14.5 客服 widget FAB 可开合面板
14.6 认证弹窗 登录/注册/重置视图切换 + 8 格验证码输入

评分规则

  • 每项 PASS/FAIL + 证据(状态码/响应摘要)
  • 回归要求:修复后必须复测并通过才可关闭
  • 每轮测试结果追加至 docs/testing/test-run-log.md