查找网站建设虚拟目录/怀来网站seo
一、作用
为穷举测试设计测试点。
穷举:列出所有的可能情况,对其一一判断。
测试点:要验证的点。比如测试登录界面:用户名为空、用户名错误、密码为空、密码错误等等。
我们不可能实现穷举测试,等价类划分法是把程序所有可能的输入数据,进行分类(有效和无效等价类),然后从分类中选取具有代表性的数据来设计测试用例。
二、分类
有效等价类:合理的、有意义的输入数据构成的集合;
无效等价类:不合理的、没有意义的输入数据构成的集合;
三、方法
按区间划分。
按数值划分。
按数值集合划分。
按限制条件或规划划分。
按处理方式划分。
四、原则
①在输入条件规定的取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类。
例如:有这样一个需求,用户名的长度为 [1,100];
那么,一个有效等价类可以是:1≤x≤100;
两个无效等价类可以是:>1、<100;
知识扩展
看到这里有些人可能会疑惑,我的有效等价类不是在 1~100 之间吗,那我不应该这样描述:>= 1并且 <= 100,那我为什么描述为:1≤x≤100;其实这两种描述方式都可以使用,都是正确的描述方法。
还有一个问题,需求中是直接写 [1,100] 的,没有明确标明是 >= 1 并且 <= 100,还是 > 1 并且 < 100,那我为什么觉得他是 >= 1 并且 <= 100 呢?
这里就要补充另一个知识点了,不等式的小括号和中括号
小括号和中括号在不等式里面表示一个取值范围,小括号是开区间,为不包含;中括号是闭区间,为包含。
比如:(1,100),表示不等式的解集是 >1 并且 < 100(不包含1和100)。
也可以表示为:1<x<100;
比如 [1,100] ,表示不等式的解集是 >=1 并且 <= 100(包含1和100)。
也可以表示为:1 ≤ x ≤ 100。
注:
1.在不等式里第一个数字为大于,最后一位数字为小于;
2.我们知道怎么打出“<”,知道怎么打出"=",那怎么把他们两个组合起来,打出“≤”呢❓❓❓最简单的就是在输入的时候上直接写中文“小于等于”;
“≥”也是同理。
我说这个的原因是想让你们看到 1 ≤ x ≤ 100 这种描述的时候不会
,知道他表示的是什么意思就好,本来就理解的话就更好啦啦~
②在规定了输入数据的一组值中(假定有n个值),并且程序要对每个输入值分别处理的情况下,可以确定n个有效等价类和一个无效等价类。
例如:考试的时候单选题只能在A、B、C、D四个选项中选择;
那么,n个有效等价类可以是:A、B、C、D;
一个无效等价类可以是:不在A、B、C、D之内的选项;
③在规定输入数据必须遵守的规则的情况下,可以确定一个有效等价类和若干个无效等价类。
例如:密码由 1~8 位的数字+字母组成;
那么,一个有效等价类可以是:1≤x≤8位的数字+字母组成的密码;
若干个无效等价类可以是:空(也就是<1)、>8、1<x<8位的纯数字、1<x<8位纯字母、1<x<8位非数字+非字母(小数、中文、特殊符号)、空格;
④在输入条件规定了输入值的集合或规定了“必须如何”的条件下,可以确定一个有效等价类和一个无效等价类。
例如:输入三个正整数代表每边的长度,构成等边三角形;
那么,一个有效等价类可以是:三条边都相等的;
一个无效等价类可以是:三条边不相等的;
⑤在确定已划分的等价类中各元素在程序处理中的方式不同的情况下,则应将该等价类进一步地划分为更小的等价类。
例如:密码不可以含有空格;
那么,先划分大的有效和无效等价类,有效:不含有空格;无效:含有空格;
然后还可以对无效等价类进行进一步的划分:前面含空格、后面含空格、中间含空格;
五、步骤
1、划分有效和无效等价类表,并设定编号;
2、根据等价类表编写测试用例。
等价类表的建立
1)在分析需求规格说明的基础上划分等价类,列出等价类表,为每一个等价类规定一个唯一的编号。
2)将程序可能的输入数据分成若干个子集,从每个子集中选取一个有代表性的数据作为测试用例。等价类是某个输入域的子集,在该子集中的每个输入数据的作用都是等效的。
3)设计新的测试用例,使其尽可能多地覆盖未覆盖的有效等价类,按照这一步骤重复进行,直到所有的有效等价类都被覆盖为止。
4)设计新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,按照这一步骤重复进行,直到所有的无效等价类都被覆盖为止。
六、案例
需求1:密码为 8-10 位数字字母组合。
注:为了节省时间,大致写了下,在企业里面写测试用例不单单只有这几要素。
需求2:输入三个正整数作为边长,判断这三条边能否构成三角形,若能,所构成的三角形是等边、等腰还是一般三角形,请用等价类划分法设计测试用例(面试题,真实碰到过!!!)。
一般三角形:
任意两边之和大于第三边,任意两边之差小于第三边(一般情况下,只要将最短的两条边相加,将最长的边和最短的边相减即可);
等腰三角形:
如果有两个边的长相等,则为等腰三角形;
等边三角形:
如果三个边的长都相等,则为等边三角形;
什么是正整数?
除了“0”以外的整数。
假设
a为第一条边的长度;
b为第二条边的长度;
c为第三条边的长度;
编写等价表
因为太多了,放不下的原因,就直接打文字了,可以自己在 excel 表格中完成,并给每个有效和无效等价类设定编号。
输入:
有效等价类:3位数、整数、不含“0”;
无效等价类:
非3位数(1、只输入一条边:边只输入a;只输入b;只输入c;2、只输入两条边:只输入a、b;只输入a、c;3、只输入b、c;3、输入超过三条边:a、b、c、d)、
非整数(1、一条边为非整数:a为非整数;b为非整数;c为非整数;2、二条边为非整数:a、b为非整数;a、c为非整数;b、c为非整数;3、三条边为非整数:a、b、c为非整数)、
输入“0”(1、一条边输入“0”:a输入“0”;b输入“0”;c输入“0”;1、两条边输入“0”:a、b输入“0”;a、c输入“0”;b、c输入“0”;3、三条边输入“0”:a、b、c输入“0”)、
空(1、一条边不输入:a不输入;b不输入;c不输入;2、两条边不输入:a、b不输入;a、c不输入;b、c不输入;3、三条边不输入:a、b、c不输入)、
空格(1、一条边输入空格:a输入空格;b输入空格;c输入空格;2、二条边输入空格:a、b输入空格;a、c输入空格;b、c输入空格;3、三条边输入空格:a、b、c输入空格)。
输出:
一般三角形:
有效等价类:
任意两边之和大于第三边(a+b>c;a+c>b;b+c>a)、任意两边之差小于第三边(a-b<c、a-c<b、b-c<a);
无效等价类:
任意两边之和小于第三边(a+b<c、a+c<b、b+c<a)、任意两边之差大于第三边(a-b>c、a-c>b、b-c>a);
等腰三角形:
有效等价类:
两条边相等(a=b!=c、a=c!=b、b=c!=a);
无效等价类:
两条边不相等(a!=b、a!=b、b!=c);
等边三角形:
有效等价类:
三条边相等(a=b=c);
无效等价类:
两条边不相等(a!=b!=c);
动动手、根据该等价类表覆盖测试用例。
完。。。