Files

12 KiB
Raw Permalink Blame History

测试用例文档 — 禅道 AI SOP + 绩效系统改造

依据:outputs/acceptance.md 33 条 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 通用准备

  1. 接口 token(接口类用例需要):
    POST /zentao/zt-user/login  {"account":"admin","password":"<md5(123456)>"}
    → 响应 data 即 token,后续请求头带 token
    
  2. SQL 校验:用例中「DB 预期」指在 161 zentao_dev 库执行对应 SELECT。
  3. 文件类用例:准备任意 .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)