游戏测试中的那些坑-二次确认问题

简介: 仔细看一下上面的时序图可以发现,步骤2进行了数量检查,在检查成功后发送确认框让玩家进行确认,玩家确认后,步骤5就直接执行了兑换。那么问题是这样的,如果服务器发送二次确认后,玩家发送确认前先将材料转移到其他地方例如仓库或邮寄给其他玩家,然后再告诉服务器确认兑换,那么步骤5直接执行兑换就有问题了。

游戏测试中的那些坑-二次确认问题


一、引言


   游戏的很多系统涉及到稀有道具的扣除,购买,兑换等等都需要弹出二次确认,以防止玩家误操作造成的损失。但是二次弹框确认的背后一旦处理不好也会产生严重的漏洞哦。

   声明:图片源自网络,如有问题请联系删除

二、案例


微信图片_20220424110339.png


   例如一个通过神器材料兑换神奇的功能,玩家搜集指定数量的材料后可以向NPC进行兑换指定的神器。由于神器材料比较稀有且可以交易,因此兑换的时候需要进行二次确认。


微信图片_20220424110348.png


   仔细看一下上面的时序图可以发现,步骤2进行了数量检查,在检查成功后发送确认框让玩家进行确认,玩家确认后,步骤5就直接执行了兑换。那么问题是这样的,如果服务器发送二次确认后,玩家发送确认前先将材料转移到其他地方例如仓库或邮寄给其他玩家,然后再告诉服务器确认兑换,那么步骤5直接执行兑换就有问题了。


   可能实际测试中,由于二次确认客户端表现为模态的确认框无法进行操作,从而就误以为玩家在此期间无法执行其他操作,其实玩家如果采用特殊的操作(例如协议发)还是可以干很多事情的。因此绝不能相信客户端,这是写服务器逻辑的一条铁律



三、解决办法


   这个问题的解决办法就是在客户端二次确认后,再执行一次兑换检查就可以防止漏洞的产生。所以在进行功能测试的时候,如果遇到了二次确认的逻辑时,就需要看一下服务器是否真的在二次确认后仍进行了前置检查。


欢迎微信搜索"游戏测试开发"关注一起沟通交流。

相关文章
|
XML 网络协议 测试技术
【游戏专项测试】弱网测试-NEWT使用
【游戏专项测试】弱网测试-NEWT使用
【游戏专项测试】弱网测试-NEWT使用
|
测试技术 数据库
腾讯游戏测试工程师的经验心得分享
腾讯游戏测试工程师的经验心得分享
434 0
|
测试技术 5G iOS开发
【游戏专项测试】弱网测试-测试用例
【游戏专项测试】弱网测试-测试用例
|
小程序 测试技术 Python
软件测试|教你使用Python实现五子棋游戏(一)
软件测试|教你使用Python实现五子棋游戏(一)
软件测试|教你使用Python实现五子棋游戏(一)
|
13天前
|
存储 算法 C语言
用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容
本文探讨了用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容,旨在为开发者提供全面的指导和灵感。
30 2
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
软件测试中的人工智能:改变游戏规则的革新
在这篇技术性文章中,我们将深入探讨人工智能(AI)如何彻底改变了软件测试领域。从自动化测试到智能缺陷检测,AI不仅提高了测试的效率和准确性,还为软件开发团队提供了前所未有的洞察力。通过具体案例,本文揭示了AI在软件测试中应用的现状、挑战及未来趋势,强调了技术创新在提升软件质量与开发效率中的关键作用。
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
软件测试中的人工智能:改变游戏规则的技术革命
【10月更文挑战第10天】 本文深入探讨了人工智能在软件测试中的应用,揭示了它如何提高测试效率、减少人为错误,并预示了未来软件测试行业的发展趋势。通过案例分析和原理讲解,文章展现了AI技术在自动化测试、缺陷检测和性能评估等方面的巨大潜力。
|
3月前
|
测试技术 C# 图形学
掌握Unity调试与测试的终极指南:从内置调试工具到自动化测试框架,全方位保障游戏品质不踩坑,打造流畅游戏体验的必备技能大揭秘!
【9月更文挑战第1天】在开发游戏时,Unity 引擎让创意变为现实。但软件开发中难免遇到 Bug,若不解决,将严重影响用户体验。调试与测试成为确保游戏质量的最后一道防线。本文介绍如何利用 Unity 的调试工具高效排查问题,并通过 Profiler 分析性能瓶颈。此外,Unity Test Framework 支持自动化测试,提高开发效率。结合单元测试与集成测试,确保游戏逻辑正确无误。对于在线游戏,还需进行压力测试以验证服务器稳定性。总之,调试与测试贯穿游戏开发全流程,确保最终作品既好玩又稳定。
131 4
|
4月前
|
jenkins 测试技术 持续交付
解锁.NET项目高效秘籍:从理论迷雾到实践巅峰,持续集成与自动化测试如何悄然改变游戏规则?
【8月更文挑战第28天】在软件开发领域,持续集成(CI)与自动化测试已成为提升效率和质量的关键工具。尤其在.NET项目中,二者的结合能显著提高开发速度并保证软件稳定性。本文将从理论到实践,详细介绍CI与自动化测试的重要性,并以ASP.NET Core Web API项目为例,演示如何使用Jenkins和NUnit实现自动化构建与测试。每次代码提交后,Jenkins自动触发构建流程,通过编译和运行NUnit测试确保代码质量。这种方式不仅节省了时间,还能快速发现并解决问题,推动.NET项目开发迈向更高水平。
51 8
|
4月前
|
Java Spring UED
Spring框架的异常处理秘籍:打造不败之身的应用!
【8月更文挑战第31天】在软件开发中,异常处理对应用的稳定性和健壮性至关重要。Spring框架提供了一套完善的异常处理机制,包括使用`@ExceptionHandler`注解和配置`@ControllerAdvice`。本文将详细介绍这两种方式,并通过示例代码展示其具体应用。`@ExceptionHandler`可用于控制器类中的方法,处理特定异常;而`@ControllerAdvice`则允许定义全局异常处理器,捕获多个控制器中的异常。
55 0