LyraStarterGame 是 Epic 的 UE 教学项目,第三人称射击,带武器、装备、队伍、HUD 一整套系统。我拿它做了一次完整的游戏项目测试,从测试宪章到封板,96 个 CQTest 自动化用例,88 个 手工测试 总共发现13个已知问题(12 个 Bug + 1 个玩法建议)。这篇文章讲方法和结果,完整测试文档入口见下方导览。

想看什么 跳转
完整测试文档(37 份合并) 全部文档
测试总结报告 测试总结报告
Bug 报告汇总(13 项) 00-Bug清单
用例分级清单(并入/删除理由) 用例分级清单
性能测试总结报告 性能测试总结报告

测试案

划定测试范围 8 个游戏系统加性能专项:武器与装备、控制、相机、HUD、前端页面、音频、队伍、初始化链路,性能测试单独算。状态系统评估后移除,事件测试(死亡、重生这类跨系统链路)独立成册。

范围上做了几个决定:

  • 黑盒测试为主,集成测试为主。除非明确标自动化,一律从玩家视角描述。
  • 不单独测 GAS。Gameplay Ability System 不设独立系统,相关功能归进各系统的细则。
  • 边界值测试包含 min , min -x , 0 , max + min / 2 , max , max + x。
  • 测试方式只有两种:C++ CQTest 跑重复性高的用例(数值边界、状态流转、输入模拟、回归验证),手工跑需要视觉、手感、听感判断的用例。蓝图功能测试,Lua测试框架弃用。

CQTest 是什么

CQTest 是 Epic 的 C++ 测试框架,测试直接跑在游戏进程里。相比与蓝图测试有更高的自由度,面向AI友好,缺点是结构修改需要重编译,一次编译耗时5-6分钟。

最后 96 个用例分布:武器与装备 21、控制 30、事件 13、初始化链路 5、相机 9、音频 8、散布 10。每个套件对应一个 .spec.cpp 文件。

手工部分

自动化覆盖不了视觉、手感、听感。四个手工 Session:

  • Session 1:武器动画、装备动作
  • Session 2:控制动画、视角、相机
  • Session 3:HUD、队伍、音频
  • Session 4:探索性测试(EX-01 地图互动效果,90 分钟纯手工)——最有价值发现是无方向 Dash 仅在特定朝向触发(AM-03-06),另有弹射器、传送门、手雷一批交互问题

测出来的问题

结束时 13 个已知问题(12 个 Bug + 1 个玩法建议),没有阻塞级。

性能测试

封板后补了一轮性能专项:三轮 Unreal Insights trace(共 3348 帧)定位,再打包 Development 版复测。结论一句话:真实可复现的问题收敛到两个——体积云渲染尖峰(PIE 下 8.6ms 典型、99ms 尖峰,打包版 GPU 侧数字待确认)和 GC 卡顿。PIE 里约 80ms 的 GC 大暂停大部分是 Python 插件放大,打包版真实代价 18ms,降为 P2;打包版主要卡顿变成操作触发的编译类冻结(切换画质 PSO 现场编译约 1.5 秒、首次打开设置菜单 653ms)。下一步是把性能门禁做成 Gauntlet 自动化回归(PF-01~12)。

完整测试文档

全部文档(总纲、用例分级清单、系统测试用例、Bug 报告、性能与探索专项)合并成了一个页面:LyraStarterGame 测试文档