软件测试专栏 | ||
---|---|---|
上一篇 | 主目录 | 下一篇 |
【前言】
弱
一般等价类测试是基于单缺陷
假设,强
一般等价类测试是基于多缺陷
假设;说等价类健壮是因为考虑无效值(一般==不考虑无效值,健壮==考虑无效值
)。弱是取MAX,强是笛卡尔乘积
边界值测试和等价类测试都是黑盒测试
1 简介
什么是等价类测试?
等价类是指某个输入域的子集合中各个数据对于揭露程序的错误都是等效的,或者进行相同的处理。测试某等价类的一组数据就等价于对这一类其他值得测试,因此在等价类中只需要取一组测试用例即可。等价类集合的划分,提供完备性、保证无冗余性。
确定等价类的原则
1)输入条件规定
取值范围
,则卡定义一个有效等价类和两个无效等价类。例如学生成绩范围是0~100,则一个有效类:0<=成绩<=100,两个无效类:成绩<0,成绩>100
2)如果规定了输入数据的个数
,则可类似的划分出一个等价类和两个无效等价类。例如一个学生一个学期选修1~3门,则一个有效等价类:1 ~ 3门,两个无效等价类:不选,选修 超过3门
3)如果规定数据的一组值
,且程序对不同的输入做不同的处理,则每个允许的输入值是一个有效等价类,所有不允许的输入值的集合是一个无效等价类。例如输入条件说明学历可为:专科、本科、硕士、博士4种,则一个有效等价类:专科/本科/硕士/博士,一个无效等价类:其他任何学历
4)如果规定了输入数据必须遵循的规则
,可以确定一个有效类和若干个无效等价类。例如校内电话拨号为 9开头,则一个有效等价类:9+外线号码,若干个无效等价类:非9开头+外线号码,9+非外线号码,…
5)如果确知已划分的等价类中个元素在程序中的处理方式不同,则应将此等价类进一步划分
成更小的等价类
2 等价类测试分类
分类(两大类,根据规格说明书的功能)
- 有效等价类
- 无效等价类
分类比较
类别 | 单/多缺陷 | 考虑无效值 | 测试用例 |
---|---|---|---|
弱一般等价类测试 | 单缺陷 | 不考虑 | 通过变量的每个等价类中选择一个值 |
强一般等价类测试 | 多缺陷 | 不考虑 | 笛卡尔积每个元素都选择一个值 |
弱健壮等价类测试 | 单缺陷 | 考虑 | 对于有效输入,使用每个有效类的一个值;对于无效输入,测试用例取一个无效值,其余的值都是有效的。 |
强健壮等价类测试 | 多缺陷 | 考虑 | 有效类+无效类的笛卡尔乘积,从每个元素中获得测试用例 |
-【注】
说等价类弱是因为是单缺陷(弱==单缺陷,强==多缺陷
)
说等价类健壮是因为考虑无效值(一般==不考虑无效值,健壮==考虑无效值
)
3 测试实例
1 两变量函数
X1有三个等价类[a,b]、(b,c]、(c,d],X2有两个等价类[e,f)、[f,g]
1) 弱一般等价类测试:从变量的每个等价类中选择一个值即可,3个。(选择不唯一,下同)
2)强一般等价类测试:从笛卡尔积结果中每个元素取一个值,6个
3)弱健壮等价类测试:对于有效输入,使用每个有效类的一个值(同 弱一般等价类测试);对于无效输入,测试用例取一个无效值,其余的值都是有效的。x1<a,x1>d,x2<e,x2>g四个无效情况,无效输入的取值有四个,并保持其余有效。7个。
4)强健壮等价类测试:有效类+无效类的笛卡尔乘积,从每个元素中获得测试用例
2.1 三角形问题(输入域)
划分等价类:
1)弱一般等价类测试&强一般等价类测试:
2)弱健壮等价类测试
3)强健壮等价类测试
3X3X3=27个
2.2 三角形问题(输出域)
划分等价类:
2.3 三角形问题(细致划分)
划分有效等价类:
无效等价类:
输入个数不对,输入类型不对,不在有效范围
3.1 NextDate
弱健壮:
强健壮:3X3X3=27
3.2 NextDate
另一种划分(无效等价类仍是3.1中的)
弱一般等价类测试
4 佣金问题(输入域)
等价类划分
部分强健壮等价类测试用例
4 佣金问题(输出域)
等价类划分
测试用例