测试用例的设计方法
一、等价类划分
1.定义:
就是在所有的测试数据中,具有某种共同特征的数据子集。这里的共同特征就是是否满足需求
2.情况分类:
详细可以分为线性和非线性情况。线性需求【0,100】则分为0,100是有效的,小于0或大于100是无效的。非线性的就比如一个按钮必须双击才能触发某个操作。则其他操作是无效的
如何进行考量,通常可以通过以下。
1.数据长度,比如手机号码。一个有效11位,两个无效<1,>11
2.数据规则,手机号码。首位必须1开头,一个有效1开头,若干个无效
3.数据集合,手机号码,必须纯数字。一个有效正确数字组合,若干个,字母,特殊字符,汉字等
4.取值范围,某些要求[0,100],一个有效,两个无效
5.布尔值,要求为True,一个有效True ,一个无效False
3.使用步骤:
1.分析需求,确认输入数据的类型 2.列出规则 3.划分有效无效等价类 4.编写用例进行覆盖
4.注意:
等价类在划分的时候要注意,有效等价类要满足长度,集合,自带规则等所有条件,如果有或的关系要分两条列出,因为或表示都满足,需要都验证有效
无效等价类只需要同时不满足长度,集合,自带规则中的任何一个就可以了,无需验证重复几个条件不满足的情况,另外如果某个规则中有且的关系要都列出来,因为且表示任何一个都不能满足需求,所以要分别验证无效。比如这里的非0非1
那么0要验证,1也要验证
最终得到的测试数据如下
二、边界值
1.定义
因为大量的错误都发生在边界,所以要挑选边界附近的点,上点,离点,内点如0-100 上点:0 100 离点:-1 1 99 101 内点 :50 一共7个点,但是不是所有的都要测
[0,100] -1 0 100 101 50 (0,100] 0 1 100 101 50 (0,100) 0 1 100 99 0
区间边界值只需要5个点就可以了,不同的区间类型,测的点不同。闭区间测外离点,开区间测内离点
2.使用步骤
1.分析需求 2.规则划分有效无效等价类 3.确定测试点 4.设计用例覆盖等价类
基本上边界值法经常与有效等价类划分法配合使用的,在划分等价类之后要确定边界点在设计用例的时候考虑进去,比如小于3位的区号,这里就要在无效中确定是2位而不是1位或者0位,开区间测试点是内离点
三、判定表(全组合+优化)
1.定义
并不是所有的项目都是输入值就可以得到验证,还有一些是要通过输入和输出一起满足才能满足用户需求,也就是说输入和输出相互关联。这种情况就不能单纯的用以上方法了
比如电话有欠费和停机两种状态,欠费或停机都无法打电话。那这个用例就要使用判定表法
如果还用等价类划分。欠费的有效是欠费,无效是不欠费 停机的有效是停机,无效是不停机。
用例1.欠费且停机 2.不欠费停机 3,欠费不停机 因为无效等价类用例只需要不满足条件中的任何一个无效条件即可。所以没办法总结出不停机不欠费的情况
2.使用
根据输入输出确定条件桩,动作桩,每个条件桩的条件项列出,并做全组合就得到了规则,不同的规则会得到不同的结果也就是动作项。这样得到的就是判定表。每个规则就是对应的用例了12的条件只有停机不同所以可以合并
判定表的简化,列出全组合之后,对组合明显冲突的去除,然后看结果相同的,如果只有一个条件不同进行合并,就可以的出最终的用例表
如上,注册输入电话或者电子邮箱并输入正确验证码才能进行注册,电话错误或者电子邮箱错误提示P,验证码错误提示M
全组合后发现1,4是同时输入了电话和电子邮箱,明显与事实操作冲突,直接去。然后23 57结果相同,对比条件项不止一个不同,所以不能合并
五、因果图
1.定义
判定表要2的N次方个全组合再进行筛选。工作量是挺大的,如果有很多个组合那可能用例设计起来就比较吃力了。先分析因与因的关系 因与果的关系再进行判定表总结的方法
因果图分析法
因与果的关系有,恒等,非,或,与
原因之间的关系有,
互斥(a、b两个原因不会同时出现,最多只有一个出现),
或=包含(ab至少出现一个),
唯一(ab有且只能有一个必须有一个),
需求(a出现B一定出现),
屏蔽(a出现b一定不出现,a不出现b不一定)
六、状态迁移图法
适用于系统有很多状态的场景。先找到系统的所有状态,再分析状态之间切换需要满足的转换条件和路径,从转换路径的角度设计测试用例的方法,多用于协议测试
使用步骤,分析并画出状态迁移图,然后画状态迁移树
例子:火车票系统
没有输入只有输出的是树根【预定】开始
路径就出来了---总结出用例即可
1.预定-已支付-已出票-已使用
2.预定-退票
3.预定-已支付-退票
4.预定-已支付-已出票-退票
七、场景法
软件中一个事件的发生都是由一些情景触发的,同一个事件,不同的触发顺序和处理结果就形成了事件流。事件流分为
基本流:最正常的情况下系统的流程
备选流:出现了一些其他操作产生的分支,比如,购物车删除,订单取消等
异常流:有时候和备选流合并,比如支付时发现余额不足,这个时候取消的支付就属于异常流
使用步骤:
场景:流程开始到流程结束称为一个场景
比如注册的时候输入手机号和邮箱进行注册,如果手机号或者邮箱都不是正确格式,报错L,如果验证码错误报错M,正确手机号或邮箱,正确验证码进行正常注册
基本流:
场景1.正确邮箱---正确验证码 ----可以注册----结束
场景2.正确手机号----正确验证码---可以注册---结束
备选流:
场景3.正确手机号---错误验证码---报错M---结束
场景4.正确邮箱---错误验证码---报错M---结束
场景5.不是正确邮箱也不是正确手机号---报错L---结束
八、正交实验法
正交实验法是一种通过大量数理统计中得到的测试多条件多输入的用例的用例设计方法。从大量数据中挑选有代表性的,适量的点,从而合理的安排测试的一种方法。
因子和水平是表示条件和条件可取值的两个概念
使用步骤:1.分析需求,找到因子和水平 2.根据因子和水平查正交表 3.替换因子水平,获取用例个数 4.细化测试用例
九、错误推断法
猜测哪里可能出错。靠的是经验和直觉0.0