一、前言

  前些章节提到了程序测试很常用的黑盒测试方法,尤其是判定表和因果图法尤其重要,是需要重点学习和复习的,没看过的小伙伴可以随时查阅前置文章进行查看~,至此感谢大家这些时间的支持与鼓励 ~ ,话不多说开始今天的内容
重要的不得了!!!

二、错误推测法的魅力

  错误推测法发现的Bug

  笔者个人游戏时间通过错误推测法进行的尝试从而发现的Bug,每个游戏均有很多类似的问题,以下仅用游戏“腐烂国度2”进行展示

  1、战斗时背包装备icon缺失

  2、产生的一个异常道具配件

  3、战斗过程中枪支模型消失

问题过多,不逐一列举,上述的问题均有错误推测法所发现的~,看到了错误推测法的魅力了嘛?[手动滑稽]

  

三、错误推测法简介

  
3.1 什么是错误推测法?

  在日常测试游戏/软件时,测试人员可以根据自身的测试经验对游戏/软件的熟悉程度以及个人的直觉推测程序中可能存在的各种错误,从而有针对性地检查、编写测试用例。

  
  错误推测法所依据的四大要素

  (1)游戏/软件的熟悉程度

  (2)行业的测试经验累积

  (3)测试中方法的知识运用

  (4)个人直觉

  
3.2 错误推测法基本思想

  (1)列举出程序中可能出现的错误和容易发生错误的特殊情况

  (2)根据列举出的各类情况,取出部分做为测试用例

  
3.3 错误推测法优缺点

优点:

  (1)能够充分的发挥直觉与思维

  (2)毫无局限性,可以随时使用

  (3)随着经验与认知,不断提升错误推测法的使用,逐渐扩大收益,产生无限可能

  (4)在各类开发流程(V模型、敏捷开发等)情况下均可快速进行切入使用,无需有额外顾虑,适用性强

缺点:

  (1)推测有无限大的局限性,但思维有限,难以达到高覆盖率

  (2)存在不确定性,最坏的结果可能通过推测法一个缺陷都无法发现,存在很多未知

  (3)他人学习成本非常高,带有个人的主观性、经历以及经验,难以复用

  
3.4 错误推测法的使用方式

  (1)先行通过其他测试用例设计方法对用例进行设计

  (2)设计完成后使用错误推测法进行推测列举程序中可能出现的错误

  (3)列举后针对自身对项目的理解、对程序的理解,对所有列举结果进行筛选,最终进行用例补充

  
3.5 常见的程序错误
  

  (1)空格不会当做判断回应
  
  举例:某游戏的交易系统要求输入道具购买数量,输入文本框中如果输入的数据为空并点击交易按钮会提示您的输入数据为空,无法成功交易,当你输入一个空格在文本输入框中并再次点击交易按钮,此时仍然提示你输入数据为空

  这就是典型的空格不会判断回应,正常的表现是当玩家输入空格后,返回的结果应该是输入错误请重新输入或其他友好提示,而并非输入为空,在对输入的特别异常判断上主要是两种,一种为不输入,即输入为空,另外一种为输入空数据,即空格、制表键Tab等。

  差别也显而易见了,一个是没输入数据,另一个则是输入了,只不过输入了个空数据而已。在接口测试中也会经常出现类似的情况,换句话说一个是不传参,一个是传空参(传空格等)
  

  (2)按钮快速点击所导致的各类异常

  举例:某游戏的交易系统供角色皮肤购买,快速点击购买按钮

  在我们进行一些道具购买时玩家很可能会进行连续性且快速的点击动作,尤其是点击带有客户端请求、以及服务器处理下发相关的按钮,快速的点击事件会导致服务器与客户端在短时间内处理大量的请求与下发数据,当未生效这类防护逻辑时(例如禁止连续点击一个按钮多次),很可能会导致数据产生异常或引发其他错误

  相对于一些金钱计算非常严格的软件,例如平常购物的某宝、某东,某多多,在快速点击事件的处理上就会非常仔细,例如双11的购物上,他们无法允许这种错误的产生,因为一旦产生就是致命的,故此服务器与客户端对于这一类的事件处理就会非常的精确,但部分游戏/软件在开发时可能会忽略掉这一点,因而快速点击按钮的事件行为非常容易引起异常问题的出现(不仅仅是数据上的问题,可能导致的有UI错乱、按钮无响应,或者连带的其他集成模块受到牵连)
  

  (3)带有两个或多个的关系事件或互斥事件

笔者这里用6月25日上线的梦幻新诛仙游戏进行举例

  举例:玩家身为队员,队长此时进行了组队副本的匹配,将在3秒后进行组队副本的进入,玩家在2.5秒的时候点击了世界地图并进行了地图跳转,此时还处于loading中,队长点击副本的进入按钮。



  
  试想一下,错误的点在哪里?没错,就是两个明显的互斥关系,即:我在loading时就一定无法进入副本,我进入了副本就无法处于跳转的loading中,如果我身为队员的情况,让队长进行操作,我先行跳转了在loading过程中,队长又强制进入了副本,那么我到底是进入副本还是不进入副本,亦或者发生致命错误?…

  

  看到这里,大家应该对错误推测法有一定的理解了,错误推测法顾名思义就是进行错误的推测,好比例3,进入副本还是不进入副本的问题,当你有场景符合这类的条件,就可以使用错误推测法进行列举,并选取条件进行用例设计
  

四、知识小课堂

  
   问题一:如文章所示,错误推测法的学习成本高,更多是依据个人的游戏/软件熟悉程度,经历或是直觉去判断的,是否有学习的捷径或快速的方式?
  

   :我们可以通过Bug列表去了解,负责项目中会存在很多Bug,这些Bug通常会提交到缺陷管理平台形成Buglist,可以通过Buglist出发,去学习了解,看看出现过的Bug,有哪一些很新奇、很独特,甚至未听说过的Bug,慢慢的变得更加熟悉,更加了解。
  

  当你知道曾经的项目出现过这一类或某一个问题的时候,在下一次负责有同样特性、特征的模块/系统/玩法时自然而然就可以使用错误推测法进行用例设计,来避免同样的问题二次产生
  

   问题二:错误推测法用例设计时有遗漏,正式服/生产环境出现了问题,应该进行用例补充吗?
  

   :如果出现了遗漏内容,一定需要补充测试用例,并且需要补充多个地方:自身所负责的模块/系统,对应遗漏的模块/系统,如果这个内容有庞大的集成条件,理应写进冒烟测试检查中或通用检查点中,以防后续再次出现。
  

  
  
  好啦~以上就是本次文章分享的全部内容啦,你学会了吗?希望能给大家带来帮助哦!
  

测试用例设计方法_错误推测法(游戏向)相关推荐

  1. 测试用例设计方法_边界值分析法(游戏向)

    一.前言    经过前面的文章学习,我们了解了行业发展.Bug相关的内容.游戏测试流程以及测试方案的编写,本文章将讲解测试用例设计方法之 "边界值分析法" 详细讲解,快来和我一起看 ...

  2. 测试用例设计方法_判定表法(游戏向)

    一.判定表法简介    1.1 什么是判定表法?   判定表法又称决策表,判定表法(Decision table)同因果图法一般也是一种表达逻辑判断的工具.判定表是分析和表达多逻辑条件下执行不同操作的 ...

  3. 【黑盒测试用例设计方法4】因果图法及其示例

    [黑盒测试用例设计方法4]因果图法及其示例 因果图可以描述系统的输入和输出的因果关系以及输入和输入之间的约束关系.根据系统输入和输出之间的因果图可以得到判定表,因果图和判定表两种方法经常一起使用. 输 ...

  4. 测试用例设计方法_测试用例设计方法——流程分析法(场景法)

    测试用例设计方法中,流程分析方法又称为场景法,是根据不同的业务场景来编写测试用例. 流程分析主要包括三个流程: 1.   基本流:也就是正向流程,通过业务流程输入都为正确的,能够最终达到目标的流程.如 ...

  5. python测试用例设计方法_功能测试用例设计方法分享

    本文首发于:行者AI 测试用例可以用来衡量一个项目测试质量,因此在平时的测试流程中,编写测试用例就是测试过程中很重要的一步,每一个测试工程师都需要并且非常熟练的编写测试用例,能在编写测试用例中尽可能的 ...

  6. 测试用例设计方法_黑盒测试——测试用例设计方法

    黑盒测试 也称为功能测试或数据驱动测试.通过软件的外部表现来发现其缺陷和错误.在测试时,把被测程序视为一个不能打开的盒子,在完全不考虑程序内部逻辑结构和内部特性的情况下进行.它是在已知产品所应具有的功 ...

  7. 测试用例设计方法:场景分析法(又名流程分析法)

    分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击人工智能教程 场景分析法 分析软件应用的场景,从用户的角度出发,从场景的角度来设计测试用例,是一种面向用 ...

  8. 四因素三水平正交试验表_测试用例设计方法(二)——正交实验法

    正交实验法严格来说不是为测试用例设计的方法,它广泛用于各种实验实践中.是研究多因素多水平的又一种设计方法,它是根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的点具备了"均 ...

  9. 常见的测试用例设计方法7---因果图法

    目录 一,因果图法的定义 二,因果图法的意义 三,因果图法的适用场合 四,因果图法的表示 五,因果图法的四种关系 六,因果图的基本约束 七,因果图的分析步骤及案例 一,因果图法的定义 因果图法是一种利 ...

最新文章

  1. 编译器设计-自下而上分析器-误差恢复-语义分析
  2. 自动化发布-GitLab WEB Hooks 配置
  3. 如何让SD-WAN超越MPLS?
  4. 健康很重要 程序员应该坚持正确的坐姿工作
  5. mysql 5.764_RHEL5.764位源码编译安装MySQL-5.5.42遇到的问题
  6. 聊透分布式系统一致性
  7. 十三、axios框架学习
  8. vue2.0 路由不显示router-view
  9. 传统反病毒软件厂商学会新把戏
  10. 导出oracle11g的空表,轻松解决oracle11g 空表不能 exp 导出 的问题。
  11. 给大忙人们看的 Java NIO 极简教程
  12. mybatis框架搭建学习初步
  13. 使用 Cobbler 自动化和管理系统安装
  14. Linux ls按时间排列
  15. 内网通修改积分文件_【页游逆向】4399小游戏积分系统分析及修改积分
  16. 天勤2022数据结构(四)数组、矩阵与广义表
  17. VScode配置C/C++环境以及stdafx.h报错解决方法
  18. iOS逆向之微信和支付宝修改步数 简洁无脑版
  19. 爬虫项目十八:用Python对拉钩网全部城市所有招聘信息爬取
  20. linux和手机通讯,在Linux的系统下使用红外进行手机通讯

热门文章

  1. H.266帧内预测:位置决定的帧内预测组合(PDPC)
  2. Quartz教程六--CronTrigger
  3. ubuntu下的常用技巧
  4. CSS颜色表示及CSS选择器
  5. 不知道O2O产品的APP该如何运营推广?
  6. 微信小程序开发之——个人中心-首页(4)
  7. 反跟单讲解1:重新认识期货反向跟单
  8. kibana 更新 索引模式_Kibana探索数据(Discover)详解
  9. 【python】DHCP_Discover数据包构造
  10. [小狼毫]安装,现成的拼音配置方案