等价划分法
等价类划分标准
弱覆盖 测试用例覆盖所有的等价类
强覆盖 测试用例应覆盖所有等价类的组合
一般 只覆盖有效等价类
健壮 覆盖有效和无效等价类
等价类划分法例题
例题一:汽车销售系统
答案:
(以下为弱健壮覆盖标准)
弱健壮覆盖标准解法:
每个变量均取有效值
一个变量取无效值,其余均取有效值
没有均取无效值的
这道题的解题步骤如下:
首先划分等价类
题目要求汇总销售额,于是我们应当求出最小销售额,最大销售额,根据销售额划分销售额的等价类
然后根据弱健壮划分标准:对于每个输入的变量我们可以得到:
ABC分别有一个有效等价和两个无效等价
划分测试用例时候根据输入直接划分覆盖等价类可以有
1,2,3
2,3,4
2,3,5
1,3,6
1,3,7
1,2,8
1,2,9
数字为等价类的编号(1,2,3覆盖了所有有效,其余的分别是一个输入取无效,其余取有效,比如2,3,4为BC车取有效,A车取无效)
然后由此我们可以设计测试用例了
以上就是用弱覆盖标准法划分设计的测试用例
例题二:nextDate函数
NextDate函数是一个有三个变量month(月份)、day(日期)和year(年)的函数。输出为输入日期后一天的日期。要求输入变量month、day和year都是整数值,并且满足下条件:1≤month≤12、1≤day≤31、1912≤year≤2050。
针对上述需求分析,先编写一个包含NextDate函数以及对日期合法性检查的C程序,然后按照强一般等价类为该函数设计测试用例(提示:因为是强一般等价类,所以只考虑有效等价类的组合。划分等价类的时候,要考虑31天的月份、30天的月份、闰年的2月等多种情况)。
首先,可以直接划分强有效等价类:
月份 1-12
日期 1-31||1-30||1-29||1-28
年份 1012——2050
因为是强一般等价类划分,所以
对于月份 我们划分为1 3 5 7 8 10 12(31天) 4 6 9 11(30天)2(平年28,闰年29)划分小月大月特殊月
对于日期 我们根据月份划分
(大月时候为1<=日期<=31)
(小月时候为1<=日期<=30)
(2月平年时候为1<=日期<=28)
(2月闰年时候为1<=日期<=29)
对于年份 1912<=年份<=2050
我们需要根据每个有效等价类组合都划分测试用例
以上划分的测试用例 覆盖了所有有效等价类的组合,接下来只需要对所有无效等价类每一个单独设计一个测试用例即可
边界值分析法
边界点:可能导致被测系统处理机制发生变化的点
比如输入条件的范围为num>=a&&num<=b 且a<b,那么a和b就是输入条件的边界点
如果定义了数字区间(a,b) 那么边界点就是a,b
如果是值的个数。那么最小个数 最大个数就是边界
上面例题一的边界值划分法划分测试用例
一般:
健壮::
判定表法
判定表的四个组成部分
条件桩
条件条目
行动装
行动条目
根据条件取值的个数.判定表分为
有限判定表
扩展判定表
例题三:薪资管理制度
某公司的薪资管理制度如下:员工工资分为年薪制与月薪制两种,员工的错误定位包括普通错误与严重错误两种,如果是年薪制的员工,犯普通错误扣款2%,犯严重错误扣款4%;如果是月薪制的员工,犯普通错误扣款4%,犯严重错误扣款8%。该公司编写了一款软件用于员工工资计算发放,现在要对该软件进行测试。请使用判定表法设计该软件的测试用例。
这道题 先判断整理出条件,动作
条件1:员工类型(年薪 月薪)
条件2:普通错误,严重错误
动作1:扣款2%(年薪制普通错误)
动作2:扣款4%(年薪制严重错误)
动作3:扣款4%(月薪制普通错误)
动作4:扣款8%(月薪制严重错误)
由此可列判定表
覆盖了所有动作 根据该表 将测试用例一一列出即可
判定表规则条数计算
若每个条件只有两个值YF:规则条数为2的n次方(n为条件数)
若每个条件有多个值:规则条数为所有条件值的乘积
场景法
这里不过多赘述 这篇讲的很详细了