1.测试用例的设计方法——等价类划分
1)基于接口:对每个输入变量独立的识别等价类
2)基于功能:依据程序的功能特征在输入变量的组合空间中识别等价类。【私以为:按照程序所有的语句走一遍,将可能得到的结果分类,并将其相应的条件分类,即得到基于功能的等价类划分】
3)等价类划分:有效等价类与无效等价类。
4)在基于接口的基础上,才有三种常用的覆盖准则,分别为:
1)弱覆盖准则:即覆盖每一条等价类
2)传感覆盖准则:对于有效等价类,至少需要覆盖到每一条等价类;对于无效等价类,每个测试用例包含一条无效等价类,其余的使用有效等价类。
3)强覆盖准则:每个等价类(无论是有效等价类还是无效等价类)两两之间至少组合一次,也就意味着全排列。
2.测试用例的设计方法——边界值分析
1)五点覆盖
选取变量的一个取值区间[a,b];从区间[a,b]中取五个点,五个点按照从小到大的分别满足条件是:a,(b-a)*t+a,(b-a)/2+a,b-(b-a)*t,b;其中t是大于0小于1的数。这么取值是因为满足最小值,略大于最小值,正常值,略小于最大值,最大值。该覆盖准则重点在于测试有效值。
2)七点覆盖
选取变量的一个取值区间[a,b];从区间[a,b]中取七个点,七个点按照从小到大的分别满足条件是:a-(b-a)*t,a,(b-a)*t+a,(b-a)/2+a,b-(b-a)*t,b,(b-a)*t+b,这么取值是因为满足略小最小值,最小值,略大于最小值,正常值,略小于最大值,最大值,略大于最大值。该覆盖准则能够全面测试有效值与无效值。
3)对于变量难以取到上界或者下界的数时,可以根据题意任选一个用作分析。
选取变量的一个取值区间[a,b];从区间[a,b]中取五个点,五个点按照从小到大的分别满足条件是:a,(b-a)*t+a,(b-a)/2+a,b-(b-a)*t,b;其中t是大于0小于1的数。这么取值是因为满足最小值,略大于最小值,正常值,略小于最大值,最大值。该覆盖准则重点在于测试有效值。
3.测试用力的设计方法——判定表法
1)组合分析,考虑到大多数程序运行错误来源于变量之间的组合。为了减少输入变量的组合数量,着重考虑有效值的的组合。
2)组合分析的两种方法:
1)判定表法
2)因果图法
3)判定表法
1)条件桩:原子级的条件项的所有集合;动作桩:原子级的动作的所有集合。
2)所有条件项的取值和动作的取值构成一条规则。
3)例题分析
triangle()方法用于判断三角形的类型。该方法接收三个整型参数a,b,c作为三角形的三条边长(a>0,b>0,c>0)。判断三角形的依据如下:
l如果至少存在一边小于或等于0,或者存在两边之和小于或等于第三边,则三边不能构成三角形。
l如果三边相等,则三边构成等边三角形。
l如果存在两边相等,但这两边不等于第三边,则三边构成等腰三角形。
l如果任意两边都不相等,则三边构成一般三角形。
triangle()方法返回值是三角形类型的整数编码:
l不是三角形:返回0。
l等边三角形:返回1。
l等腰三角形:返回2。
l一般三角形:返回3。
4)得到判定表
序号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | |
条件(桩) | a+b>c | F | T | T | T | T | T | T | T | T | T | T |
a+c>b | T | F | T | T | T | T | T | T | T | T | T | |
b+c>a | T | T | F | T | T | T | T | T | T | T | T | |
a=b | - | - | - | T | T | T | T | F | F | F | F | |
a=c | - | - | - | T | T | F | F | T | T | F | F | |
b=c | - | - | - | T | F | T | F | T | F | T | F | |
动作(桩) | 0 | T | T | T | ||||||||
1 | T | |||||||||||
2 | T | T | T | |||||||||
3 | T | |||||||||||
不可能 | T | T | T |
5)上面注意有两个地方:
1>为什么没有a=0,b=0,c=0三个条件?难道他们不是原子级的条件么?不是这样的,我们注意题中要求的是有效值(a>0,b>0,c>0)所以在后面的条件桩中就没有分析到a=0,b=0,c=0三个条件。即组合分析注重有效值的组合分析。
2>为什么没有a+b<c以及a=b=c这样的组合呢?因为我们上面谈到,条件组合讲究的是原子级的组合分析,所以我们要使用最小级别的判定条件,因为a+b<c可以用a+b>c为F得到,所以表中就没有重复表述了。与此同时a=b=c可以使用a=b,b=c均为T来表述,所以这么使用是最简单的。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删