12 KiB
测试用例文档 — 禅道 AI SOP + 绩效系统改造
依据:
outputs/acceptance.md33 条 AC(14 个 FR 全覆盖)+ CHG-027 框架验收指标新字段。 用例编号 TC-{FR序号}-{序号},与 AC 编号一一对应;每条含正常/边界/异常路径。 执行方式:手工按步骤执行,结果填入「执行记录」列(通过/失败+缺陷单号)。
0. 执行须知
0.1 环境
| 项 | 值 |
|---|---|
| 后端 | http://127.0.0.1:8085/zentao(测试库 192.168.1.161:3306/zentao_dev) |
| 前端 | dev server(npm run serve,如 http://localhost:8089) |
| 账号 | admin / 123456(系统管理员) |
| 测试数据 | 用户需求 324(产品 145)、研发需求 6566(expand 已 finished)、会议 84 |
0.2 通用准备
- 接口 token(接口类用例需要):
POST /zentao/zt-user/login {"account":"admin","password":"<md5(123456)>"} → 响应 data 即 token,后续请求头带 token - SQL 校验:用例中「DB 预期」指在 161 zentao_dev 库执行对应 SELECT。
- 文件类用例:准备任意
.md文件(如记事本写几行 markdown 表格)用于上传。
0.3 判定约定
- 页面类:以浏览器实际显示为准(截图留证)
- 接口类:以响应 code=0 + DB 落库为准
- 失败一律登记
06_test_docs/defects.md,修复后走regression.md复测
1. 用例明细
TC-001 用户需求管理(FR-001)
TC-001-1 评审通过激活(AC-001-1,正常)
- 前置:新建用户需求并提交评审,全员评审人已在 zt_user 存在
- 步骤:①产品→用户需求→新建,填写标题/描述/验收标准,提交评审;②各评审人登录→评审通过
- 预期:status=active;DB zt_story_user.revieweddate 落库;二期后 activateddate 同步有值
TC-001-2 评审不通过关闭(AC-001-2,异常)
- 步骤:新建用户需求提交评审→评审人选「不通过」
- 预期:需求关闭;DB closedby/closeddate/closedreason 落库;列表状态显示已关闭
TC-002 需求讨论会与纪要 MD(FR-002)
TC-002-1 会议纪要上传 MD 并在线渲染(AC-002-1,正常)
- 前置:产品 145 下已建会议(关联用户需求 324)
- 步骤:①产品→会议纪要→新建弹窗,选类型/日期/地点/参会人,「关联用户需求」单选下拉选 324;②附件区上传 .md 文件;③保存后进会议详情/用户需求 324 详情「会议纪要」tab;④点卡片上「MD」按钮
- 预期:DB zt_file 新增 objecttype=meeting 附件(含操作人 addedby/时间 addeddate);zt_meeting.url 刷新为最新一份;MD 弹窗渲染富文本(非纯文本)
TC-002-2 非 MD 附件不渲染(AC-002-2,边界)
- 步骤:会议上传 PDF/图片附件
- 预期:附件列表仅提供下载,不出现 MD 在线渲染入口
TC-002-3 关联需求精确匹配(AC-002-3,异常/匹配)
- 前置:存在关联需求 112 的会议
- 步骤:打开用户需求 12 的详情「会议纪要」tab
- 预期:只列出 story_ids 精确含 12 的会议,不误中 112
TC-002-4 编辑会议附件不误删(补充,回归用例)
- 前置:会议已有 2 份 MD 附件
- 步骤:编辑弹窗打开(附件区应自动带出已有附件)→直接保存
- 预期:DB zt_file 原有附件 deleted 仍为 '0',不被误标 '1'
TC-003 PRD 文档管理(FR-003)
TC-003-1 PRD 上传可见可下载(AC-003-1,正常)
- 步骤:研发需求详情→PRD 区上传 .md PRD
- 预期:附件列表可见可下载;下载文件非 0KB、内容一致
TC-003-2 多版 PRD 按时间排列(AC-003-2,边界)
- 步骤:同一需求先后上传 2 版 PRD
- 预期:多份均保留可下载,按上传时间排列
TC-004 需求级 AI 工作量指标(FR-004)+ 框架验收指标(CHG-027)
TC-004-1 指标上传落库(AC-004-1,正常)
- 步骤:
POST /zentao/zt-story-expand/saveOrUpdate,报文{"storyId":<新需求id>,"workloadIndex":"3.2","aiParticipationRate":"0.6"} - 预期:code=0;DB zt_story_expand 新增一行,workload_index/ai_participation_rate 有值
TC-004-2 幂等更新不新增(AC-004-2,幂等)
- 步骤:同 storyId 再次提交不同指标值
- 预期:DB 仍一行,值被更新
TC-004-3 已完成需求拒绝(AC-004-3,异常)
- 步骤:对 storyId=6566(requirementStatus=finished)再提交
- 预期:code≠0,message=「该需求已完成,不可再修改」;DB 无变化
TC-004-4 框架验收指标新字段(CHG-027,补充)
- 步骤:①
saveOrUpdate报文{"storyId":324,"acceptanceCriteria":"## AC-1\n- Given…Then…"};②GET /zentao/zt-story-expand/queryByStoryId?storyId=324;③查 zt_storyspec.verify - 预期:①code=0;②回读 acceptanceCriteria 完整(中文/换行不丢);③老 verify 字段不受影响
TC-005 验收标准展示(FR-005)
TC-005-1 verify 富文本展示+用例评审链(AC-005-1,验证)
- 步骤:研发需求编辑页录入验收标准(verify)保存→详情页查看;进入用例评审(story-case)流转一步
- 预期:详情页验收标准富文本正常展示;评审链状态可流转
TC-006 研发任务双通道(FR-006)
TC-006-1 AI 批量建任务(AC-006-1,正常)
- 步骤:
POST /zentao/zt-task/aiBatchAdd,报文含 storyId + tasks(1 条 type=devel 指派开发、1 条 type=test 指派测试,各带 aiEvaluationTime) - 预期:响应返回 taskIds;DB zt_task 新增:status=wait、openedby=ai、estimate=报文工时;测试任务 assignedTo=指定测试人员
TC-006-2 非法报文整批拒绝(AC-006-2,异常)
- 步骤:storyId 不存在 或 type 非法,提交
- 预期:code≠0;DB 零入库(zt_task 无新增)
TC-006-3 防重跳过(AC-006-3,防重)
- 步骤:同 storyId+name+type 已存在时再次提交(含 1 条重复 + 1 条新任务)
- 预期:重复项进响应 skipped,新任务正常创建
TC-007 任务级 AI 工时(FR-007)
TC-007-1 工时入 estimate(AC-007-1,正常)
- 步骤:TC-006-1 创建任务后查 DB
- 预期:zt_task.estimate=报文 aiEvaluationTime(标准字段)
TC-007-2 无扩展表(AC-007-2,豁免验证)
- 步骤:DB 执行
SHOW TABLES LIKE 'zt_task_extend' - 预期:不存在该表
TC-008 AI 代码审查报告 MD(FR-008)
TC-008-1 上传+状态写入+在线查看(AC-008-1,正常)
- 前置:需求下开发任务已完工
- 步骤:研发需求详情→「代码审查报告」→上传审查 MD(结论含 pass)
- 预期:DB zt_file(aiCodeReview) 落附件;zt_story.code_review_url 刷新;code_review_status=pass;详情页在线渲染
TC-008-2 SOP 卡点(AC-008-2,卡点)
- 步骤:code_review_status 为 NULL 或 reject 的需求,查看「提交测试报告」按钮
- 预期:按钮禁用/不可提交
TC-008-3 多轮回炉(AC-008-3,边界)
- 步骤:第 1 轮 reject 报告上传后,再传第 2 轮 pass 报告
- 预期:url 刷新为最新;历史多份 zt_file 均保留;extra.round 递增;status 随最新轮更新
TC-008-4 非法参数拒绝(AC-008-4,异常)
- 步骤:uploadBind 缺 storyId 或 objectType 非法
- 预期:拒绝并返回错误,不入库
TC-009 BUG 全流程(FR-009)
TC-009-1 提交→指派→修复→复测→验收(AC-009-1,验证)
- 步骤:测试人员提交 BUG→指派开发→开发修复点解决→测试复测关闭→验收(bugYs)
- 预期:各状态流转正常,zt_bug 状态/指派/解决字段落库
TC-010 测试类文档 4 字段(FR-010)
TC-010-1 用例/模版只读(AC-010-1,正常)
- 步骤:研发需求详情查看「测试用例」(testCase)与「测试报告模版」(testReport)
- 预期:可查看可下载;无上传覆盖入口
TC-010-2 提交测试报告(AC-010-2,正常+卡点)
- 前置:code_review_status=pass(按钮可用)
- 步骤:上传填完的测试报告(testReportSubmit)
- 预期:zt_story.test_report_submit_url 刷新;FR-014 判定该项齐备
TC-010-3 其他测试文档(AC-010-3,边界)
- 步骤:上传其他测试文档(testOther)
- 预期:test_other_url 刷新,可查看下载
TC-011 AI 工作日志 MD(FR-011)
TC-011-1 日志上传在线看(AC-011-1,正常)
- 步骤:研发需求详情→「工作日志」上传 MD(或框架 uploadBind type=aiWorkLog)
- 预期:zt_file(aiWorkLog) 落附件;work_log_url 刷新;在线渲染
TC-011-2 事件即传(AC-011-2,时效·人工抽查)
- 步骤:抽 1 个框架节点产出,核对上传时间与事件时间
- 预期:当日即传,非月末批量补传
TC-012 工作量指标完成率统计(FR-012)
TC-012-1 完成率口径(AC-012-1,正常)
- 前置:zt_story_month_workload 当月有数据
- 步骤:
GET /zentao/zt-perf/report?month=yyyy-MM&role=backendDev(或完成率接口)取 workloadRate 项 - 预期:=Σ(月度工作量指数)÷(团队可用工作天数×5);测试人员不计入产出方;与手工 SQL 计算一致
TC-013 九岗位绩效报表(FR-013)
TC-013-1 规则配置化(AC-013-1,正常)
- 步骤:①/perf/report 页切换 9 岗位 tab;②/perf/config 改一条权重/阈值保存;③回报表页重算
- 预期:自动项产出分数;配置改动即时生效(无需改代码);页面 auto/manual 徽标正确
TC-013-2 对拍验收(AC-013-2,对拍·需线下 Excel)
- 前置:IT 经理提供最近 1~2 个已线下考核月份的 Excel
- 步骤:系统 generateMonthScore 后与线下 Excel 逐人逐项比对
- 预期:一致或差异可解释(差异记录 defects.md 并评估是否口径问题)
TC-014 大型需求文档齐备自动核查(FR-014)
TC-014-1 五类齐全不扣分(AC-014-1,正常)
- 前置:大型需求(指数>20)五类文档齐全(测试用例/测试报告提交件/AI文档更新记录/AI代码审查报告/AI工作日志)
- 步骤:月度核查 generateDocCheck
- 预期:五类全 ✓;不扣分;zt_doc_check 写快照
TC-014-2 缺 2 份扣 4 分(AC-014-2,扣分)
- 前置:同 6566 演示数据(缺 2 份)
- 步骤:generateDocCheck 后查 /perf/docCheck 矩阵
- 预期:3✓2✗;扣 4 分(每份 2 分);zt_month_score.scopeJson 可见扣分
TC-014-3 判定源正确性(AC-014-3,验证)
- 步骤:仅上传 testReport 模版(不传提交件),另传 aiWorkLog 非 doc_update 类
- 预期:测试报告项判 ✗(不认模版);AI 文档更新记录项判 ✗(只认 doc_update 类)
TC-014-4 异议回滚(AC-014-4,异议)
- 步骤:对扣分记录发起 appeal→技术负责人 appealReview 撤销
- 预期:对应扣分回滚;zt_doc_check/月分留痕(状态+操作人+时间)
2. 覆盖矩阵
| FR | 功能 | AC 数 | 用例 | 类型 |
|---|---|---|---|---|
| FR-001 | 用户需求管理 | 2 | TC-001-1/2 | 页面 |
| FR-002 | 会议纪要 MD | 3+1 | TC-002-1~4 | 页面+DB |
| FR-003 | PRD 文档 | 2 | TC-003-1/2 | 页面+接口 |
| FR-004 | AI 工作量指标 | 3 | TC-004-1/2/3 | 接口+DB |
| CHG-027 | 框架验收指标 | — | TC-004-4 | 接口+DB |
| FR-005 | 验收标准/用例 | 1 | TC-005-1 | 页面 |
| FR-006 | 任务双通道 | 3 | TC-006-1/2/3 | 接口+DB |
| FR-007 | 任务级工时 | 2 | TC-007-1/2 | DB |
| FR-008 | 代码审查报告 | 4 | TC-008-1~4 | 页面+接口 |
| FR-009 | BUG 流程 | 1 | TC-009-1 | 页面 |
| FR-010 | 测试文档 4 字段 | 3 | TC-010-1~3 | 页面+接口 |
| FR-011 | AI 工作日志 | 2 | TC-011-1/2 | 接口+页面 |
| FR-012 | 完成率统计 | 1 | TC-012-1 | 接口+SQL |
| FR-013 | 九岗位绩效 | 2 | TC-013-1/2 | 页面+对拍 |
| FR-014 | 文档齐备核查 | 4 | TC-014-1~4 | 接口+页面 |
合计 36 条用例;14 FR + CHG-027 全覆盖;每 FR ≥1 正常 + ≥1 异常/边界(FR-012/013 以对拍/口径验证承担)。
3. 执行记录(执行时填写)
| 用例 | 结果(通过/失败) | 执行人 | 日期 | 缺陷单号 | 备注 |
|---|---|---|---|---|---|
| (逐条填写) |
4. 已知阻塞/依赖
- TC-013-2 依赖 IT 经理提供线下考核 Excel,未提供前挂起
- TC-001/005/009 为复用功能验证,可排最低优先级
- 上传类用例前置:8085 已重启加载最新代码(含 CHG-026/027)