2-2 游戏测试用例之功能模块划分
功能模块划分
划分原则:(博主自己的总结,不存在与任何软件测试书籍中)
1、高内聚,低耦合:模块内关联度高;模块间关联度低,无法合并成一个模块
比如一个货币购买的功能,月卡的购买和普通货币的购买可以划分成两个单独的模块,因为两者几乎不存在任何关联度,购买其中任何一个模块不会对另一个模块产生影响,符合低耦合的原则;
如果就月卡的购买进行分拆的话,显然没必要继续划分成功能和UI两个模块,因为月卡的购买流程非常简单,而且功能之间的关联度非常高,符合高内聚的原则。
2、重整体,轻局部:功能整体上关注模块构成、逻辑和覆盖范围,不用纠结较为具体的细节
还是以货币的购买功能为例,整体上可以划分为UI、购买与领取、特殊情况等大模块,或许也可以划分成一些子模块;不用太关注细节,比如页面上显示的倒计时、UI按钮的位置等等
划分方法:(博主自己的总结,不存在与任何软件测试书籍中)
1、功能流程法(小系统):将功能的基本流程画出来,根据流程的每个大的环节进行模块划分,然后再细化和查漏补缺
(银行取钱模块划分:插卡 -- 输密码 -- 输入金额 --取钱 -- 退卡)
2、层次划分法(大系统):按照逻辑层次逐层细化出模块,直至不能划分
(dota游戏模块划分:见截图)
3、类型划分法:按照功能内容的不同类型进行划分(如按照道具的不同类型进行划分)
注意点
不同方法适用于不同场景
有时候一个功能要结合多种方法进行划分
划分方法不重要,原则更重要
划分完成后,结合需求文档重新梳理,确保模块清晰、覆盖完整、符合需求设计
2-2 游戏测试用例之功能模块划分
2-2 游戏测试用例之功能模块划分
2-1 游戏测试用例之需求文档分析
游戏测试用例01 - 设计步骤
需求文档分析、功能模块划分、测试用例编写、测试用例整理与维护
需求文档分析:文档阅读、功能细节沟通探讨、逻辑梳理、功能拓展思考、兼容相关思考
文档阅读:切忌不阅读需求文档,上来直接写用例,至少读3遍文档
细致理解功能设计意图和设计思路
避免粗略理解带来的用例遗漏,保证测试用例的覆盖度
重要数据可能隐藏在不起眼的语句中
加深对功能的记忆,以免遗忘功能细节
思考功能有没有更好的实现方式
细节沟通探讨:
不明白的地方及时沟通,切忌脑补
尽早确认所有细节,最好在开始写之前就确认完毕
关注需求变更,需求变更后,一定要跟程序和策划确认
逻辑梳理:
文档不一定按照流程顺序写,而且经常存在功能交叉的地方,最好自己梳理逻辑
首先梳理出框架,然后梳理出细节
功能拓展思考:
设计缺陷思考(领取道具:数量、种类)
测试难点思考(领取道具:如何测试其刷新(调整服务器时间或修改配置))
关联度思考(领取道具:道具存储)
特殊情况思考(领取道具时断电断网服务器维护等特殊情况)
兼容相关思考:
版本兼容,同时存在多个版本时的兼容(交互是否有问题)
功能兼容,老功能中添加新内容(例如添加有不同属性的英雄)
操作系统版本兼容,不同操作系统版本
分辨率兼容
2-1 游戏测试用例之需求文档分析
1-3 游戏测试基本工作流程
游戏测试基本流程:(主要针对端游)
功能会议、测试用例书写、冒烟测试、详细测试、回归测试、checklist检查
功能会议:
主要由测试人员召开;
了解功能需求内容;
提出可能存在的风险点;
思考功能的测试重点和难点,入需要工具辅助,需提出开发需求
思考可以优化的地方,并提出讨论
测试用例书写:
根据需求书写测试用例;
关注功能逻辑实现;
考虑各种特殊情况,如边界值、网络中断、进程中断等;
关注需求变更情况,需求经常发生变更,需要及时调整测试用例
冒烟测试:
详细测试之前的一个小环节;
快速发现比较明显的bug;
快速确保主逻辑流程跑通;
快速明确功能开展状态
详细测试:
细致地测试每个逻辑分支、资源、配置;
尽量模拟玩家的每一种操作可能;
测试异常情况、如断网、断电、事件中断、进程中断等情况;
测试数据读取、存储、网络等内容;
测试该功能对其他功能的影响
回归测试:
测试已经被修复的内容;
测试需求调整后的内容;
再次详细测试各逻辑分支
checklist检查(如果发布版本):
简要快速地检查功能的主要逻辑点;
简单检查与该功能有关联的任何其他功能点
1-2 游戏测试主要工作内容
游戏测试主要内容(本节课主要以手游为例):
功能测试、性能测试、压力测试、兼容测试、安全测试、接口测试、日志测试、弱网测试、gm工具测试、SDK测试
功能测试:
功能测试是游戏测试中最常见的模式,主要测试方法为黑盒测试;
功能测试主要用来验证功能是否符合需求设计;
功能测试主要考虑功能正确性,而不考虑游戏底层结构及代码错误;
功能测试通常从界面着手开始测试,尽量模拟用户可能出现的操作。
客户端性能测试:
客户端CPU使用率,客户端内存占有率,客户端网络流量使用情况,客户端耗电量,客户端帧频(FPS)
使用工具:
ios常用工具:xcode自带的instrument
安卓常用工具:emmage和gt
服务端压力测试:
服务器CPU使用率、服务器内存占用率、系统吞吐量(TPS)、事务响应时间、事务成功率
兼容测试:
机型适配测试、操作系统兼容测试、屏幕分辨率兼容测试、游戏版本兼容测试
安全测试:
内存修改测试、客户端加密测试、客户端反编译测试、网络安全测试
接口测试:
服务器各个接口数据测试,主要通过工具来实现(比如用性能测试工具Jmeter只发送一个数据包)
接口安全测试,重复发送请求,查看接口处理情况
日志测试:
客户端日志、服务端日志
弱网测试:
不同网络情况,游戏的运行情况,如edge、2g、3g、4g情况
不同丢包率情况下游戏的运行情况
通过工具设置网络代理来实现,常用的fiddler(windows)、network link conditioner(MAC)
gm工具测试:
测试gm工具的功能实现,需要关注工具的设置是否在游戏中起作用
测试gm工具的数据读取、存储
SDK测试
用户数据测试;充值、消费测试;与各个渠道对接测试
1-1 游戏开发团队及流程简介
游戏开发团队;
制作人,
策划,程序,美术,测试
制作人(项目整体负责人,可看做电影中的总导演):
1、负责游戏研发环节
2、负责游戏运营环节
3、负责项目人员管理
4、负责项目事物管理
策划:
剧情:负责规划游戏中的各种剧情、故事、背景等
系统:设计游戏中各种系统的规则
数值:规划游戏中各种资源的产出、消耗等
关卡:设计游戏中的各种关卡
程序员:
代码实现人员,负责把策划的设计及美术资源等通过编码实现成可玩的程序
前端程序:实现游戏客户端的展现与逻辑
后端程序:实现服务器端的逻辑、数据验证等
美术:
制作游戏中的各类美术资源
场景、原画、UI、动画
测试:
项目中的质量保证人员,主要工作是发现游戏中存在的缺陷并及时反馈出来
功能测试、性能测试、压力测试、兼容测试、自动化测试、安全测试
游戏开发流程:
制作人:指定项目目标,规划
策划:将项目目标拆解成细致的需求,并将需求细化成文案
测试、程序、美术:将需求用代码和美术资源实现出来,测试写测试用例
测试:对项目各个方面进行质量控制,将发现的缺陷反馈出来
举报