用例设计第二天
一、正交实验法
概念
- 用来研究多因素多水平的一种试验法。
- 使用数学工具:正交表
适用范围
- 配置测试:通过调整不同的配置单元以及配置项,使得软件系统获得最优的服务效果
- 兼容测试:
- 功能测试:有多个输入框,每个输入框又分别有不同个数的值。
适用特点
- 均匀分散:
- 整齐可比:
- 举例:
- 某网页涉及兼容测试:
- 操作系统:windows、macOS、ubuntu
- 浏览器:firefox、chrome、safari、Netscape
- 修改某电商平台的物流地址:省、市、县区
- 某网页涉及兼容测试:
- 因素:影响试验结果的要素。 比如:操作系统、浏览器
- 水平:因素的实际取值。比如:windows、macOS、ubuntu 这三个就是操作系统的水平
使用步骤
- 确定因素
- 例子: 登录功能要求输入用户名、密码、验证码;如果三个项都正确,就登录成功,任何一项错误,登录失败
- 这里 的用户名、密码、验证码就是因素
- 确定因素水平
- 用户名、密码、验证码的取值分别是正确、错误。
- 选择正交表:根据确定的因素和水平,选择合适的正交表
- 如果刚好有对应的正交表,比如:三因素两水平的表
- 如果没有刚好对应的正交表,以最多的水平数为基准去选,选行数最少的正交表
- 参照正交表编写测试用例
- 一行一个用例
pict的用法
-
安装到本地,推荐D盘的根目录
-
使用cmd打开命令窗口
-
准备model文件
-
执行pict命令,生成正交表
-
根据正交表写用例
-
例子:
编号 标题 操作步骤 预期结果 1 使用错误的密码进行登录 输入正确的用户名,输入错误的密码,输入正确的验证码,点击登录 登录失败 按照这个正交表来实现的时候,发现遗漏一个全部正确的一个用例。所以在使用正交实验法设计用例之后,需要根据经验进行补充用例。因为正交实验法是两两匹配,对于三个的水平匹配会主动遗失掉,在审查用例的时候,从三个组合入手。
-
二、状态迁移法
概念
- 根据事物在不同状态下进行转换,从而使用状态转换事件来设计测试用例的方法。
- 状态机:在某些事件推动下,事物的状态会发生变化,但是总的状态数量是有限的
两个要素
- 事件:导致事物状态发送变化的行为。比如:关门,门在被推拉情况下,合上。
- 状态:事物在某一时刻所呈现出来的情况。
适用范围
- 针对被测对象的状态比较多,而且状态之间相互转换的关系比较多的情况
使用步骤
-
确定被测对象的状态,以及触发状态发生变化的事件
编号 状态 状态的描述 1 新建 当把商品加入购物车,提交订单成功时候 -
绘制状态迁移图
-
用圆圈代表状态
-
使用有向箭头指示状态迁移的方向
-
箭头上标记事件
-
-
画出状态迁移树
- 在状态迁移图中选一个状态,观察出去箭头,按照这个箭头的方向,转化为树图
-
编写测试用例
-
依据状态迁移树,来编写用例,一个分支一条用例
编号 标题 步骤 预期结果 1 把关闭的门转到打开状态 使用手推动关闭的门 门打开
-
-
优点
- 针对被测对象状态比较多且转换过程复杂的情况,能够保证测试用例设计的完整性。
-
缺点
- 不关注输入、业务逻辑细节
三、错误猜测法
概念:
- 基于经验和直觉推测程序中可能存在的各种错误,从而针对性去设计测试用例。
- 依赖测试工程师对产品业务的熟悉程度,对历史问题的熟悉程度,项目经验
- 有哪些经验可以借鉴
- 边界值
- 极限值
- 特殊取值:单引号、尖括号<>
- 年月日取值
- 工作当中曾经出现过的问题
- 优点
- 发挥人的直觉和经验
- 集思广益
- 方便使用、快速切入
- 缺点
- 没法评估用例的覆盖度
- 遗漏未知区域
- 带有主观性,无法复制
- 只能是一种用例设计的补充方法,无法单独使用
四、随堂练习
-
昨天的作业
根据以下需求场景描述设计用例:用户进入到网站后,进行书籍的选择,当选好自己心仪的书籍后进行订购,这时把所需图书放进购物车,等进行结帐的时候,用户需要登录自己注册的帐号,登录成功后,进行付款交易(假定付款时只判断余额足不足),交易成功后,生成订购单,整个购物过程结束。请根据流程分析法/场景法设计用例。 写一段程序来重新格式化文本,具体如下: 给定一段连续的文本,以ENDOFTEXT字符结尾,并且文本内的字之间使用BLANK或者NEWLINE字符隔开,根据下面规则把该文本转成一行接一行的格式: 行在文本有BLANK或NEWLINE处中断; 行尽可能长; 行的长度最长不能超过设置的MAXPOS长度个字符; 请根据错误猜测法设计可能的用例有哪些。
-
正交实验法的练习题:
- 查询个人社保信息的功能:用户可以通过姓名、身份证号、手机号来查询自己社保信息,该功能可以根据任意一个条件,或组合进行查询,如果没有填写值,根据有值的,如果都没有,则不查询。
-
状态迁移法的练习题:
- 京东商城订单流程:用户将商品加入到购物车,然后在购物车里面点击提交订单,数据库的订单表就会新增一条订单数据,状态为未支付;用户支付之后,状态更新为已支付;订单就会在仓库管理系统中查询到,仓库工作人员就可以将订单打印出来,并去捡取响应的商品,捡好之后,推到打包区,订单状态更新为已拣货;打包人员根据订单的明细,然后进行包装,完成之后,商品被放到出库区,状态更新为已打包;快递车根据订单配送地址进行分拣配送,状态更新配送在途;当买家收到快递,完成签收之后,状态更新为已签收。注意以下,配送在途之前的订单允许取消。
五、用例设计方法总结
学了六个方法:等价类、边界值、流程分析法、状态迁移法、正交实验法、错误猜测法
还有两个方法:判定表法、因果图法
1. 等价类、边界值针对输入域,这两个方法一起用。横向覆盖
2. 流程分析法针对业务流程或算法,我们测试最终的对象算法,尤其是功能测试中。纵向覆盖
3. 正交实验法:针对均匀分散、整齐可比的测试对象
4. 状态迁移法:被测对象状态比较多,且互相之间的迁移比较复杂。
5. 错误猜测法:根据测试工程师的经验来使用,备胎方法。
猜测法
还有两个方法:判定表法、因果图法
1. 等价类、边界值针对输入域,这两个方法一起用。横向覆盖
2. 流程分析法针对业务流程或算法,我们测试最终的对象算法,尤其是功能测试中。纵向覆盖
3. 正交实验法:针对均匀分散、整齐可比的测试对象
4. 状态迁移法:被测对象状态比较多,且互相之间的迁移比较复杂。
5. 错误猜测法:根据测试工程师的经验来使用,备胎方法。