游戏异常测试思路和常见测试点

  • Post author:
  • Post category:其他



1.游戏异常测试背景和目的


1.1背景

  1. 游戏本身具有一种玩具的属性,游戏测试除了基础功能和业务逻辑要求的玩法以外,更偏注重的是可玩性和用户体验,对局公平性和平衡性

  1. 而且游戏上下文关联性比较强,往往其中某一个环节出现异常问题,后面就没法继续玩了,或者影响游戏的公平性

  1. 游戏的实时性很强,进程往往是不可逆的,即使什么也不做,系统和服务也在向前进行,现实生活中打扑克多抓一张牌可以放回牌堆,但游戏中如果多抓一张牌,本局游戏就失去公平性或者无法进行了

  1. 又或者多人协作 / 竞技的游戏,是玩家和玩家在交互,变化性很强,行为是不可控的,玩家经常会做一些意想不到的操作,所以出现异常的几率也会大一些

  1. 游戏玩家热衷于寻找bug,并利用bug,突破游戏瓶颈,打破游戏公平,获得非法利益

  1. 所以出现异常的bug以后,bug对游戏玩法、平衡性、乃至整个系统,影响都是比较大的


1.2手段和目的


【失败性测试】、【破坏性测试】、【边界case】

,人为的制造错误事件,不按套路出牌,违反需求规定,等等

目的:检验软件 / 游戏的

【稳定能力】、【容错能力】、【故障恢复能力】

,对错误事件和异常情况下的处理,暴露更多的bug,提升稳定性

例如:无网状态点击进入游戏是否有正确反馈/引导提示

例如:等级系统有30级,每次升级可领礼包,当满级后,再次获得经验值,是否会无限次触发升级礼包?

例如:吃鸡游戏剩最后两个人时,放置一个手雷,两人距手雷距离相同,当手雷爆炸后两人死亡,算谁赢?还是服务器会宕机?


2.基础功能相关


2.1热更新 / 强更

  1. 增量热更:常见的更新手段,从上一个版本,更新到最新版本,1.2.3更到1.2.4, 可能导致:更新后无法进入

  1. 全量更新:清数据或重装包,从1.0.0更到最新版本,每次发版必须要测试全量更新 可能导致:更新后老用户能进,新用户无法进入

  1. 断点续传:更新过程中断网、杀端,恢复后继续下载 可能导致:资源不完整,无法进入游戏

  1. 弱网更新:验证弱网环境下资源更新的完整性 可能导致:资源不完整,无法进入游戏

  1. 版本兼容:新版本改变了地图中一把椅子的位置 可能导致:新版本A玩家在椅子上坐下休息时,老版本B玩家看A坐在地上


2.2停服热更 / 不停服热更

  1. 停服更新:停服前的玩家处理,通常正在游戏中的玩家,等待游戏结束,游戏外的玩家,禁止进入游戏 (停服公告) 需要注意:开服后的高并发问题

  1. 不停服更新:灰度发布,流量转移


2.3强更

  1. 强制更新:比如金融问题,游戏平衡问题,重大bug,以及无法和老版本兼容,选择使用强更


3.业务相关异常case

根据游戏类型和实际情况而定,常见分类:视觉,功能,声音,物理


3.1视觉类:

  1. 显示穿透导致的露点问题 例如:一个人拿着枪靠着一个关闭的门,他的枪穿过了门

  1. 多个面共面时,出现重叠或者不应该出现的遮挡问题 例如:画面出现闪动

  1. 画面显示异常,如闪动、闪烁、黑边、花屏等问题

  1. 特效效果不正确或者没有出现等问题 例如:麻将天胡特效播成了7小对

  1. 物体的视觉反现实 例如:树长在房子上,树的光影不正确

  1. 物体出现在不合理的位置 例如:鱼在陆地上游

  1. 物体大小与实际不符 例如:人比房子大

  1. 角色姿态异常或者动作失真等问题 例如:老人走路跟年轻人一样,进球后球员的庆祝动作异常

  1. 物体间发生物理碰撞时,卡住,卡出屏幕等 例如:一辆车撞墙后,车头卡在墙内

  1. 拖屏,GPU不能在足够快的时间里把一个帧画出来 例如:操作摇杆,角色移动存在明显滞后

  1. 贴图缺失,只显示了占位图,没有正确加载资源, 例如:环境切换到夜晚时,月亮资源丢失导致


3.2功能类:

  1. 地图漏洞,一旦进入,整个画面都没有了,穿越火线可以在漏洞里向其它玩家攻击,影响游戏公平

  1. 角色卡在某一处地点无法移动,物理运算导致的无法移动,方法是走遍地图的每个角落

  1. 狼人杀游戏,死亡后的玩家断线重连,或退出重新加入原房间后,可以语音交流,暴露对手,影响游戏公平

  1. 语音游戏,在A房间正在游戏,通过分享连接加入B房间,导致同时可以拉取AB两个房间语音流

  1. 在特定情况下,玩家可以无限次重复完成某个任务,获取无限的奖励

  1. 服务判断等级=2时,领取任务B,玩家直接跨级升到3,导致没有领到2礼包

  1. 释放持续性技能同时释放金身,技能是否还具有伤害

  1. 游戏对局中,一方全部强制退出游戏,是否会触发游戏结束

  1. 对局游戏,服务没有设置最大对局时长,导致对局永远不解散

  1. 重要操作没有二次确认,导致玩家误操作,影响游戏体验

  1. 手机核平板互通的游戏中,平板比手机视野大,导致游戏不公平


3.3声音类:

  1. 音效丢失,该播的声音没有播出来

  1. 音效使用错误

  1. 触发多个音效同时播放,重叠错乱

  1. 音效重复循环,该停止的时候没有停止,一直循环播放

  1. 音效中断,播放bgm和音效时,来电话闹钟等系统声音,导致bgm消失

  1. 音量太低或者太高

  1. 后台是否还在继续播放音乐音效,通常后台停止播放媒体声音,但播放通话声音。


3.4物理类:

  1. 物体穿透:在高速运动和快速旋转的情况下,物体可能会穿透其他物体, 例如:子弹穿墙

  1. 物体卡住:当一个物体和另一个物体接触时,可能会卡住或被卡住, 例如:角色踩到一个缝隙,导致卡脚

  1. 碰撞体检测错误:当对象的碰撞体设置不正确时,可能导致碰撞检测错误 例如:上面说的人和枪漏点的问题,一个玩家移动会将另一个不动的玩家挤走

  1. 摩擦力异常:物体的摩擦系数设置不正确,可能会在地图上滑动或旋转 例如:比如人无法走上斜坡,滑冰游戏过快或过慢

  1. 物体反弹异常:物体的反弹系数设置不正确,可能导致物体在碰撞后反弹过度或不足 例如:台球游戏,撞球和撞库后反弹效果差

  1. 物体重量异常:物体的重量设置不正确,可能会导致物体移动或旋转速度不正确 例如:足球重量过重很难移动,重量过轻很容易

  1. 物体旋转异常:当一个物体旋转时,可能会遇到旋转方向不正确或旋转速度异常等问题 例如:赛车游戏,轮子旋转方向与车的行驶方向不一致

  1. 物体移动异常:当一个物体移动时,可能会遇到移动方向不正确或移动速度异常等问题 例如:左右移动角色没有转身,人走路和跑步的速度不合适

cocos引擎常见的物理系数

  1. 碰撞体形状:用于指定碰撞体的形状,包括圆形、盒子、多边形等。

  1. 密度和质量:用于指定物体的密度和质量,影响到物体的重量和惯性。

  1. 摩擦力和弹性:用于指定物体表面的摩擦系数和反弹系数,影响到物体的运动和碰撞反应。

  1. 重力和线速度:用于指定物体受到的重力和线速度,影响到物体的运动轨迹和速度。

  1. 碰撞事件:用于监听物体之间的碰撞事件,包括碰撞开始、持续和结束等。

  1. 碰撞层和碰撞组:用于指定物体的碰撞层和碰撞组,影响到物体与其他物体的碰撞检测。

  1. 空气阻力:用于指定物体受到的空气阻力,影响到物体在空气中的运动。

  1. 物理引擎的精度和时间步长:用于指定物理引擎的计算精度和时间步长,影响到物理模拟的稳定性和准确性


3.5AI类:

找AI方面的Bug比表面设计涉及的工作更细致。

AI的行为是否符合预期、AI的响应时间、AI的难度水平等

  1. AI行为异常:确保AI在游戏中的行为符合预期,例如AI角色是否按照预定的策略进行行动,是否存在行动不连贯、随机或无效的情况。

  1. AI算法异常:验证AI算法的正确性和效率,确保其能够正确地执行各项任务,并在游戏中以合理的速度运行,不影响游戏的性能和用户体验。 例如:AI玩的比真人好,或者手牌只剩王炸,上家出一张2,AI选择出一张小王

  1. AI与其他系统异常:测试AI与其他系统(例如玩家角色、环境等)的交互是否正确。例如,AI是否正确地响应玩家的指令,是否能够正确地感知游戏中的环境变化等。例如:AI正在和对方单挑,此时敌方队友来了,AI是否能变换决策

  1. AI决策异常:测试AI在决策方面是否存在异常情况。例如,AI是否能够适应不同的游戏情况,是否能够正确地做出决策等。 例如:AI在面对敌人时,是否可以正确评估敌我实力,从而选择攻击/撤退,

  1. AI漏洞异常:需要测试游戏中的AI是否存在安全漏洞,例如是否能够被黑客攻击或者影响游戏的公平性等。例如:NPC能够被仇恨拉走

  1. AI与玩家体验异常:需要关注AI对于玩家体验的影响。例如,AI的行为是否会让玩家感到枯燥乏味或者游戏体验不好,是否存在与游戏场景不协调的情况等,根本原因是设计很糟糕

  1. AI在多人协作/竞技游戏中的异常:需要特别注意在多人协作/竞技游戏中,AI是否与其他玩家的角色行为相协调,是否会影响游戏的公平性等


4.稳定性

捕获稳定性Bug需要测试人员更多的尝试,有一些是特定场景,特定操作下才会发生的。复现和定位也是一件比较麻烦的事情

  1. 崩溃 / 黑屏,马上捕捉任何可用的Debug信息

  1. 屏幕卡住 / 卡死,跟崩溃黑屏问题类似

  1. 加载不了场景,卡在某一个页面,无法前进 / 后退,一部分没有报错内容,只能不断排查复现


5.性能相关关注点

性能Bug从某方面来说,是最容易找到却又最难修复的。


5.1CPU

挂机,什么也不干

切换场景,进进出出

游戏场景内一直玩

单元没问题后,多场景交叉集成测试

  1. 进入某场景后,什么也不做CPU就持续升高,可能是cpu空运算

  1. 某些行为发生后CPU过高,缩小范围精准排查,可能是循环计算cpu占用率增高

  1. 主要场景比竞品明显偏高


5.2内存

主要场景进进出出

游戏场景内一直玩

主要动画、动效、资源占用的单元测试

  1. 在个人主页点击围观后进到游戏场景,在游戏场景继续打开别人主页去围观,循环打开个人主页和游戏场景,内存打满崩溃

  1. 动画播放后内存没有明显回落,虽然动画消失了,但内存仍在占用

  1. 游戏中的im世界频道消息,好友消息通知,公告跑马灯,等没有正确销毁导致的内存泄露


5.3FPS

场景切换

游戏场景内一直玩

主要动画、动效表现


5.4启动加载时长

启动app时长

主要功能打开速度

游戏场景初次加载

游戏场景非初次加载

更新资源时更新速度


6.网络测试关注点


6.1断线重连

网络bug一定是服务器和客户端的连接性或带宽(上下行)相关,要想清晰有条理的设计断网测试的case,首先要弄清楚长连接心跳规则以及断开机制

例如:业务规定心跳每5秒发一次,5次无心跳T掉该客户端,那么断网超过20—25s,会断开长连接,结论:20s以内重连长连接可以恢复,25s以外重连需要重新建立长连接,所以客户端断网的测试用例需要设计在25s左右

对于无比赛竞技、无协作对战、等,以外的单机网络游戏,只需要设计统一网络处理机制,例如3次心跳内恢复连接走重连,3次心跳没回复直接清理到大厅等统一的场景,例如:捕鱼,老虎机

对于实时交互性强的游戏戏,需要保持游戏内场景的游戏,只要统一重连到最新状态即可,例如:象棋,麻将

对于实时性强且注重体验性的游戏,则需要多种机制才能丰富体验性,例如:王者荣耀


6.2断网重连的异常case

断线通常验证重连后与服务器的连接性,A点断线到B点重连的转换以及数据状态进程恢复

断线期间【数据】、【状态】、【进程】发生改变,

  1. 足球游戏,断线前比分0:0,进球后重连,仍然显示0:0

  1. 角色存活时断线,死亡后重连,角色仍然”活着“

  1. 角色在A点回城时断线,转移到B点重连,由于客户端没有处理和渲染新位置,导致角色还显示在A点

  1. 准备阶段断线,游戏开局后重连,没有进入游戏,一直卡在准备中。

  1. 游戏中断线,游戏结束后重连,一直卡在游戏里


6.3前后台切换

后台回到前台,客户端通常有以下几种处理方式

直接强制socket断开再重连,相当于重进了游戏(罕见)

直接获取服务器最新的数据和状态,(比较常见)例如:象棋游戏

处理回到app时,前x秒的历史消息队列,按消息顺序处理(比较常见)

  1. 切后台返回前台后,直接崩溃、黑屏、卡死

  1. 切后台返回前台后,bgm消失了

  1. 切后台期间游戏结束了,回到前台一直卡在游戏场景内

  1. 技能还有15s冷却时切后台,回到前台仍然是15s冷却时间

  1. 切后台期间,玩家在游戏中被其他玩家攻击导致生命值减少,回到前台后发现生命值仍然是满的

  1. 玩家点击B点寻路后切入后套,回到前台后,仍看到角色从A缓慢移动到B,实际应该追帧处理切后台期间堆积的消息,或者不需要追帧补帧的游戏直接将A强制刷新B即可


6.4弱网测试

弱网环境下游戏的常见表现是状态迟滞,请求超时

  1. 象棋步时还剩1秒时,操作移动棋子将对手绝杀,但服务收到请求消息时,已经超时,导致自己虽然看到绝杀对手,但最终自己输了

  1. 点击开枪,过1秒才播放开枪动画

  1. 拾起掉落物品超时,物品是否能显示正确


7.兼容性测试关注点


7.1软件兼容

  1. 主流软件的兼容,例如浏览器,微信分享/支付宝支付 可能导致:崩溃、返回后黑屏

  1. 软键盘兼容,系统自带键盘,常用三方键盘,横屏游戏键盘 可能导致:横屏键盘无法吊起,

  1. 相机与文件:吊起相机,拍照上传,访问手机存储,大文件上传 可能导致:崩溃,游戏进程被干掉

  1. 不同的手机兼容,系统和版本兼容 可能导致:无法运行

  1. webview兼容

  1. 三方SDK兼容


7.2硬件兼容

耳机、VR、手柄等等,暂不展开说明


X.其他异常关注点

旋转屏幕:默认旋转方向,横/竖屏,竖屏锁定下的旋转,旋转设备屏幕跟随旋转

自动登录:是否需要自动登录,记录上次登录状态、启动后自动登录

屏幕常亮:是否需要开启屏幕常亮,开启屏幕常亮的场景

多点触控:是否需要开启多点触控,若业务不需要,建议直接关闭

连续点击:连点,快点,是否重复请求,重复打开页面,重复调用

按下松开:按钮事件是以按下还是松开为判断时机

点按长按:同一个按钮短触和长按有不同的效果

屏幕适配:大屏小屏、宽屏窄屏,平板

系统兼容:安卓/IOS 向下最低版本兼容,最新版本兼容

顶部导航:是否需要在游戏内展示顶部导航栏

物理返回:是否需要屏蔽安卓物理返回键,或监听返回事件弹窗确认是否退出

网络检测:流量提醒、弱网提醒、无网处理

权限获取:各种权限的获取目的和获取时机

应用分身:建议打包时禁用

应用分屏:分屏主要检查兼容性,UI展示是否正确,物理碰撞是否生效并且正确

低电模式:低电量模式下游戏表现

设备登录:同一个账号在不同设备上同时登录

游戏加速:部分手机有手游加速模式




如果您看到这了,方便给个免费的赞,收藏,和评论吗,谢谢




版权声明:本文为qq_40016605原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。