环境内容及测试用例设计方法
一、环境
QA环境(测试环境)
指的是专门提供给测试环境团队使用的环境,更多时候是在公司内部环境搭建的
预发布环境
介于QA环境与线上环境之间的一个环境,预发布环境是专门来解决可能上线前存在的问题,这个环境部署的代码和生产环境的一致,唯一不同的是数据部分做了分离
线上环境(生产环境)
指的是提供给客户使用的环境
二、测试用例设计方法
1、等价类
1.1、定义
等价类是把所有可能的输入数据,即程序的输入域分为若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例,该方法是一种重要的,常用的黑盒测试用例设计方法
等价类可以理解为针对被测试程序输入的数据,可以分为有效(数据)等价类,和无效(数据)等价类
1.2、被测对象可以分为两个维度的测试
1、正常流程 需要测试的数据可以理解为有效数据
2、异常流程中需要测试的数据可以理解为无效数据
如拉钩网的注册,使用的常用手机号:
有效数据:三大运营商以及虚拟运营商规范的手机号码
无效数据:11位连续都是数字,不合法的手机号,数字和字母,特殊字符,标点符号的组合
saas化:微服务架构
Software AS A Service
paas化,平台即服务
Platform As A Service
2、边界值
定义
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界
例如:新浪注册,密码信息为6-16位数字,字母的形式,5和17位都是边界值。手机号的话,12位就是边界值。在测试时,可以将密码5、6、16、17位都进行测试,手机号就可以测试10、11、12位数字
3、错误推测方法
3.1、定义
基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法
先假设一个结论,然后通过做实验来验证这个结论是否正确,主要适用于非功能的测试用例设计方法
3.2、针对电商类的产品
打开首页后,只加载能够看见的资源信息,随着往下滑动的过程中,资源都会加载出来,这个过程可能会出现页面卡住或者卡死
3.3、针对翻页的组件
只展示当前页面的数据,后面的数据是随着翻页的过程中逐步加载的,那么可能就会出现页面卡死或者卡住
3.4、上传文件组件
上传1G文件,那么可能就会导致上传的问题缺失,或者是文件上传成功后,文件内容是乱码,还有可能是出现内存泄露
3.5、针对底层服务
1、超时,2、堵塞,3、假死
如:淘宝页面
正常的:选择产品下单支付,成功后跳转页面,不会再出现支付页面
错误:点击支付按钮没有跳转,没有支付页面,点击支付按钮多次(可能会多次支付成功、仅支付成功一次,操作太多引起卡顿),产品主页丢失,显示内容不全,颜色异常,无法点击任何位置或滑动,点击搜索框或者文字、图片不跳转,画面一直跳转等等
4、因果图方法
定义
是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况
简单理解就是被测对象有多个输入条件,根据排列组合的数学概念,把多个条件结合逻辑的关系(并且and,或者or)进行组合,得到一个输出的结果信息
恒等: 非:
或者: 与:
例如:拉勾网招聘信息
职位and工作地点(全国or北京or上海)
and工作经验
and学历要求
and薪资要求等
and排序方式——(默认or最新)
5、正交实验设计方法
定义
因果图结合排列组合设计出来的测试用例的个数是无限扩张的,但是测试资源是有限的,所以在这个情况下,只需要选择有代表性的数据进行测试,这就是正交实验分解法解决了问题
例如:拉勾网职位招聘页面
工作地点(全国、北京、上海等)在时间紧迫时,可以只选择代表性的城市进行测试
电商类:在产品分类中选择具有代表性的产品
用户画像:给用户进行标签分类(性别、爱好、年龄等),优先测评频率出现较高的一部分
6、判定表驱动分析方法
1、定义
判定表是分析和表达多逻辑条件下执行不同操作的情况的工具
拉勾网查询准确公司职位
输入职位名称(详细分类可作为一种),可以依次与工作地点、工作经验要求单一或者多个结合测试,查看网页出现具体的工作信息
2、优点
能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合
在⼀些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。判定表很适合于处理这类问题。
3、判定表通常由四个部分组成如下图所示
1)条件桩(Condition Stub):列出了问题得所有条件。通常认为列出的条件的次序⽆关紧要。
2)动作桩(Action Stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。
3)条件项(Condition Entry):列出针对它左列条件的取值。在所有可能情况下的真假值。
4)动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作
拿电商产品的商品上架为例:
1、上架审核通过,那么就可以搜索购买
2、审核拒绝,商品搜索不到
3、商品为0,商品未下架
7、场景设计方法
现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流,这种在软件设计方面的思想也可以引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试⽤例,同时使测试用例更容易理解和执行
8、功能图分析方法
⼀个程序的功能说明通常由动态说明和静态说明组成。动态说明描述了输⼊数据的次序或转移的次序。静态说明描述了输⼊条件与输出条件之间的对应关系。对于较复杂的程序,由于存在⼤量的组合情况,因此,仅用静态说明组成的规格说明,对于测试来说往往是不够的。必须用动态说明来补充功能说明.功能图⽅法是用功能图FD形式化地表示程序的功能说明,并机械地⽣成功能图的测试用例
测试用例则是由测试中经过的⼀系列状态和在每个状态中必须依靠输⼊/输出数据满⾜的⼀对条件组成。功能图⽅法其实是是⼀种黑盒白盒混合用例设计⽅法
A、判定表驱动分析方法:划分测试的范围和边界,列表需要测试各种不同条件
因果图:在划分测试范围的基础上,列出各个不同条件的排列组合的测试
正交实验分解法:在因果图的基础上,选择由代表的数据进行测试
B、产品测试,快速建立全局思维:
1、使用场景设计方法快速梳理出被测产品的核心业务逻辑
2、使用判定表驱动分析方法列出流程中可能的逻辑判断条件,使用功能图列出产品的输入输出,完善每个不同条件下的业务场景