游戏测试中的那些坑-二次确认问题
一、引言
游戏的很多系统涉及到稀有道具的扣除,购买,兑换等等都需要弹出二次确认,以防止玩家误操作造成的损失。但是二次弹框确认的背后一旦处理不好也会产生严重的漏洞哦。
声明:图片源自网络,如有问题请联系删除
二、案例
例如一个通过神器材料兑换神奇的功能,玩家搜集指定数量的材料后可以向NPC进行兑换指定的神器。由于神器材料比较稀有且可以交易,因此兑换的时候需要进行二次确认。
仔细看一下上面的时序图可以发现,步骤2进行了数量检查,在检查成功后发送确认框让玩家进行确认,玩家确认后,步骤5就直接执行了兑换。那么问题是这样的,如果服务器发送二次确认后,玩家发送确认前先将材料转移到其他地方例如仓库或邮寄给其他玩家,然后再告诉服务器确认兑换,那么步骤5直接执行兑换就有问题了。
可能实际测试中,由于二次确认客户端表现为模态的确认框无法进行操作,从而就误以为玩家在此期间无法执行其他操作,其实玩家如果采用特殊的操作(例如协议发送)还是可以干很多事情的。因此绝不能相信客户端,这是写服务器逻辑的一条铁律。
三、解决办法
这个问题的解决办法就是在客户端二次确认后,再执行一次兑换检查就可以防止漏洞的产生。所以在进行功能测试的时候,如果遇到了二次确认的逻辑时,就需要看一下服务器是否真的在二次确认后仍进行了前置检查。
欢迎微信搜索"游戏测试开发"关注一起沟通交流。