游戏测试用例

1. 设计步骤
1. 需求文档分析
1.1 文档阅读
  • 切忌不阅读需求文档,上来直接写用例,至少读三遍文档
    1 细致理解功能设计意图和设计思路
    2 避免粗略理解带来的用例遗漏
    3 一些重要数据可能隐藏在不起眼的语句中
    4 加深对功能的理解,否则随着时间推移,可能会遗忘很多内容
  • 带着思考去阅读,如果让你设计这个功能,还有更优的选择吗?
1.2 功能细节沟通探讨
  • 不明白的地方需要及时确认,切忌脑补想当然
  • 尽早确认细节,最好在开始写之前就确认完毕
  • 关注需求变更,需求变更后,一定要跟程序和策划确认
1.3 逻辑梳理
  • 文档不一定是按照流程顺序写的,而且经常存在功能交叉的地方
  • 我们需要先梳理出框架后,逐步细化
1.4 功能拓展思考
  • 设计缺陷思考:升级;拆解;道具;领取道具的数量,次数
  • 测试难点思考:领取次数,刷新(测试,不能直接等)
  • 关联度思考:道具存储问题
  • 特殊情况思考:断电,断网,服务器维护
1.5 兼容相关思考
  • 版本兼容:同时存在两个版本时,不同的版本
  • 功能兼容:老功能中添加新英雄
  • 操作系统版本兼容:mac,windows
  • 分辨率兼容:美术展示等
2. 功能模块划分
2.1 功能模块划分时应遵循什么样的规则?
  • 高内聚,低耦合:购买月卡和购买单个分开
  • 重整体,轻局部:从整体关注
2.2 功能模块划分有哪些比较好的方法
  • 功能流程法:将功能的基本流程画出来,根据流程的每个大的环节进行模块划分,然后再细化和查缺补漏。
    举例:请就银行ATM的取款功能进行模块划分
    插卡环节–>密码登录环节–>输入金额环节–>取走钱币环节–>取卡环节
  • 层次划分法:按照逻辑层次逐层细化出模块的过程,比较适用于UI划分,大的系统模块划分等。
    举例:请就dota这款游戏进行模块划分
    dota–>战斗内的内容–>英雄–>动画;技能
    dota–>战斗内的内容–>道具
    dota–>战斗内的内容–>地图
    dota -->战斗外的内容–>账号登录;按键设置
  • 类型划分法:按照功能包含的内容的不同类型进行划分。
    举例:兵种测试,道具测试等。
    兵种测试:可训练兵种和不可训练兵种
    道具测试:可消耗道具和不可消耗道具
    类型划分法比较适用于一个功能种类相对独立,种类之间关联度较低的情况。
2.3 模块划分注意事项
  • 不同的划分方法适用不同的场景,要具体问题具体分析
  • 有时候一个功能选哟结合多种方法进行划分
  • 划分方法不重要,划分原则更重要一些
  • 划分完毕后,要结合需求文档重新梳理,确保模块清晰、覆盖完整。
3. 测试用例编写
3.1 格式
  • 一个清晰的格式很重要
    1 让用例的脉络更清晰明了
    2 方便需求变化后的更新维护
    3 方便执行人员快速入手

  • 首页内容
    1 用例名称
    2 用例对应的游戏版本
    3 编写人、编写日期、备注
    4 修改人、修改日期、修改备注
    5 需求文档的链接或地址
    在这里插入图片描述

  • 正文页内容
    1 功能逻辑图(如果有)
    2 用例id
    3 模块名称
    4 测试先决条件
    5 输入信息
    6 输出结果
    7 备注信息
    在这里插入图片描述

  • 关于格式的一些注意点
    1 尽量保证逻辑清晰
    2 尽量保证一个输入只对应一个输出
    3 保证每次更新用例后都有明确的记录标注
    4 尽量保证一个用例内格式统一

3.2 常用的测试用例编写方法
  • 等价类划分
    等价类:指的是一个输入集合内,任何输入数据对于输出的验证来讲都是等效的,此时我们就可以选取少量代表性的测试数据来代表整体数据。
    等价类分为有效等价类和无效等价类
    有效等价类:是对输出来讲有意义的输入集合,可以验证程序的正常功能和流程。
    无效等价类:是对输出无意义的输入组合,用于验证非正常流程输入对输出的影响。
    在这里插入图片描述

  • 边界值分析
    1 边界值:对输入或输出的边界值进行分析的一种方法
    2 边界值的确定:一般选取正好等于,刚刚小于和刚刚大于3种情况作为测试数据
    3 通常适用的范畴:数值测试,字符串测试,数据类型测试等
    在这里插入图片描述

  • 因果图&判定表
    1 因果图:简单来说就是输入与输出之间因果关系的一种关系图
    2 判定表:可以通过因果图来生成的一种结果判定表格
    3 因果图常常与判定表一起使用,通过因果图生成判定表,通过判定表来书写测试用例
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3.3 测试用例编写注意事项
  • 输入条件要单一明确,尽量不用容易引起误解的词,比如可能,大概等。
  • 输出要可判断且明确。最好不用“显示正确”这种词汇
  • 测试步骤要可执行
  • 保持尽量高的覆盖度
  • 能抽象的尽量抽象出来,避免无意义的冗余。
4. 测试用例整理与维护
  • 需求变化后需要及时更新老的测试用例,并写清修改情况的备注(修改内容,产品和开发负责人)
  • 测试用例应该尽量避免冗余,如果遇到重复的用例,需要根据实际情况进行修改
  • 注意测试用例的备份,写完后最好自己本地也备份一份,避免线上被人误删
2. 游戏测试bug详解
2.1 BUG详解:
  • 发现bug仅仅是测试工作的开始
2.2 BUG的鉴定标准:
  • 与需求设计不符
  • 违背常识
2.3 BUG的生命周期:

发现bug --> 提交给开发 --> 开发修复 --> 测试验证 --> 通过后关闭–> 上线前回归
测试验证如果不通过 --> 不通过继续指派给开发

2.4 BUG的等价划分:
  • P0:致命错误,需要立即修复,如宕机,重起性报错等
  • P1:严重错误,需要紧急修复,如功能流程错误、数值错误等
  • P2:一般错误,允许一段时间内修复,如功能的简单错误、界面错误等
  • P3:无关紧要的错误,允许延期修复,如错别字、某个像素点缺失等等
2.5 BUG的提报标准
  • 标题:【模块名称】+ 简短描述
  • 测试环境:标明测试用的版本,系统,服务器,账号等。
  • 描述:bug的详细描述,卡住可继续前进,卡住不能走
  • 重现步骤:重现bug修复后的结果
  • 备注:log,截图等
    在这里插入图片描述
2.6 BUG的验证标准:
  • 严格按照复现步骤验证
  • 去除测试环境影响
  • 验证标准:需要注明验证的版本、服务器等
  • 拓展:是否对其他功能有影响,做简单回归
  • 注意点:验证不能只看前端展现,更应关注后端数据
2.7 BUG的跟踪与推动:
  • 每个人都有责任跟踪自己的bug的修复状态
  • 及时与开发沟通,了解修复状态并提供修复过程中的支持
  • 久不能修复的bug需要与开发和上级确认如何处理
  • bug修复后,需要及时验证
2.8 BUG的数据分析:

1 从bug级别:P2等级bug比较多,P0、P1较少,说明项目可以
2 从项目人员bug数据:
3 功能模块bug数据:

3. 弱网测试

弱网测试指:在客户端和服务器之间进行数据传输时发生的情况。
弱网测试案例:地铁、火车、边远地区、高层建筑、汽车经过隧道,边远地区等等。通过特定工具模拟

3.1 弱网测试要解决的问题
  • 网络信号差的情况下,对游戏运行的影响
  • 高丢包率的网络环境,对游戏运行的影响
  • 不同网络信号之间切换时,对游戏运行的影响
  • 断线重连对游戏运行的影响
  • 前后端数据一致的问题
3.2 测试方法
  • 不同的系统,使用的工具不一样
  • mac系统可以借助于Network Link Conditioner或Charles
  • windows系统借助于Fiddler这个工具
    xcode --> open developer tool --> more developer tools
    登录 – > 找 Hardware IO tools for xcode下载好
    打开,Network Link Conditioner安装, 系统偏好设置
4. 客户端性能测试–安卓
4.1 客户端性能测试指标

CPU

  • 这里指的是游戏进程所占用的cpu占用率
  • 抛开场景谈cpu性能无意义
  • 安卓设备,90%的场景cpu占用小于60%
  • ios设备,90%场景cpu占用小于80%

内存(举例)
在这里插入图片描述

FPS(举例)
在这里插入图片描述
使用emmagee或GT模拟工具,顶部会出现一些使用信息

5. 客户端性能测试–ios

xcode --> open developer tool -->instruments -->
测cpu和内存: instruments --> Activity Monitor
连接手机,选好app后点recode
测FPS:instruments --> core animation
连接手机,选好app后点recode

6. 游戏接口测试

接口:代码暴露出来的属性和方法

6.1 常见的接口分类
  • 程序自身内部的模块接口
  • 程序暴露给外部其他程序调用的接口
6.2 游戏接口测试的主要内容
  • 客户端与服务器之间的网络接口测试
6.3游戏接口测试常用工具

使用Jmeter或者脚本语言自己写

### 游戏测试设计的最佳实践和常用方法 #### 设计原则与目标 游戏测试旨在验证游戏的功能、性能以及用户体验是否达到预期标准。为了有效发现潜在问题并提高产品质量,测试用应全面覆盖各个功能模块,并关注玩家可能遇到的各种场景。 #### 基本方法的应用 针对不同类型的游戏特性,可选用多种经典测试策略: - **等价类划分法** 将输入数据划分为若干个等价值区间,在每个区间内选取代表性样本作为测试点。这种方法有助于减少不必要的重复劳动,同时确保重要边界条件得到充分检验[^1]。 - **边界值分析法** 特别适用于数值型参数的处理,通过考察临界情况下的行为表现来捕捉异常状况。对于游戏角色属性设置、物品数量限制等方面尤为适用。 - **错误推测法** 结合过往项目经验或行业常见Bug类型提前设想可能出现的问题点,针对性地构建相应测试案加以排查。比如网络连接不稳定时的数据同步机制、多设备间联机互动兼容性等问题都值得特别留意。 - **因果图法** 当面对复杂交互逻辑时,利用因果关系图表梳理各因素之间的关联影响,从而指导更精准有效的测试方案制定。如多人在线竞技场内的技能释放顺序组合及其连锁反应效果模拟等情形下非常有用。 - **路径覆盖法** 对于具有明确流程导向性的玩法环节(如剧情任务推进),采取基于代码结构特征的路径遍历思路能够帮助深入挖掘内部执行分支上的隐患所在。此方式不仅限于底层算法层面,同样适合表层UI导航路线的设计考量[^2]。 #### 实践技巧总结 除了上述通用技术手段外,还应注意以下几点以优化整体工作效率: - 构建详尽的需求文档库,确保每项待测要素均有迹可循; - 积极参与前期策划讨论会议,尽早介入产品生命周期以便及时调整重点方向; - 维护好版本迭代记录档案,便于追踪历史遗留事项进展状态; - 加强团队协作沟通交流频率,促进跨部门资源共享和技术互助氛围形成。 ```python def test_game_feature(): """示函数用于展示如何编写简单的游戏功能测试""" # 准备工作:初始化环境变量、加载必要资源文件 try: setup_environment() # 执行具体操作序列 perform_actions_sequence([ "start_new_game", "select_character_class('warrior')", "enter_battle_mode()" ]) # 断言期望结果 assert check_health_points() >= MIN_HEALTH_POINTS, \ f"Health points should be at least {MIN_HEALTH_POINTS}" cleanup_resources() except Exception as e: log_error(e) raise ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值