记录哪些值会跨越各个边界
为重新开始一局、重新加载页面和开启新的浏览器会话制作一张小表。例如:重新开始时重置当前分数;个人最高分在重新加载后仍保留;新会话开始时当前关卡回到第一关。明确记录每个值以及它需要跨越的边界。这样就能发现意外保留(例如重新开始后仍显示上一局的计时器)或意外丢失(例如重新加载后最高分消失)。
探针缺失、格式错误和旧值
如果能控制测试环境,依次测试没有存储键的首次访问、有效的已保存分数,以及空值或格式错误的值。健壮的游戏应采用明确设定的默认处理,而不是显示 NaN、锁住菜单或在开始游戏前崩溃。如果分数有上限或必须是数字,就在读取数据的边界测试负数、异常大的数值和非数字输入。这些是韧性检查,并不意味着玩家能通过产品界面编辑存储数据。
关于测试游戏保存状态的常见问题
游戏在会话之间应该保存什么?
这取决于预期的体验。明确说明设置、最佳分数、进度和正在进行的运行是否持续存在,然后在重新加载和新会话边界时测试每个设置。
localStorage是否保证可用?
任何存储选择均不应被视为无条件保证。妥善处理丢失或无法使用的数据,并验证游戏在支持的环境中的后备行为。
延伸阅读
发现信息过时了? 报告需要更正的内容