摘要
Simulator 的很多测试在运行前会先核对“这条规则的依据是否来自当前安装的游戏版本”,这叫来源门禁。游戏从旧版本更新到 0.81.04 后,Simulator 全量测试出现 257 个“准备错误”。它们不是 257 个伤害算错,而是测试根本没被执行。本实验重新审阅当前版本里与伤害相关的原始依据,让其中 71 个案例恢复执行。生产代码、规则版本 Core382 和公共接口都没有改。
要回答的问题
准备错误背后的伤害断言在当前版本下是否仍然成立?能否在不放宽断言的前提下让它们重新运行?
方法
- 游戏知识模块新写一个审计器,逐点校验当前版本中 233 处相关指令、9 个浮点常量、6 个完整的凤凰伤害函数和 3 种模板;另有门禁测试专门检验缺失指令、常量漂移、版本错误、安装中途更新,以及舍入的标准答案。
- 新旧版本的证据分开存放;测试改用当前门禁,但保留原来的行为断言。
结果
| 测试模块 | 原准备错误 | 保留的实际断言 |
|---|---|---|
| 单位伤害抽样 | 17 | 随机区间、拒绝与回退、零值、模板截断、幸运取整;4,096 组伤害包数值和随机流位置对照 |
| 凤凰整组伤害执行 | 54 | 各阶段伤害、三种凤凰的普通攻击 / 反击、额外攻击、警戒、资源和精确回放 |
两个文件共 110 个测试(另有 39 项原本就通过),没有删除或放宽任何数值、行为和回放断言。4,096 组矩阵是显式构造的测试输入,不能算作 4,096 局对战。
Simulator 全量:11541 通过、68 失败、186 准备错误、2 跳过、26 严格预期失败。与上一轮相比,减少的 71 个坏节点全部来自上述两个模块,没有新增坏节点或遗漏旧节点。游戏知识模块全量 6860 通过、35 失败、7 准备错误,新增 244 项证据检查、减少 2 个旧失败。最终聚焦检查 435 项通过。
失败与负结果
剩下 186 个准备错误属于其它旧版本门禁(横扫、对象来源等),需要分别重审,没有因为这次数值兼容就一并放行。68 个原有断言失败和 26 个严格预期失败继续可见。
局限
复制体复活资格与脆弱状态、残骸召唤数量、九头蛇横扫、奈拉之吻后续打击等已知缺口都没有修复。这轮改善的是“测试真的在执行”和当前版本的来源校验,不能说 Simulator 完全正确。
结论与下一步
“新旧证据分存、使用当前门禁、保留原断言”被确立为后续门禁迁移的标准做法;剩余 186 个准备错误按机制逐批重审。
Comments