测试用例
测试用例的要素
-
测试数据+操作步骤+预期结果+实际结果(核心要素)
-
前置条件+用例标题+编号+重要级别+编写人等(其他要素)
测试数据
-
输入项名称<==>取值 对应
-
所有的输入项都要体现在用例的测试数据项中
-
一个用例是一组数据的测试
-
测试数据可以是精确数据 || 范围数据
-
测试数据需要设计有效数据&无效数据
操作步骤
-
同一个功能点,操作步骤理论上是相同的
-
操作步骤尽量精简,一般是:一个页面的输入+一个提交
-
操作步骤中不要写数据,只写数据项的名称
预期结果
-
用户期望的结果,同一个数据只能有一种预期结果
-
预期结果包括总体结果和具体说明
前置条件
-
测试需要一定的条件
-
只有特殊条件才会写前置条件,否则写无
标题
-
简明扼要的描述这个测试用例,表明其作用
-
一般为数据+预期结果的合并
-
理论上来说用例的标题不可能相同
测试用例案例如下:
测试用例设计方法
等价类
- 某个输入域的集合,该集合中每个输入条件是等效的,分为有效&无效等价类。
- 需要注意不能输入的数据不需要做测试
- 设计测试用例需要同时考虑有效&无效等价类,确保软件具有更高的可靠性。
等价类划分原则
-
若规定了输入值的取值范围 ==> 确定1个有效等价类+2个无效等价类
-
若规定了输入值的集合,或是规定了必须如何的条件 ==> 确定1个有效等价类+1个无效等价类
-
若输入值是布尔量 ==> 确定1个有效等价类+1个无效等价类
-
若规定了n个输入值,并且程序要对每个输入值分别处理 ==> 确定n个有效等价类+1个无效等价类
-
若规定了输入数据必须遵守的规则 ==> 确定1个有效等价类+n个无效等价类
有效等价类∪ 无效等价类 = 全集
有效等价类 ∩ 无效等价类 = 空集
等价类设计步骤
-
为每个输入项划分等价类,得到等价类表,为每个等价类编号
-
等价类覆盖
-
设计一个测试用例,使其尽可能多的覆盖所有尚未覆盖的有效等价类。重复这一步骤,使有效等价类均被测试用例所覆盖;
- 设计一个测试用例,使其只覆盖一个无效等价类。重复这一步骤使得所有无效等价类均被覆盖;
-
举个注册账户的例子:
有效等价类覆盖:有效等价类的数量由含有最多有效等价类数量的规则决定,本例子中即为“内容”项规则。
-
A1,A2,A6,A7,A9,A10 ==> 转化为数据:用户名为6~18字母,字母开头,字母结尾,密码任意输入,再次输入密码与密码相同;
-
A1,A3,A6,A8,A9,A10 ==> 转化为数据:用户名为6~18字母数字组合,字母开头,数字结尾,密码任意输入,再次输入密码与密码相同;
-
A1,A4,A6,A7(A8),A9,A10 ==> 转化为数据:用户名为6~18字母下划线组合,字母开头,字母结尾,密码任意输入,再次输入密码与密码相同 (为了使 A7 和 A8 数量上均匀一些,这里取 A7);
-
A1,A5,A6,A8,A9,A10 ==> 转化为数据:用户名为6~18字母数字下划线组合,字母开头,数字结尾,密码任意输入,再次输入密码与密码相同;
无效等价类覆盖:A1~A15 ==> 转化为数据:用户名为1~5个字符......
综上可得一共有19个测试数据,再根据测试数据编写对应的测试用例,除此之外还需要把不区分大小写的测试用例包括进来。
边界值分析
边界值分析法是一种补充等价类划分的测试用例设计技术,它不是选择等价类的任意元素而是选择等价类边界的测试用例。实践证明在设计测试用例时,对边界附近的处理必给足够的重视,为检验边界附近的处理专门设计测试用例,常常取得良好的测试效果。边界值分析法不仅重视输入条件边界,而且也从输出域导出测试用例。
边界值选取方法
-
如果输入(输出)条件规定了取值范围,则应该以该范围的边界内及边界附近的值作为测试用例
-
如果输入(输出)条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据
-
如果程序规格说明中提到的输入或输出是一个有序的集合,应该注意选取有序集合的第一个和最后一个元素作为测试用例
-
如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例
边界值设计用例步骤
-
分析输入参数的类型:从测试规格中分析得到输入参数类型
-
等价类划分(可选):对于输入等价类划分方法进行等价类的划分
-
确定边界:运用域测试分析方法确定域范围的边界(上点、离点与内点)
-
根据等价类来组合测试用例
在上面注册账户例子的基础上,采用边界值设计用例,得到如下结果
有效等价类覆盖:
-
A1,A2,A6,A7,A9,A10 ==> 转化为数据:用户名为6字母,字母开头,字母结尾,密码任意输入,再次输入密码与密码相同
-
A11,A3,A6,A8,A9,A10 ==> 转化为数据:用户名为18字母数字组合,字母开头,数字结尾,密码任意输入,再次输入密码与密码相同
-
A1,A4,A6,A7(A8),A9,A10 ==> 转化为数据:用户名为6字母下划线组合,字母开头,字母结尾,密码任意输入,再次输入密码与密码相同 (为了使 A7 和 A8 数量上均匀一些,这里取 A7)
-
A11,A5,A6,A8,A9,A10 ==> 转化为数据:用户名为18字母数字下划线组合,字母开头,数字结尾,密码任意输入,再次输入密码与密码相同
无效等价类覆盖:A1~A15 ==> 转化为数据:用户名为5个字符......
案例:网上银行活期转定期
基于等价类边界值法设计测试用例
测试相关知识
测试用例是个手段,不是目的
1、场景法
每一个用户可以进行交互的东西都要测,比如输入框,按钮等;
2、流程去考虑
先输入手机号,点击获取验证码,输入验证码,点击登录,登录成功,这是基本流
登录失败(验证码错误),备选流
3、边界值
6-10位,那就测5,6,10,11就够了
4、等价类
7和6是同一等价类,测了6就不用测7了
5、非功能场景
网络情况,兼容性(IOS,Android),接口(涉及到手机号要验证是否加密),数据校验(去数据库看数据是否落地),UI,权限,断线重连
6、业务
验证码限制发送次数
芯片的可测试性设计(DFT):为方便芯片测试,设计中额外增加/修改某些逻辑,增加输入&输出端口,但是不会改变芯片的功能。实际测试中,将芯片插入自动测试设备(ATE)中,然后输入测试程序,通过ATE找出故障芯片。