material_manage_system/docs/回归测试用例.md

297 lines
19 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 物料管理系统回归测试用例
更新时间:2026-10-12
本文用于版本发布前的人工回归检查。用例依据当前仓库已实现的入库、出库、库存、物料申请审批、物料主数据、物料批量导入和组织隔离功能编写;权限功能暂不纳入本轮回归。测试时请使用隔离的测试环境和测试账号;涉及库存变更的用例应使用专用测试物料,执行前记录库存基线。
## 通用测试准备
- 准备可执行对应业务操作的测试账号;组织切换用例需准备两个可访问的组织。
- 准备有效物料 M1(库存不少于 20)、有效物料 M2(库存不少于 10),并记录各自的组织、库存和库存流水。
- 准备已作废物料 M3(仅用于历史查询用例),以及可用仓库、库位。
- 记录测试前单据列表、库存余额、库存流水条数和申请状态;每个用例使用独立单据或执行后恢复测试数据。
- 下文提到的“库存”均指当前组织库存查询页显示的现存量;预警用例按当前系统口径检查现存量。
## 用例列表
### TC-01 新增入库单后库存增加
**测试内容:** 验证新增入库单、明细、库存余额和流水的一致性。
**前置数据:** M1 当前库存为 10。
**操作步骤:**
1. 进入「库存管理 → 入库管理」,点击「新增入库单」。
2. 选择 M1,数量填写 5;填写经手人、供应商和备注。
3. 保存,打开新单详情;再到「库存查询」和「库存流水」查询 M1。
**判断指标:** 单据及明细保存成功,详情数量为 5;M1 库存变为 15;新增一条入库流水,数量为 +5,变动前后分别为 10 和 15。刷新页面后结果一致。
### TC-02 入库单多物料明细
**测试内容:** 验证一张入库单包含多条物料明细时分别更新库存。
**前置数据:** M1 库存 10,M2 库存 20。
**操作步骤:** 新建入库单,添加 M1 数量 3、M2 数量 4,填写必填信息并保存;查看单据详情、两种物料库存及流水。
**判断指标:** 单据详情有且仅有两条对应明细;M1 为 13、M2 为 24;两种物料各有一条来源为该入库单的入库流水,数量分别为 +3、+4。
### TC-03 编辑入库单后库存按新数量更新
**测试内容:** 验证编辑入库单不会重复累加原数量,且库存按新明细重算。
**前置数据:** M1 库存 15,其中目标入库单贡献 5。
**操作步骤:** 在入库列表找到目标单据,点击「编辑」,将 M1 数量从 5 改为 8 并保存;检查详情、库存及相关流水。
**判断指标:** 详情数量为 8;M1 最终库存为 18(只净增加 8);流水与修改后的单据和最终余额相符,不出现重复增加到 23 的情况。
### TC-04 删除入库单后库存回退
**测试内容:** 验证删除入库单会按原单据维度冲回库存。
**前置数据:** M1 库存 15,其中待删入库单贡献 5。
**操作步骤:** 在入库列表删除目标单据并确认;重新查询单据列表、M1 库存和库存流水。
**判断指标:** 该单据不再出现在列表;M1 库存恢复到 10;该单据对应的库存流水已按删除后的结果更新,库存余额核对一致。
### TC-05 新增出库单扣减库存
**测试内容:** 验证正常出库的单据、库存和流水联动。
**前置数据:** M1 当前库存为 10。
**操作步骤:** 进入「出库管理」,新增出库单,选择 M1 数量 4,填写接收方并保存;查看详情、库存和流水。
**判断指标:** 单据明细数量为 4;M1 库存变为 6;新增一条出库流水,类型为出库、数量为 4,变动前后为 10 和 6。
### TC-06 库存不足时拒绝出库并保持数据不变
**测试内容:** 验证出库数量超过库存时服务端拦截且不产生部分写入。
**前置数据:** M1 当前库存为 3。
**操作步骤:** 新增出库单,选择 M1 数量 4,填写接收方并保存;检查提示、出库单列表、库存和流水。
**判断指标:** 保存失败并提示库存不足或等效错误;没有新增有效出库单或出库明细;M1 仍为 3;没有对应出库流水。
### TC-07 编辑出库单时正确返还旧数量并扣减新数量
**测试内容:** 验证修改出库单明细后库存按差额更新。
**前置数据:** M1 库存 6,目标出库单原数量为 4(出库前为 10)。
**操作步骤:** 编辑目标出库单,将 M1 数量由 4 改为 2 并保存;检查单据详情、库存和流水。
**判断指标:** 详情数量为 2;M1 最终库存为 8;不会仍按旧的 4 件扣减,也不会再次扣除新数量导致余额错误。
### TC-08 申请提交、本人列表和取消
**测试内容:** 验证申请人创建待审批申请、查看本人申请并取消。
**前置数据:** 使用普通申请账号登录;M1 有足够库存。
**操作步骤:** 在「物料申请 → 发起申请」填写用途,添加 M1 数量 2 并提交;切换到「我的申请」找到记录并取消。
**判断指标:** 提交后生成一条待审批申请,物料和数量正确;取消后状态为已取消;库存不变;该记录不再显示待审批操作。
### TC-09 审批拒绝并记录原因
**测试内容:** 验证审批人拒绝申请及原因展示。
**前置数据:** 存在一条待审批申请;使用有审批权限的账号。
**操作步骤:** 打开「申请审批」,对目标申请点击「拒绝」,填写原因“需求信息不完整”并确认;申请人重新查看「我的申请」。
**判断指标:** 申请状态变为已拒绝;拒绝原因与输入一致并可由申请人查看;库存不变;该申请不能再次通过或拒绝。
### TC-10 审批通过并自动出库
**测试内容:** 验证自动出库审批事务性地更新申请、库存、出库单和流水。
**前置数据:** M1 库存 10;存在数量为 3 的待审批申请。
**操作步骤:** 审批人打开目标申请,点击「通过」,保持「自动出库」开启并确认;检查申请状态、出库列表、M1 库存及流水。
**判断指标:** 申请变为已通过;产生对应出库单及数量 3 的明细;M1 变为 7;产生来源为该申请的出库流水,数量为 3。重复刷新或再次处理不得重复扣库存。
### TC-11 审批通过但不自动出库
**测试内容:** 验证关闭自动出库时只审批,不修改库存。
**前置数据:** M1 库存 10;存在数量为 3 的待审批申请。
**操作步骤:** 审批人点击「通过」,关闭「自动出库」后确认;查看申请状态、库存、出库列表和流水。
**判断指标:** 申请变为已通过;M1 仍为 10;没有由本次审批生成的出库单或库存流水。
### TC-12 自动出库审批库存不足时整体回滚
**测试内容:** 验证申请自动出库失败不会留下半完成的数据。
**前置数据:** M1 当前库存 2;存在数量为 3 的待审批申请。
**操作步骤:** 审批人对该申请选择自动出库并确认;检查提示、申请状态、库存、出库列表及流水。
**判断指标:** 操作失败并提示库存不足或等效错误;申请仍为待审批;M1 仍为 2;未生成出库单和出库流水。
### TC-13 设置库存预警及阈值边界
**测试内容:** 验证预警启停与“库存小于等于阈值”规则。
**前置数据:** 准备库存为 5 的 M1。
**操作步骤:** 在「库存查询」打开 M1 的「设置预警」,启用预警并将阈值设为 5 保存;检查「库存预警」列表。随后将阈值改为 0,并分别验证库存为 0 和大于 0 的结果;最后关闭预警。
**判断指标:** 库存等于阈值时出现在预警列表;阈值 0 合法且库存为 0 时预警、库存大于 0 时不预警;关闭后不再出现在预警列表,阈值配置可保留。
### TC-14 库存查询筛选与详情
**测试内容:** 验证按物料编码/名称和分类查询,以及库存详情展示。
**前置数据:** 至少准备两个不同分类的有效物料和对应库存。
**操作步骤:** 在「库存查询」分别按物料编码、名称关键词和分类筛选;清空条件后点击一条记录的「详情」。
**判断指标:** 每种筛选只返回匹配记录,清空条件后恢复列表;详情显示正确的组织、仓库、库位、现存量、预留、锁定和在途数量,与测试数据一致。
### TC-15 库存流水查询及来源关联
**测试内容:** 验证入库、出库和申请自动出库产生的流水可筛选并显示来源。
**前置数据:** 依次准备一笔入库、一笔普通出库和一笔自动出库审批。
**操作步骤:** 打开「库存查询 → 库存流水」,按物料查询;逐条检查变动类型、数量、前后库存、来源类型和来源编号。
**判断指标:** 三类变动均可查到;入库方向和出库方向正确;前后数量连续匹配库存变更;来源分别对应入库单、出库单和申请。
### TC-16 组织切换后数据和缓存隔离
**测试内容:** 验证用户切换已授权组织后页面数据刷新,不串用上一个组织的数据。
**前置数据:** 组织 A 与组织 B 各有不同编码的物料及不同库存;测试账号有两组织访问权限。
**操作步骤:** 切换到组织 A,记录库存列表及 M1 库存;切换到组织 B,查询库存、预警、流水和入库/出库列表;再切回 A 查询。
**判断指标:** 每个组织只显示本组织的数据;切换后列表、筛选、分页和单物料库存信息更新;返回 A 后恢复 A 的数据,不显示 B 的单据、流水或库存。
### TC-17 物料主数据编辑、变更记录与作废约束
**测试内容:** 验证物料基础资料修改留下变更记录,且仍有库存的物料不能作废。
**前置数据:** M1 有非零库存;准备一件库存为 0 且无阻止作废业务记录的有效测试物料 M4。
**操作步骤:** 在「物料」编辑 M1 的名称/规格并保存,查看对应物料日志;尝试作废 M1;再对 M4 执行作废并检查物料列表和历史查询选项。
**判断指标:** M1 修改成功且日志可见修改前后信息;M1 因仍有库存而作废失败,状态不变;M4 作废成功,常规业务物料选择不再可选,库存流水历史检索仍可找到已作废物料。
### TC-18 物料基础配置与编码生成
**测试内容:** 验证物料分类、计量单位和编码规则能够配置,并被新增物料流程正确使用。
**前置数据:** 使用可维护物料主数据的测试账号;准备尚未使用的分类编码、单位编码和编码前缀。
**操作步骤:** 在「物料主数据 → 基础配置」依次新增一个大类、其下的小类、一个计量单位,并为小类配置启用的编码规则(例如前缀 `RT`、流水号 4 位、下一流水号 1);进入「物料」新增物料,选择该大类、小类和单位,保存后再次新增一件同分类物料。
**判断指标:** 配置项保存并在列表显示正确;新增物料可选到对应分类和单位;系统按规则生成编码(例如 `RT0001`、`RT0002`),编码不重复,物料详情显示所选分类和单位。
### TC-19 供应商和客户资料维护
**测试内容:** 验证业务伙伴新增、编辑、分类筛选及供应商/客户身份页面数据正确。
**前置数据:** 准备唯一伙伴编码及未使用的测试企业名称;供应商与客户页面均可访问。
**操作步骤:** 在「业务伙伴 → 供应商」新增一条供应商资料,填写伙伴编码、企业名称、联系人和电话,并选择一个业务分类;保存后按分类筛选并打开详情;编辑联系人信息并保存。再到「客户」页面新增一条客户资料,检查列表和详情。
**判断指标:** 两类资料均保存成功且字段显示正确;供应商分类筛选结果匹配;编辑后联系人信息更新;供应商资料显示在供应商页面,客户资料显示在客户页面,页面间无错误混列。
## 物料批量导入专项回归(TC-20到TC-27)
### 测试准备
- 使用测试环境和可操作物料的账号,准备可切换的组织 A、B。
- 在组织 A 准备启用的大类、小类、单位「个」及编码为 `kg` 的单位,为小类配置启用的编码规则;另准备停用分类、停用单位和未配置规则的小类。
- 每个文件使用独立的测试物料名称,执行前记录物料列表、规则下一流水号和库存基线。以下操作均通过页面和 Excel 手动完成,结果填写下方记录表。
### TC-20 下载导入模板
**测试内容:** 验证模板下载和填写说明。
**操作步骤:** 进入「物料」页面,点击「下载模板」,用 Excel 打开下载文件,查看工作表、表头和填写说明。
**判断指标:** 文件可正常打开,包含「物料数据」和「填写说明」;表头为「物料名称、规格、单位、大类、小类」。名称、大类、小类必填,规格和单位选填;单位留空默认「个」,物料编码由系统生成。
### TC-21 合法数据导入及编码生成
**测试内容:** 验证物料新增、列表刷新及编码连续性。
**前置数据:** 专用小类编码规则前缀为 `RTIMP`、流水号 4 位、下一流水号为 1,且无已占用编码。
**操作步骤:** 在模板中填写两行不同名称的合法物料,保存后点击「批量导入」上传;查看提示、物料列表、详情和物料日志。刷新页面,再手动新增一件同小类物料,检查库存和流水。
**判断指标:** 提示成功导入 2 条,列表刷新,名称、规格、分类和单位正确;编码分别为 `RTIMP0001`、`RTIMP0002`,日志详情首行为「批量导入创建:物料名称(物料编码)」,下方按行显示导入时的物料编码、名称、规格、分类、单位和状态,同时保存新增内容快照及正确操作人;后续修改物料不应改变这条历史日志;随后单条新增编码为 `RTIMP0003`。导入结果刷新后仍可查询,原有库存及库存流水不变。
### TC-22 分类写法与选填字段兼容
**测试内容:** 验证分类、单位的不同填写方式及空行处理。
**操作步骤:** 分别使用分类名称、分类编码和页面显示的「编码 名称」填写大类、小类,给分类文本加首尾空格;单位分别填名称、编码 `kg` 或留空,规格留空。在文件中插入全空行;另存一份删除规格和单位列、调整剩余列顺序的文件,分别上传。
**判断指标:** 合法写法均能导入并匹配正确分类和单位;规格可为空,单位留空或删列时默认「个」;列顺序变化不导致字段错位,全空行不计入导入数量。
### TC-23 错误数据校验与整批拒绝
**测试内容:** 验证字段错误提示以及合法行不会被部分导入。
**操作步骤:** 准备一份含合法行和错误行的文件,错误分别为名称/大类/小类为空、分类或单位不存在/停用、小类不属于所填大类、小类未配置启用规则、名称或规格超过 200 字。插入一个全空行后上传,检查错误明细,并按名称查询本次所有物料;对照编码规则和库存基线。将超长字段改为 200 字且修正其余错误后重传。
**判断指标:** 首次提示整批未导入,错误原因可定位,行号与 Excel 实际行号一致,空行不会压缩行号;一行多个错误只计一条错误行,合法行也不新增。编码规则和库存不变;全部修正后可成功导入,200 字的名称和规格可接受。
### TC-24 错误分页、导出与修正重传
**测试内容:** 验证错误明细查看、保存和再次上传。
**操作步骤:** 上传含 21 条错误行的文件,其中字段包含中文、逗号或双引号;切换错误表第二页,点击「导出错误明细」,用 Excel 打开 CSV。关闭弹窗,在原 `.xlsx` 中修正全部错误,再选择同一个文件上传。
**判断指标:** 第一页显示 20 条、第二页 1 条;CSV 包含全部 21 条错误及行号、原始字段、失败原因,中文无乱码、字段不串列。关闭后无旧错误残留,同一文件能重新选择并提交,修正后成功导入 21 条。
### TC-25 文件格式、模板及容量限制
**测试内容:** 验证无效文件拦截和大小、行数限制。
**操作步骤:** 分别尝试上传 `.xls`、`.csv`、超过 5 MiB(5×1024×1024 字节)的文件、损坏的 `.xlsx`、缺少「物料数据」工作表或必填表头的文件,并尝试取消文件选择。再分别上传 20000 行和 20001 行合法非空数据的 `.xlsx`,两份文件均不超过 5 MiB,记录耗时和结果。
**判断指标:** 不支持的格式、超限大小和错误模板不能新增物料,并有可理解的提示;取消选择无新增。20000 行在允许范围内,应完整导入;20001 行被整批拒绝,表头和空行不计入数量。若出现超时,记录实际提示并刷新查询是否已导入,确认结果后再决定是否重传,避免重复新增。
### TC-26 重复数据与重复上传
**测试内容:** 验证当前重复导入的实际行为。
**操作步骤:** 在同一文件中填写两条同名同规格的合法物料并上传;完成后再次选择同一个文件上传,查询物料及编码。
**判断指标:** 按当前功能,两次均成功,每次新增两条,合计四条独立物料,编码互不重复;原有物料未被覆盖。当前不做重复检测,重复上传会再次新增。
### TC-27 组织隔离与导入期间操作限制
**测试内容:** 验证主数据归属和导入期间的操作限制。
**操作步骤:** 在组织 A 上传使用 B 专属分类或单位的文件;随后在 A 上传较多行的合法文件,在导入请求尚未完成时尝试切换组织及再次点击「批量导入」。完成后切到 B 查询本次测试物料,再切回 A 查询。
**判断指标:** B 专属分类或单位在 A 被判不存在,整批拒绝;请求进行中组织切换被阻止,再次点击不发起重复导入。完成后可正常切换;新物料仅在 A 可查,B 的物料和编码规则不受影响,切回 A 后结果正确。
## 执行结果记录
| 用例编号 | 执行日期 | 执行人 | 结果(通过/失败/阻塞) | 缺陷单号或备注 |
| ---- | ---- | --- | ------------ | ------- |
| | | | | |
## 使用说明
- 每次回归记录软件版本、测试环境、账号角色和执行结果;库存相关用例同时记录物料、组织及测试前后库存。
- 失败时保留单据编号、申请编号、物料编码、操作时间和页面提示,便于定位。
- 涉及修改或删除单据的用例,核对库存余额及库存流水与最终单据一致;库存流水不作为不可修改的审计日志。
- 当前系统没有独立盘点、调拨或 BOM 业务流程,本清单不将这些未接入功能作为现有功能验收项;物料批量导入已纳入 TC-20~TC-27(人工测试)。