[T.16] 团队项目:Beta 阶段测试报告

类目详情内容
所属课程 2026年春季软件工程
作业要求 [T.16] 团队项目:Beta 阶段测试报告
课程目标 团队合作经过两轮迭代完成软件开发实践
作业价值 复盘 Beta 阶段工作

Bug详细介绍

前端

编号 Bug 描述 严重程度
FE-01 小游戏界面尺寸不匹配,部分屏幕下内容溢出或视觉比例异常 P2
FE-02 TileMap 与地图资源路径/尺寸错误,40 格地图和村庄区域渲染存在错位风险 P1
FE-03 阵营、Buff、技能、事件描述硬编码,后端配置更新后前端文案不同步 P2
FE-04 preloadEventSound 返回类型与调用方不一致,触发 TypeScript 编译错误 P1
FE-05 DilemmaRace 前端逻辑错误,在线竞速小游戏状态、轨道表现或结算不同步 P1
FE-06 检查点重生提示不够准确,影响新手理解 checkpoint 机制 P3
FE-07 Vite 版本配置不兼容,生产构建存在失败风险 P1
FE-08 DevMock 的 item 模块能力不足,无法覆盖新增道具测试路径 P3
FE-09 在线小游戏整体适配存在问题,影响 CakeCutting、TrustDilemma、TypingSpeed、DilemmaRace 等组件展示和结果页 P1
FE-10 BGM、事件音效等资源路径错误,部署后存在音频加载失败风险 P1

后端

编号 Bug 描述 严重程度
BE-01 Nakama runtime.Logger 使用 Printf 风格输出时混入 key-value 参数,日志中出现 %!(EXTRA...),影响线上排障 P3
BE-02 DeathAction.Execute 未递增死亡次数,导致 survivor 成就错误授予死亡玩家 P1
BE-03 first_to_boss 成就状态存入 RoundData,小游戏阶段清空轮次数据后可能丢失 P2
BE-04 boss_kill_shotboss_damage_ten 在 HSM 直接判断,无法稳定预测 Boss 伤害前置状态 P1
BE-05 Boss 分支中存在重复计分和重复成就授予逻辑,可能造成 GameOver 分数偏高 P2
BE-06 阵营测试与当前 UI/配置定义不一致,导致 faction 回归测试失败 P2
BE-07 DilemmaRace 在线房间生命周期和结果回传不稳定,可能造成 Colyseus 房间残留或排名缺失 P1
BE-08 新增小游戏后 AllMiniGameTypes 期望列表未同步更新,小游戏选择测试失败 P2
BE-09 多阶段道具和被动道具改造后,旧测试仍按单阶段触发假设断言 P2
BE-10 地图扩展到 40 格后,资源和地图单元测试仍使用旧地图长度 P2
BE-11 道具名称调整后,资源文件和展示层常量不一致 P2
BE-12 pkg/resource 测试未对齐当前 item constants,导致资源回归失败 P2
BE-13 DilemmaRace 缺少 timer 输出,测试和调试时无法确认在线小游戏阶段推进 P3
BE-14 新增独立 Buff、被动道具、亡语机制后,Buff handler 上下文和 registry 存在错误 P1
BE-15 最终发布前 go test 因测试夹具与当前实现不一致失败 P1

Bug 统计

模块 Bug 数量 P0 P1 P2 P3
前端 10 0 6 2 2
后端 15 0 5 8 2
合计 25 0 11 10 4

场景测试

为了模拟真实使用场景,我们设计了多类典型用户角色,并以其行为路径为依据构建测试场景。每个场景都包含用户目标、测试路径和测试目标,覆盖联机同步、在线小游戏、成就计分、地图资源、Buff/Item 交互和 UI 引导等 Beta 阶段重点功能

新手

用户类型: 首次接触游戏的休闲玩家

用户需求与目标: 新手玩家并不了解 ParaDiced 的阵营、小游戏、checkpoint、Buff、道具和 HP/LP 机制,因此希望能够在不询问开发人员的情况下完成一局游戏,并在结算时理解自己为什么获胜或失败

测试路径:

  1. 进入主界面,输入显示名并连接服务器

  2. 创建 2/4 人房间,其他玩家通过房间号加入房间

  3. 房主点击开始游戏,所有玩家进入阵营选择页面

  4. 玩家查看阵营技能说明,选择青龙、白虎、朱雀或玄武

  5. 进入 40 格主地图,查看 HP/LP、道具栏、Buff 栏和当前回合提示

  6. 掷骰子移动,触发地图事件、checkpoint 或道具获取

  7. 触发小游戏,完成小游戏后查看排名和骰子奖励

  8. 进入 Boss 战或达到结算条件,查看 GameOver 动画、排行榜、分数和成就

  9. 返回大厅,尝试二次对局

测试目标:

  • 验证新手能否顺利完成从建房到结算的完整闭环

  • 验证 Beta 新增引导是否覆盖小游戏、道具、checkpoint、阵营技能、Buff、HP/LP

  • 检查阵营、Buff、技能、事件描述是否来自配置,而不是旧版硬编码文案

  • 验证 GameOver 是否展示总分、分项得分、成就和排名,而不是只显示单一 winner

房主

用户类型: 负责组织对局、拉人和开局的玩家

用户需求与目标: 房主希望房间创建、玩家加入、踢人、开始游戏、断线恢复都稳定可靠,避免多人组局时出现卡死或状态不同步

测试路径:

  1. 房主创建 4 人房间,等待 3 名玩家依次加入

  2. 等待页面实时更新玩家列表和显示名

  3. 房主踢出某名玩家,被踢玩家返回主界面,剩余玩家列表刷新

  4. 第四名玩家重新加入,房主点击开始游戏

  5. 4 名玩家分别选择不同阵营,验证阵营状态同步

  6. 进入主地图,验证 4 名玩家位置、名称高亮和当前行动玩家提示

  7. 房主在非自己回合短暂断线后重连,验证 FullSync 后状态一致

  8. 游戏过程中触发在线小游戏,验证所有玩家都进入同一小游戏并获得统一结果

测试目标:

  • 验证房间生命周期稳定,踢人、加入和开局不会造成状态机异常

  • 验证 3 人和 4 人房间均可进入主流程

  • 验证房主断线后其他玩家不会丢失对局状态

  • 验证在线小游戏启动时所有玩家收到一致的 game_type 和 connection 信息

“策略构筑”爱好者

用户类型: 熟悉规则、主动寻找 Buff/Item 组合和边界交互的玩家

用户需求与目标: 策略玩家会主动叠加 Buff、使用被动道具、测试亡语机制,并希望规则结算稳定、可预测、不重复触发

测试路径:

  1. 给玩家添加多个同类 Buff,验证独立 Buff 实例不会互相覆盖 duration 和 tick 状态

  2. 触发被动道具,验证只在对应 phase 生效

  3. 触发亡语类效果,验证死亡、复活、道具触发和成就计分顺序正确

  4. 使用骰子升级道具,验证骰子变更、分数奖励和日志条目一致

  5. 在 Boss 战中叠加防御、反伤、免疫、死亡相关 Buff

  6. 触发 GameOver,检查 item_score、boss_score、achievement_score 与过程日志是否一致

测试目标:

  • 验证新增 Buff/Item、被动道具、独立 Buff、亡语机制能正确组合

  • 验证 EventBus 多 phase 订阅不会导致所有道具被错误触发

  • 验证死亡、复活、Boss 伤害、成就授予不会重复计分

  • 验证 GameOver 中分数来源可追踪

快节奏玩家

用户类型: 快速点击、连续操作、容易触发边界条件的玩家

用户需求与目标: 快节奏玩家希望界面对快速输入有容错能力,不会因为连续点击导致重复提交、UI 错乱或状态机卡死

测试路径:

  1. 快速反复点击掷骰按钮,验证不会重复发送有效操作

  2. 快速切换阵营选择,验证最终选择正确同步

  3. 道具动画播放期间尝试再次使用道具,验证操作被正确拒绝或排队

  4. 快速打开和关闭技能、道具、事件弹窗,验证弹窗不会叠加卡死

  5. 在小游戏结束瞬间快速点击提交或返回,验证结果只提交一次

  6. GameOver 动画播放时点击跳过,验证结算页仍正常展示

测试目标:

  • 检查极端操作下是否会引发崩溃、重复提交或 UI 错乱

  • 验证 ActionRejected 能处理非法时机操作

  • 验证小游戏结果、道具使用、技能触发不会重复结算

  • 验证动画和弹窗系统在快速操作下仍可恢复

多人

用户类型: 3 或 4 名玩家同时联机游玩

用户需求与目标: 多人玩家关注同步一致性、回合顺序、公平排名和所有人看到的动画/结算是否一致

测试路径:

  1. 4 名玩家全满房间,房主开始游戏

  2. 4 名玩家分别选择青龙、白虎、朱雀、玄武

  3. 进入 40 格主地图,验证 4 名玩家位置、名称和当前玩家高亮

  4. 按玩家 A、B、C、D 顺序轮转回合,验证无跳过或重复

  5. 4 人同时参与在线小游戏 DilemmaRace、TrustDilemma、CakeCutting 或 TypingSpeed

  6. 验证小游戏排名、骰子奖励、回合顺序和显示名完整

  7. Boss 战中多人协作,验证 Boss HP、伤害动画、成就和分数同步

  8. 游戏结束后对比所有玩家 GameOver 排名和成就展示是否一致

测试目标:

  • 验证 3 人和 4 人场景下回合轮转、阵营选择、地图显示的正确性

  • 验证在线小游戏在多人场景下不会缺失玩家结果

  • 验证 Boss 战中所有玩家看到的 HP、动画和结算一致

  • 验证 GameOver 使用总积分排序,所有客户端展示一致

小游戏竞技玩家

用户类型: 关注小游戏公平性和排名反馈的玩家

用户需求与目标: 玩家希望小游戏规则明确、倒计时准确、排名公平,并且排名能正确影响骰子奖励

测试路径:

  1. 触发 DilemmaRace,验证 Colyseus 房间创建、玩家进入、倒计时、移动和结果回传

  2. 触发 TrustDilemma,验证 3 人/4 人 payoff matrix 和最终排名

  3. 触发 CakeCutting,验证切蛋糕输入、区间显示、倒计时和结果

  4. 触发 TypingSpeed,验证输入进度、正确率、结束条件和排名

  5. 查看 MiniGameLeaderboard,验证 rank、display_name、game_data 和骰子奖励

  6. 中途让 1 名玩家断线,验证小游戏结束后主流程不会永久等待

测试目标:

  • 验证在线小游戏不会重复广播 MiniGameStart

  • 验证每名玩家结果只处理一次

  • 验证小游戏名次能正确转换为金、银、铜、木骰子

  • 验证 Colyseus 房间结束后能回收,不影响下一局

测试矩阵

测试矩阵以硬件平台和游戏功能为主要维度

游戏功能 Apple macOS M4 16GB Apple macOS M1 8GB AMD Ryzen 9 PRO 8945HS Ubuntu Linux 24.04 Intel i13 Windows 11
主界面渲染与房间列表 Pass Pass Pass Pass
房间创建/加入/踢人 Pass Pass Pass Pass
阵营选择与状态同步 Pass Pass Pass Pass
40 格 BoardScene 地图渲染 Pass Pass(w):长局需观察内存 Pass Pass
TileMap、村庄区域与地图资源 Pass Pass Pass Pass
掷骰子与回合轮转 Pass Pass Pass Pass
地图事件触发与动画音效 Pass(w):Safari/WebGL 精度需观察 Pass(w):macOS WebGL 精度需观察 Pass Pass
Buff/道具显示与交互 Pass Pass Pass Pass
被动道具、独立 Buff、亡语机制 Pass Pass Pass Pass
在线小游戏 DilemmaRace Pass(w):需 Colyseus 服务 Pass(w) Pass(w) Pass(w)
在线小游戏 TrustDilemma Pass(w):需 Colyseus 服务 Pass(w) Pass(w) Pass(w)
在线小游戏 CakeCutting Pass(w):需 Colyseus 服务 Pass(w) Pass(w) Pass(w)
在线小游戏 TypingSpeed Pass(w):需 Colyseus 服务 Pass(w) Pass(w) Pass(w)
小游戏排名与骰子奖励 Pass Pass Pass Pass
Boss 战完整流程 Pass Pass Pass Pass
成就与总积分结算 Pass Pass Pass Pass
GameOver 动画与结算界面 Pass Pass Pass Pass
BGM、骰子音效、事件音效 Pass(w):受浏览器自动播放策略影响 Pass(w) Pass(w) Pass(w)
前端生产构建 Pass N/T Pass N/T
后端 Go 测试 N/T N/T Pass N/T
Docker Compose 配置 Pass(w) Pass(w) Pass Pass(w)

出口条件

在 Beta 阶段,我们设定了一系列出口条件,作为判断项目是否达到“可进入更大范围 Beta 公测”状态的标准。这些条件涵盖了功能完成度、系统稳定性、Bug 闭环和文档可用性等维度。与 Alpha 阶段相比,Beta 阶段不仅要求核心流程可跑通,还要求在线小游戏、成就计分、资源音效和新手引导达到可用状态

功能完成度

  • 核心玩法(房间创建、阵营选择、掷骰子移动、地图事件触发、道具使用、Buff 交互、Boss 战、GameOver)全部实现,并可在 2~4 人房间中完整体验

  • 40 格地图和村庄区域可正常渲染,地图长度、资源配置和后端测试保持一致

  • Beta 新增在线小游戏(DilemmaRace、TrustDilemma、CakeCutting、TypingSpeed)均可触发、游玩、结算并回传结果

  • 小游戏排名能够正确转换为金、银、铜、木骰子,并影响后续回合顺序和移动表现

  • 成就系统和总积分结算已经替代旧版单一 winner 结算,GameOver 可展示排名、总分、分项分数、成就和得分原因

  • 新增 Buff/Item、被动道具、独立 Buff、亡语机制通过核心测试和场景验证

  • Beta 引导提示覆盖小游戏、道具、checkpoint、阵营技能、Buff、HP/LP 等新手关键理解点

系统稳定性

  • 后端 go test ./... 通过,覆盖核心 HSM、engine、minigame、nakama、resource、rng、protocol 等包

  • 前端 npm run typechecknpm run build 通过,生产构建可生成 dist 产物

  • Docker Compose 配置可解析,Nakama、CockroachDB、Colyseus、cron-cleanup 服务依赖关系正确

  • 2~4 人对局过程中未发现状态机卡死、房间无法退出、玩家身份混乱或 GameOver 无法触达的问题

  • 在线小游戏结果不会重复处理,小游戏结束后不会永久阻塞 RoundMiniGameState

  • Web 前端在主流设备中主地图和小游戏保持可交互,低配环境下仍需继续观察首次加载和 Phaser chunk 体积

Bug 问题闭环

  • Beta 阶段共计发现并记录 25 个 Bug(前端 10 个、后端 15 个),全部完成处理

  • P0 级 Bug 为 0;P1 级 Bug 共 11 个,修复率 100%

  • 测试过程中发现的代表性问题包括:成就错误授予、Boss 计分重复、DilemmaRace 房间生命周期不稳定、在线小游戏前端适配错误、Vite 构建风险、音效资源路径错误等

  • 所有 Bug 均通过 Issue/PR/fix 分支或 fix commit 完成追踪和修复

  • 修复后已通过后端测试、前端类型检查、前端构建和关键场景复测确认

Beta 发布判断

按照目前测试结果,ParaDiced 已满足 Beta 发布的核心出口条件:

  • 核心玩法闭环完整

  • Beta 阶段发现的 25 个 Bug 已全部修复

  • P0/P1 无遗留

  • 主后端测试通过

  • 主前端类型检查和生产构建通过

  • 测试矩阵中没有阻断 Beta 发布的 Error 项

仍需在 Beta 公测期间重点观察的内容包括:Colyseus 在线小游戏在弱网和丢包环境下的结果回调、Safari/WebGL 渲染精度、浏览器音频自动播放限制,以及低配 Windows 设备上的首次加载性能

posted @ 2026-06-18 12:55  BitAction  阅读(12)  评论(0)    收藏  举报