等价类划分法和边界值分析法的结合使用
1.等价类划分法简介1.1基本思想1.2划分基础1.3等价划分类的规则1.4测试用例的设计步骤与实例1.5三角形问题的等价类划分法设计测试用例。1.6总结等价类划分需要经过以下两个思维过程等价类划分法的优缺点2.边界值分析法简介2.1边界值选取原则根据边界值分析法选择测试用例的原则:2.2边界值选取方法(1)(五点法)一般边界值分析(2)(七点法)健壮性边界值分析2.3边界值分析法示例2.4边界值分析法的特点3.使用等价类划分法和边界值分析法设计测试用例3.1 问题分析3.2建立等价类表3.3设计等价类测试用例一般在实际测试用例的设计中,将两种方法混合使用,给出一个测试用例。
1.等价类划分法简介
1.1基本思想
将输入数据集合划分为多个适当的数据子集合(即等价类),使得每个等价类中选取的数据可以代表该类中的其他数据。
通过等价类划分法,可以将不能穷举的输入数据合理划分为有限个数的等价类,然后在每个等价类中选取少量数据来代替这一类中国其他数据的测试。这种划分的基础是:
1.2划分基础
在分析需求规格说明的基础上划分等价类,不需要考虑程序的内部结构。将所有可能的输入数据划分为若干互不相交的子集。(也就是说所有等价类的并集是整个输入域,各等价类数据之间互不相交)每个等价类中的各个输入数据对于揭示程序错误都是等效的,如果用等价类中的一个数据进行测试不能发现程序错误,那么该等价类中的其他户数进行测试也不可能发现程序错误。“有效等价类”是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合,利用有效等价类可以检验程序是否实现了规格说明中所规定的功能和性能要求。无效等价类与有效等价类相反,是指对程序的规格说明来说是无意义的、不合理的输入数据构成的集合,利用无效等价类可以检验程序是否具有容错性和较高的可靠性。1.3等价划分类的规则
(1)按照输入区间划分在规格说明规定了输入数据的取值范围或取值数量的情况下,可以确定一个有效等价类和两个无效等价类。(2)按照数值集合划分
如果规格说明规定了一个输入值集合,则可以确定一个有效等价类和一个无效等价类,无效等价类是所规定数值集合之外的所有不允许输入值的集合。(3)按照离散数值划分
如果规格说明规定了一组值,假定有n个,并且程序要对每个输入值分别进行处理,则可以确定n个有效等价类和一个无效等价类。(4)按照限制条件或者规则划分
如果规格说明规定了“必须如何”的规则或者限制条件,则可以确定一个有效等价类和若干无效等价类。一个有效等价类是符合规则的所有输入数据,若干无效等价类是从违反规则的不同情况出发确定的相应等价类。(5)按照布尔量取值划分
如果规格说明规定了输入量是一个布尔量,则可以确定一个有效等价类和一个无效等价类。(这是一种特殊的情况,有效等价类只包含一个真值,无效等价类只包含一个假值。)(6)细分等价类
当发现已划分的等价类中的各个元素在程序中的处理方式不同时,需要对该等价类进一步划分为更小的等价类。
1.4测试用例的设计步骤与实例
(1)建立等价类表,列举出所有划分的有效等价类和无效等价类。这一步骤是设计等价类划分法测试用例的关键。(2)给每一个等价类规定唯一的编号(3)设计一个有效等价类测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步骤直到所有的有效等价类都被测试用例覆盖。(4)设计一个无效等价类测试用例,使其只覆盖一个无效等价类。重复这一步骤直到所有的无效等价类都被测试用例覆盖。
1.5三角形问题的等价类划分法设计测试用例。
三角形问题的等价类表,ABC为三角形的三条边。(表格内部换行用< br >)
三角形问题的等价类测试用例
1.6总结
等价类划分需要经过以下两个思维过程
(1)分类。将输入域根据相同特性或类似功能进行分类。(2)抽象。在各个等价类中抽象出相同特性,然后用数据实例来表征这个特性。
等价类划分法的优缺点
优点:是用相对较少的测试用例就能够进行比较完整的输入数据覆盖,解决了不能穷举测试的问题。缺点:是需要花费很多时间去定义规格说明中一般不会给出的无效测试用例预期输出。另外,等价类划分法缺乏对特殊测试用例的考虑,并且经常需要深入的系统知识才能划分出合适的等价类。
2.边界值分析法简介
2.1边界值选取原则
边界值是使等价类的每个边界都要作为测试条件,在边界处选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据。此外,边界值分析法不仅需要考虑输入条件边界,还要考虑输出域边界的情况。
一个程序中常见的边界情况有以下几种:
➢ 循环结构中第0次、第一次和最后一次循环。
➢ 数组的第一个和最后一个下标元素。
➢ 变量类型所允许的最大和最小值。
➢ 一个链表的头尾结点。
➢ 用户名和密码等可接受字符个数的最大值和最小值。
➢ 报表的第一行、第一列、最后一行和最后一列。
根据边界值分析法选择测试用例的原则:
①如果输入条件规定了取值的范围,那么测试用例输入数据应选取所规定范围的边界值以及刚刚超过范围边界的值。② 如果输入条件规定了值的个数,那么测试用例选择最大个数、
最小个数、比最大个数多1个和比最小个数少1个的数据等作
为测试数据。③ 根据规格说明的每一个输出条件,分别使用以上两个规则。④ 如果输入域和输出域是顺序表或顺序文件等有序集合,那么
选取集合的第一个和最后一个元素作为测试用例。⑤ 对于程序的内部数据结构,选择其边界值作为测试用例。⑥ 分析规格说明并找出其它可能的边界条件。
2.2边界值选取方法
测试用例的数据选取一般有如下两种方法:五点法、七点法。
五点法:选取最大值max,略低于最大值max-,正常值normal,略高于最小值min+、最小值min。也称为一般边界值分析。七点法:选取略大于最大值max+,最大值max,略小于最大值max-,正常值normal,略高于最小值min+,最小值min,略低于最小值min-。也称为健壮性边界值分析,是对五点法的扩展。
假设一个被测程序具有两个输入变量X1和X2,规定a≤X1≤b,
c≤X2≤d
(1)(五点法)一般边界值分析
在采用一般边界值分析方法时,共产生9个测试用例。
除了上下边界处的4个取值外,每个变量可以共用一个各变量取值均为正常值的测试用例。那么,一般边界值分析测试用例的数量为4N+1个。
(2)(七点法)健壮性边界值分析
相比于一般边界值分析,健壮性边界值分析需要为每个变量额外考虑略超过最大值max+和略小于最小值min-两种情况。因此对于两个变量的情况,其边界值按照如图3-2(b)所示,对于含有N个变量的程序,健壮性边界值分析测试用例的数量为6N+1个。
2.3边界值分析法示例
一个函数包含3个输入变量,分别为Year、Month和Day,其输出是输入日期后一天的日期。
例如,输入是3月11日,则函数输出为3月12日。要求3个输入变量均为正整数值,并且1900≤Year≤2050,1≤Month≤12,1≤Day≤31。
采用一般边界值分析法设计测试用例,因为问题中共有3个变量,所以测试用例数量为4N+1=4×3+1=13个。
2.4边界值分析法的特点
由于边界值分析法假设变量是完全独立的,不考虑它们之间的依赖关系,因此只是针对各个变量
的边界范围导出了变量的极限值,没用分析函数
的具体性质,也没有考虑变量的语义含义。另外,采用边界值分析法测试布尔型变量和逻辑
变量的意义不大,因为其取值仅有True和False两
种情况。
3.使用等价类划分法和边界值分析法设计测试用例
题目要求:一个程序读入一个整数,把这个整数看做一个学生的成绩。这个程序要打印出信息,说明这个学生的成绩是优秀(90~100)、良好(80 ~ 89)、中等(70 ~79)、及格( 60 ~69)还是不及格(0 ~59)。请用等价类划分法和边界值分析法设计出相应的测试用例。
3.1 问题分析
对于这个题目要求,设输入成绩为x,则x需要满足的条件为
x为整数0<=x<=100
此外,不满足条件的x有以下几种:x>100x<0x不是整数x非数字字符