协议测试:针对通信协议进行的测试,是对常规测试的一种补充。
重要性:实现一些常规测试中无法实现的流程,修改通信数据包检测服务器异常处理,修改数据包的先后次序检查服务器处理流程。
协议测试的主要测试点:
1.数据类型溢出:通信双方对协议数据类型的解析不一致,导致内存操作错误。
2.数据包构造欺骗:根据数据包的规则创建出一新的数据包,填充数据包后发给server,用来模拟client的操作(比如使用某些不存在的物品)。
3.数据包重发:拦截和监听数据包,把监听到数据包重复发送给server,检测server是否有容错检查。
4.逻辑数据包先后次序:例如在未锁定情况下交易,CF在同时捡取物品时变身。
5.C/S定义数据长度字段不一致:在便携程序是未考虑到client上发送数据的安全性,未对字段ncount进行检查导致内存copy越界。
6.非正常逻辑server未做检查:例如提交任务/NPC编号不存在,发送私聊的GID不存在。
游戏协议测试优先级:背包/仓库道具系统----交易系统----邮件----商城----装备打造----战斗技能系统----移动系统----帮派/家族系统
协议测试的步骤:
准备阶段(80%):系统业务的理解,协议交互流程,测试用例设计,工具选择或开发
执行阶段(10%):测试用例/场景执行,