分支剧情怎么测试:路径覆盖、状态矩阵与回归测试
分支剧情测试不能靠“把每个结局玩一遍”。一条结局可能由多种状态到达,同一节点也会因关系、证据和资源不同产生错误。可执行方案是分层覆盖:先自动检查图结构,再测试关键状态组合,最后用代表路径验证完整视听体验。

开篇导读
分支剧情测试不能靠“把每个结局玩一遍”。一条结局可能由多种状态到达,同一节点也会因关系、证据和资源不同产生错误。可执行方案是分层覆盖:先自动检查图结构,再测试关键状态组合,最后用代表路径验证完整视听体验。
第一层:静态检查结构
在不运行游戏时检查节点 ID 唯一、所有出口存在、非结局节点有出口、非开场节点有入口、变量类型正确、本地化键和媒体引用齐全。报告孤岛、死路、无法满足的明显条件和没有读取的状态。
静态检查快,适合每次提交运行。它不能证明故事好看,却能在测试人员观看视频前拦住大量拼写和引用错误。
第二层:状态转换单元测试
对每个选项验证前置条件、写入结果和目标节点。给定已知初始状态,提交选择后断言关系、证据、资源和世界状态准确变化;重复提交不会重复发放;超时与无输入走规定路线。
复杂命名规则拆开测试。例如 can_publish_truth 分别验证缺证据、低信任、资源不足与全部满足。边界值尤其重要:关系阈值上下各一档,资源 0 和 1,集合刚好缺一项。
第三层:用成对覆盖缩小组合
所有变量全排列通常不可行。先识别会共同影响同一节点的变量,再用成对或风险导向组合,保证每对重要取值至少共同出现一次。对结局、付费、存档迁移和不可逆状态等高风险区域,增加三元组合或穷举。
状态矩阵每行一个用例,列出初始值、路径、预期可见选项、媒体变体、最终状态和结局。不要只写“测试低信任”,必须给出可复现值与版本。
第四层:代表路径端到端验证
至少覆盖最快主线、最高证据、最低关系、资源耗尽、全程超时、辅助模式、章节跳转与旧存档迁移。完整观看检查叙事因果、表演、字幕、音频和无缝切换,这是单元测试无法发现的。
每条路径生成访问日志,与预期节点序列比较。发生偏差时能定位首个分叉,而不是到结局才发现结果不对。
缺陷报告必须包含状态
报告写构建版本、平台、语言、存档版本、起始节点、关键变量、操作步骤、实际与预期、媒体 ID、日志和截图或录屏。只说“第三章进了错误结局”几乎不可复现。
提供调试面板导出匿名状态快照,但正式玩家数据要遵守隐私约束。测试工具可以跳到节点,仍需定期从真实前置路径进入,因为跳转可能漏掉写入。
回归范围按影响图决定
修改节点出口时,测试所有进入该节点的代表状态和下游关键路线;修改共享视频时,检查所有引用路径;修改基础变量时,扩大到所有读取它的节点。维护“节点—变量—资产—测试”追踪关系,可自动建议回归集合。
不能只重测缺陷发生的那条路线。修复常把错误移到另一个入口,尤其是汇流和存档恢复。
建立发布门禁
阻断问题包括不可达主线、状态损坏、存档丢失、黑屏卡死和关键字幕缺失;严重度、优先级和允许延期标准在测试前定义。每个发布候选保留测试报告、未决问题及风险签署。
覆盖率可以统计节点、选项、状态对、媒体和结局,但数字不是质量本身。100% 节点访问不代表所有逻辑组合正确,报告中应同时写未覆盖的风险。
让自动化负责重复,人负责体验
无头运行器可快速遍历节点、注入状态、验证断言和生成路径;设备自动化可测试启动、下载和存档;人类测试集中在选项理解、表演连续、视听节奏和情绪因果。不要让测试人员反复看相同十分钟只为确认一个布尔值。
管理测试数据和存档样本
为每个重要版本保存一组最小存档:章节入口、关键阈值上下、资源耗尽、各主要结局前和旧模式。样本注明内容版本与预期,不由测试者手工随意修改。构建完成后批量载入,既验证迁移,也验证隐藏条件没有漂移。
测试账号、分析环境和正式环境分开,避免遍历脚本污染玩家数据。用于复现的日志和存档若含设备或账户信息,按项目隐私规则脱敏、授权与删除。
下一步:为一章建立状态矩阵,先自动检查全部节点和选项,再挑六条代表路径做端到端观看;每个缺陷都关联受影响变量与回归集合。


