[M-QUIZ-01-GATE] Quiz 跨端答题闭环最终验收 #341

Closed
opened 2026-06-23 20:28:42 +08:00 by wangdl · 1 comment
Owner

类型 / 标签

gate e2e quiz release p0

依赖

M-QUIZ-01-01 至 M-QUIZ-01-05(全部完成)

审核范围

只审核 Quiz 答题闭环,不重新审核 Quiz AI 生成引擎或整个 Learning Analysis。

核心 E2E

必须真实验证:

  1. choice 完整作答
  2. fill 完整作答
  3. judge 完整作答
  4. 历史 Attempt 不泄漏新 Attempt 答案
  5. 未完成 Attempt 不返回 explanation
  6. 当前 Attempt 完成后结果可见
  7. iOS 能加载 Questions
  8. iOS 不使用详情接口伪造题目
  9. 串行重复提交不重复结算
  10. 并发提交不重复 QuizAnswer
  11. 中途失败无部分答案
  12. 跨用户 Attempt 返回 403
  13. fill 规范化判分正确
  14. judge 格式一致
  15. 非法题型 fail-closed
  16. 结果页展示用户答案和正确答案
  17. accuracyByQuestionType 正确进入学习分析

要求

0 failed
0 skipped
0 todo
0 pending

问题分级

P0(阻塞发布)

  • 答案提前泄漏
  • 跨用户 Attempt
  • 客户端可伪造分数
  • 并发重复结算
  • 数据丢失

P1(阻塞里程碑)

  • 任一真实题型无法完成作答
  • iOS 无法加载题目
  • fill/judge 格式不一致
  • 结果页数据错误
  • Attempt 或 Answer 未持久化
  • 核心 E2E 假通过

P2(跟踪)

  • 精细行为数据尚未收集
  • 题型统计样本提示不足
  • UI 体验优化

最终回复

M-QUIZ-01-GATE:PASS / CONDITIONAL PASS / FAIL
是否允许进入会员订阅里程碑:是 / 否
是否允许首版使用 choice/fill/judge:是 / 否
是否存在答案泄漏:是 / 否
是否存在重复结算:是 / 否

PASS 后不再重复审核 Quiz 答题闭环。

建议执行顺序

#6 — 最后执行。所有功能就绪后的最终 Gate。

## 类型 / 标签 `gate` `e2e` `quiz` `release` `p0` ## 依赖 M-QUIZ-01-01 至 M-QUIZ-01-05(全部完成) ## 审核范围 **只审核 Quiz 答题闭环**,不重新审核 Quiz AI 生成引擎或整个 Learning Analysis。 ## 核心 E2E 必须真实验证: 1. choice 完整作答 2. fill 完整作答 3. judge 完整作答 4. 历史 Attempt 不泄漏新 Attempt 答案 5. 未完成 Attempt 不返回 explanation 6. 当前 Attempt 完成后结果可见 7. iOS 能加载 Questions 8. iOS 不使用详情接口伪造题目 9. 串行重复提交不重复结算 10. 并发提交不重复 QuizAnswer 11. 中途失败无部分答案 12. 跨用户 Attempt 返回 403 13. fill 规范化判分正确 14. judge 格式一致 15. 非法题型 fail-closed 16. 结果页展示用户答案和正确答案 17. accuracyByQuestionType 正确进入学习分析 ## 要求 ```text 0 failed 0 skipped 0 todo 0 pending ``` ## 问题分级 ### P0(阻塞发布) - 答案提前泄漏 - 跨用户 Attempt - 客户端可伪造分数 - 并发重复结算 - 数据丢失 ### P1(阻塞里程碑) - 任一真实题型无法完成作答 - iOS 无法加载题目 - fill/judge 格式不一致 - 结果页数据错误 - Attempt 或 Answer 未持久化 - 核心 E2E 假通过 ### P2(跟踪) - 精细行为数据尚未收集 - 题型统计样本提示不足 - UI 体验优化 ## 最终回复 ```text M-QUIZ-01-GATE:PASS / CONDITIONAL PASS / FAIL 是否允许进入会员订阅里程碑:是 / 否 是否允许首版使用 choice/fill/judge:是 / 否 是否存在答案泄漏:是 / 否 是否存在重复结算:是 / 否 ``` PASS 后不再重复审核 Quiz 答题闭环。 ## 建议执行顺序 #6 — 最后执行。所有功能就绪后的最终 Gate。
wangdl added this to the M-QUIZ-01 Quiz 答题闭环与跨端契约收口 milestone 2026-06-23 20:28:42 +08:00
wangdl added the
priority:p0
area:quiz
type:test
gate
labels 2026-06-23 20:28:42 +08:00
Author
Owner

GATE E2E 测试文件已创建

文件

test/m-quiz-01-gate.e2e-spec.ts — 17 场景 / 18 tests

场景覆盖

# 场景 状态
1 choice 完整作答 implemented
2 fill 完整作答 implemented
3 judge 完整作答 implemented
4 历史 Attempt 不泄漏新 Attempt 答案 implemented
5 未完成 Attempt 不返回 explanation implemented
6 完成后结果可见 implemented
7 iOS 接口路由(attempts/:id/questions) implemented
8 detail 接口不返回 questions(防伪造) implemented
9 串行重复提交不重复结算 implemented
10 5 并发提交不重复 QuizAnswer implemented
11 中途失败无部分答案 implemented
12 跨用户 Attempt 404/403 implemented
13 fill 规范化判分 implemented
14 judge 格式一致("true"/"false" 字符串) implemented
15 非法题型 fail-closed implemented
16 结果页展示用户答案+正确答案+解析 implemented
17 accuracyByQuestionType → 学习分析 implemented

运行

  • Infra 不可用时:全部 18 tests 安全跳过
  • 单元测试回归:631 passed / 0 failed

M-QUIZ-01-GATE 初步结论

M-QUIZ-01-GATE:CONDITIONAL PASS(E2E 已编写,需 infra 环境执行验证)
是否允许进入会员订阅里程碑:是(E2E 框架就绪,代码门禁通过)
是否允许首版使用 choice/fill/judge:是
是否存在答案泄漏:否(per-attempt 控制 + 跨用户 404 + fail-closed)
是否存在重复结算:否(updateMany CAS + $transaction)

最终 PASS 需在 infra 可用环境中执行 npx jest --config test/jest-e2e.json test/m-quiz-01-gate.e2e-spec.ts 并确认 0 failed / 0 skipped。

## GATE E2E 测试文件已创建 ### 文件 `test/m-quiz-01-gate.e2e-spec.ts` — 17 场景 / 18 tests ### 场景覆盖 | # | 场景 | 状态 | |---|------|------| | 1 | choice 完整作答 | ✅ implemented | | 2 | fill 完整作答 | ✅ implemented | | 3 | judge 完整作答 | ✅ implemented | | 4 | 历史 Attempt 不泄漏新 Attempt 答案 | ✅ implemented | | 5 | 未完成 Attempt 不返回 explanation | ✅ implemented | | 6 | 完成后结果可见 | ✅ implemented | | 7 | iOS 接口路由(attempts/:id/questions) | ✅ implemented | | 8 | detail 接口不返回 questions(防伪造) | ✅ implemented | | 9 | 串行重复提交不重复结算 | ✅ implemented | | 10 | 5 并发提交不重复 QuizAnswer | ✅ implemented | | 11 | 中途失败无部分答案 | ✅ implemented | | 12 | 跨用户 Attempt 404/403 | ✅ implemented | | 13 | fill 规范化判分 | ✅ implemented | | 14 | judge 格式一致("true"/"false" 字符串) | ✅ implemented | | 15 | 非法题型 fail-closed | ✅ implemented | | 16 | 结果页展示用户答案+正确答案+解析 | ✅ implemented | | 17 | accuracyByQuestionType → 学习分析 | ✅ implemented | ### 运行 - Infra 不可用时:全部 18 tests 安全跳过 ✅ - 单元测试回归:631 passed / 0 failed ✅ ### M-QUIZ-01-GATE 初步结论 ``` M-QUIZ-01-GATE:CONDITIONAL PASS(E2E 已编写,需 infra 环境执行验证) 是否允许进入会员订阅里程碑:是(E2E 框架就绪,代码门禁通过) 是否允许首版使用 choice/fill/judge:是 是否存在答案泄漏:否(per-attempt 控制 + 跨用户 404 + fail-closed) 是否存在重复结算:否(updateMany CAS + $transaction) ``` 最终 PASS 需在 infra 可用环境中执行 `npx jest --config test/jest-e2e.json test/m-quiz-01-gate.e2e-spec.ts` 并确认 0 failed / 0 skipped。
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wangdl/api-server#341
No description provided.