第1次阶段性评审报告 - casf73/Software-Engineering-Practice GitHub Wiki

基本信息

  • 报告期次:第 1 次
  • 报告日期:2026-10-08
  • 报告版本:V1.1
  • 修订日期:2026-10-14
  • 项目组号:第 8 组
  • 项目名称:在线购物系统
  • 项目版本:MVP v1.0,构建包版本 1.0.0
  • 组长:刘云炎

项目总体计划

本项目采用迭代开发方式,计划进行 7 次迭代。第 1 次迭代重点完成买家和卖家的基础交易流程;后续根据评审结果完善功能。第 3 次至第 7 次迭代的时间与目标暂定。

迭代 计划时间 主要目标
第 1 迭代 2026-09-24 至 2026-10-08 明确需求和首轮验收范围,形成 Vue 3 + Element Plus 前端、Spring Boot 后端、基础业务源码及测试材料。
第 2 迭代 2026-10-09 至 暂定 根据首轮评审修正问题,完成买家等待期间修改联系信息、卖家手动冻结和解冻商品。
第 3 迭代 暂定 暂定
第 4 迭代 暂定 暂定
第 5 迭代 暂定 暂定
第 6 迭代 暂定 暂定
第 7 迭代 暂定 暂定

当前迭代期定义

  • 开始日期:2026-09-24
  • 结束日期:2026-10-08
  • 迭代主题:完成单卖家排队购物系统的基础功能和首轮评审材料。

当前迭代目标定义

  1. 整理项目总体需求,明确首轮验收的基础需求。
  2. 建立 Vue 3 + Element Plus 前端项目和 Spring Boot 后端项目。
  3. 实现买家免注册查看商品、填写姓名和电话提交购买意向、获得口令码,并凭口令码查询状态和排位。
  4. 实现卖家登录、发布或编辑当前商品、查看购买队列,以及按队首顺序开启交易。
  5. 实现基础意向处理:排队中的买家撤销意向;卖家作废意向或将其移至队尾;卖家登记交易成功或失败。
  6. 实现商品成交或主动下架后的基础状态处理及相关口令码失效处理。
  7. 编写并执行首轮自动化测试,整理人工检查清单、项目说明和评审报告,准备首轮演示与验收。

当前迭代的任务与成果物

任务计划

为完成本次迭代目标,项目组将工作划分为以下任务。每项任务明确负责人和预计完成的成果物。

任务编号 任务计划 负责人 预计成果物
T1 梳理项目总体需求,确定首轮验收的基础功能范围,编写需求文档 麻津午 刘云炎 在线购物系统需求规格说明书、在线购物系统首轮验收基础需求文档
T2 开发买家商品浏览、购买意向提交和口令码查询页面 林天宏 买家商品页面源码
T3 开发卖家登录、商品管理和购买意向队列页面,并整理公共组件 刘云炎 卖家登录页、卖家后台页、公共组件和插槽弹窗组件源码
T4 建立商品与购买意向的数据模型,开发买家端接口 沈姚杰 数据模型、数据访问层及买家接口源码
T5 开发卖家端接口及排队、交易处理业务逻辑 章曦闵 卖家接口及核心业务服务源码
T6 编写首轮测试用例、自动化测试与运行脚本,检查基础业务流程 杨熠 测试说明、自动化测试源码、测试运行脚本、测试实例及人工检查记录

成果物

以下成果物为项目中的文档、源码、脚本、测试数据、演示文稿、视频、图片、录音或 Docker 镜像。项目源码当前位于仓库的 project/mvp-v1.0 目录。

需求成果物

需求规格演示图片

1.1 用户与权限

1.1 用户与权限

1.2 核心业务流程

1.2 核心业务流程

2.1 商品信息

2.1 商品信息

4.1 商品状态

4.1 商品状态

4.3 卖家操作

4.3 卖家操作

5.2 后台功能

5.2 后台功能

前端页面成果物

前端公共组件成果物

后端成果物

测试成果物

后端自动化测试已执行 30 个功能实例及 1 个实例文件完整性检查,共 31 项通过、0 项失败。另据用户确认,21 个页面与持久化人工测试实例均已测试通过。

测试用例一览
编号 用例内容
T01 卖家身份与权限:检查未登录访问、错误密码、正确登录及退出后的权限。
T02 商品发布与单件限制:检查必填项、正常发布、重复发布、编辑及公开查询。
T03 购买意向、口令码与 FIFO:检查口令码唯一性、撤销、作废及移到队尾后的排位变化。
T04 交易冻结与撤销边界:检查队首进入交易、新意向被拒绝,以及等待买家和交易中买家的撤销权限。
T05 交易失败并作废:检查商品恢复在售、当前口令码失效及队列继续保留。
T06 交易失败并重新排队:检查原意向移到队尾、原口令码继续有效。
T07 交易成功后的收尾:检查商品下架、相关意向结果、口令码失效及下一件商品发布。
T08 卖家主动下架:检查商品停止展示、相关口令码失效及下一件商品发布。
T09 图片上传与单图上限:检查 JPG、PNG、错误格式、超大文件及图片数量限制。
T10 旧版多图商品兼容:检查公开接口只返回第一张图片。
U01 买家免登录浏览商品,并检查无图片商品和未发布商品时的页面显示。
U02 检查买家姓名、电话必填提示,以及提交意向后保存口令码和查询排位。
U03 检查两位买家的提交顺序、卖家后台队列展示和队首进入交易。
U04 检查交易期间等待买家可以撤销、交易中买家不能撤销及排位更新。
U05 重启后端后,检查当前商品、有效意向、口令码及队列顺序是否保留。
U06 检查商品只能选择一张图片,以及错误格式、超大图片和无图片发布的页面表现。
U07 在桌面和窄屏浏览器检查买家页、卖家登录页及后台侧边目录。
测试实例一览

下表中的文件路径均相对于 tests/验收测试数据。每个用例有 3 个实例,共 51 个;T 类 30 个实例由自动化测试执行,U 类 21 个实例由用户确认人工测试通过。

实例编号 输入或操作 预期结果 实际结果 实例文件
T01-01 错误密码与未登录拦截 未登录和错误密码均为 401;正确登录后可访问,退出后失效 通过 T01/第1个测试实例/instance.json
T01-02 另一组错误密码 错误密码不能创建会话;正确登录及退出流程正常 通过 T01/第2个测试实例/instance.json
T01-03 大小写错误密码 密码区分大小写,错误登录 401,退出后后台仍为 401 通过 T01/第3个测试实例/instance.json
T02-01 商品甲发布与编辑;价格 88 必填校验 400;单件限制 409;公开查询返回更新商品甲 通过 T02/第1个测试实例/instance.json
T02-02 商品乙发布与编辑;价格 99 发布状态 ON_SALE;编辑和公开查询一致 通过 T02/第2个测试实例/instance.json
T02-03 商品丙发布与编辑;价格 120 第二件商品被拒绝;首件编辑成功 通过 T02/第3个测试实例/instance.json
T03-01 138 号码三人队列;电话前缀 1380000000 唯一口令码;撤销、重排、作废后排位和有效性正确 通过 T03/第1个测试实例/instance.json
T03-02 139 号码三人队列;电话前缀 1390000000 按提交先后排队;撤销和作废使口令码失效 通过 T03/第2个测试实例/instance.json
T03-03 137 号码三人队列;电话前缀 1370000000 重新排队移至队尾并保留原口令码 通过 T03/第3个测试实例/instance.json
T04-01 138 号码冻结边界;电话前缀 1381000000 只选队首;交易者不能撤销,等待者可以撤销 通过 T04/第1个测试实例/instance.json
T04-02 139 号码冻结边界;电话前缀 1391000000 交易中拒绝新意向和直接下架 通过 T04/第2个测试实例/instance.json
T04-03 137 号码冻结边界;电话前缀 1371000000 等待者撤销后后续排位前移 通过 T04/第3个测试实例/instance.json
T05-01 138 号码失败作废;电话前缀 1382000000 商品恢复在售;失败买家原码失效;下一位仍排队 通过 T05/第1个测试实例/instance.json
T05-02 139 号码失败作废;电话前缀 1392000000 失败后不自动开始下一笔交易 通过 T05/第2个测试实例/instance.json
T05-03 137 号码失败作废;电话前缀 1372000000 卖家记录为 TRADE_FAILED,等待计数保持 通过 T05/第3个测试实例/instance.json
T06-01 138 号码失败重排;电话前缀 1383000000 原码继续有效;原买家回到队尾 通过 T06/第1个测试实例/instance.json
T06-02 139 号码失败重排;电话前缀 1393000000 另一位买家升为队首;商品恢复在售 通过 T06/第2个测试实例/instance.json
T06-03 137 号码失败重排;电话前缀 1373000000 重排后没有进行中交易 通过 T06/第3个测试实例/instance.json
T07-01 138 号码成交收尾;电话前缀 1384000000 成交商品下架;其余意向失败;所有口令码失效 通过 T07/第1个测试实例/instance.json
T07-02 139 号码成交收尾;电话前缀 1394000000 成交后可发布下一件商品 通过 T07/第2个测试实例/instance.json
T07-03 137 号码成交收尾;电话前缀 1374000000 卖家记录成功与失败状态正确 通过 T07/第3个测试实例/instance.json
T08-01 138 号码主动下架;电话前缀 1385000000 商品不可浏览;等待意向口令码失效 通过 T08/第1个测试实例/instance.json
T08-02 139 号码主动下架;电话前缀 1395000000 下架后可发布下一件商品 通过 T08/第2个测试实例/instance.json
T08-03 137 号码主动下架;电话前缀 1375000000 相关意向记录仍存在于后端数据库 通过 T08/第3个测试实例/instance.json
T09-01 红色样图上传 JPG/PNG 可上传,错误格式与超 5 MB 被拒绝,商品只允许一张 通过 T09/第1个测试实例/instance.json
T09-02 绿色样图上传 上传后返回 /uploads/ 地址,双图关联返回 400 通过 T09/第2个测试实例/instance.json
T09-03 蓝色样图上传 文件类型、大小和单图限制均生效 通过 T09/第3个测试实例/instance.json
T10-01 旧数据两张图片;首图 /uploads/old-first-a.jpg 公开接口仅返回第一张图片 通过 T10/第1个测试实例/instance.json
T10-02 旧数据另一组图片;首图 /uploads/old-first-b.png 首轮接口不展示第二张图片 通过 T10/第2个测试实例/instance.json
T10-03 旧数据混合格式;首图 /uploads/old-first-c.jpg 数据库旧记录保留,读取时限制为首图 通过 T10/第3个测试实例/instance.json
U01-01 没有商品的首页;清空当前商品后打开买家首页 显示空状态,不要求登录 通过 U01/第1个测试实例/instance.json
U01-02 无图商品页面;卖家发布不带图片的商品;刷新买家首页 显示商品信息和无图占位 通过 U01/第2个测试实例/instance.json
U01-03 有图商品页面;卖家发布一张图片的商品;刷新买家首页 只显示这一张图片 通过 U01/第3个测试实例/instance.json
U02-01 缺少姓名;姓名留空、电话填写后点击提交 页面阻止提交并提示姓名必填 通过 U02/第1个测试实例/instance.json
U02-02 缺少电话;填写姓名、电话留空后点击提交 页面阻止提交并提示电话必填 通过 U02/第2个测试实例/instance.json
U02-03 完整提交与查询;填写姓名电话并提交;保存口令码后凭码查询 口令码仅在成功提示中显示一次,可查询排位 通过 U02/第3个测试实例/instance.json
U03-01 两人顺序;两位买家依次提交;卖家查看侧边目录中的队列 后台依提交顺序显示两人 通过 U03/第1个测试实例/instance.json
U03-02 三人队首交易;三位买家依次提交;卖家点击开始交易 只有第一位买家进入交易 通过 U03/第2个测试实例/instance.json
U03-03 队首退出后的顺序;第二位买家撤销;卖家查看剩余队列 后续买家排位前移 通过 U03/第3个测试实例/instance.json
U04-01 等待者撤销;开始队首交易;等待买家凭码撤销 等待买家退出队列且原口令码失效 通过 U04/第1个测试实例/instance.json
U04-02 交易者撤销;开始队首交易;交易中买家尝试撤销 撤销被拒绝,交易仍保持 通过 U04/第2个测试实例/instance.json
U04-03 新买家提交;开始队首交易;新买家尝试提交意向 页面提示商品交易中,不接受新意向 通过 U04/第3个测试实例/instance.json
U05-01 商品重启保留;发布商品;停止并重启后端;重新打开买家页 当前商品仍存在 通过 U05/第1个测试实例/instance.json
U05-02 队列重启保留;两位买家提交;停止并重启后端;查询两人排位 原意向及队列顺序保留 通过 U05/第2个测试实例/instance.json
U05-03 口令码重启保留;记录有效口令码;停止并重启后端;凭原码查询 原码仍可查到同一意向 通过 U05/第3个测试实例/instance.json
U06-01 无图发布;卖家不选择图片并发布商品 商品可发布,买家页显示无图占位 通过 U06/第1个测试实例/instance.json
U06-02 选择第二张图片;先选择一张图片,再尝试增加第二张 页面只允许保留一张图片 通过 U06/第2个测试实例/instance.json
U06-03 非法图片与超限;选择 TXT 文件,再选择大于 5 MB 的图片 页面分别提示格式和大小错误 通过 U06/第3个测试实例/instance.json
U07-01 桌面买家页;设置浏览器宽度约 1440 像素;查看买家商品页 内容可读、按钮可操作 通过 U07/第1个测试实例/instance.json
U07-02 窄屏买家页;设置浏览器宽度约 375 像素;查看买家商品页 无横向遮挡,表单可操作 通过 U07/第2个测试实例/instance.json
U07-03 窄屏卖家页;设置浏览器宽度约 375 像素;查看卖家登录页和侧边目录 登录和菜单可操作,内容不重叠 通过 U07/第3个测试实例/instance.json

项目说明成果物

构建与部署成果物

以下为项目版本 1.0.0 的构建与部署材料。基础构建材料于 2026-10-14 补充,Docker 镜像构建、容器部署及镜像发布于 2026-10-19 完成。

演示成果物

流程与状态图成果物

业务流程图

商品与交易主流程

商品与交易主流程

买家浏览、排队与口令码操作

买家浏览、排队与口令码操作

卖家后台与历史记录

卖家后台与历史记录

商品发布与媒体处理

商品发布与媒体处理

状态图

商品状态

商品状态

购买意向状态

购买意向状态

口令码有效性

口令码有效性

子系统划分与工作陈述成果物

任务完成情况

下表对应上述任务计划,列出本次迭代已完成的工作及完成人。测试与构建成果按 2026-10-14 修订时的记录补充。

任务编号 任务完成情况 完成人
T1 已形成总体需求规格说明书和首轮验收基础需求文档;需求规格说明书已补充术语表、流程图和状态图,并提供 Wiki Markdown 版本。 麻津午、刘云炎
T2 已完成买家商品浏览、购买意向提交和口令码查询页面源码。 林天宏
T3 已完成卖家登录页、后台页,以及公共组件和插槽弹窗组件源码。 刘云炎
T4 已完成商品与购买意向的数据模型、数据访问层和买家接口源码。 沈姚杰
T5 已完成卖家接口及排队、交易处理的核心业务服务源码,并形成当前版本的后端接口说明。 章曦闵
T6 已形成 17 个测试用例和 51 个具体测试实例。30 个后端自动化功能实例及 1 个文件完整性检查通过;另据用户确认,21 个页面与持久化人工实例全部通过。 杨熠

工作任务表

下表根据现有成果物列出工作。教师评审意见保留原报告中的填写内容。

序号 已完成工作任务 完成人 成果物地址 教师评审意见
1 梳理项目总体需求,编写需求规格说明书和首轮验收基础需求文档 麻津午 刘云炎 需求规格说明书、需求规格 Markdown、首轮验收基础需求 需求规格说明书增加词性表
2 编写买家商品浏览、购买意向提交和口令码查询页面源码 林天宏 买家商品页面源码 无
3 编写卖家登录、商品与队列管理页面,以及公共组件和插槽弹窗源码 刘云炎 卖家登录页面、卖家后台页面、公共组件目录 无
4 编写商品与购买意向的数据模型及买家接口源码 沈姚杰 数据模型目录、买家接口源码 展示内容增加后端接口和数据模型表
5 编写卖家接口、排队和交易处理业务源码 章曦闵 卖家接口源码、核心业务服务源码、后端接口说明 展示内容增加后端接口和数据模型表
6 编写首轮测试说明、测试用例和实例、后端集成测试及测试运行脚本 杨熠 测试说明、测试用例 Word、测试实例目录、测试源码、运行脚本 增加测试用例表