
边界值分析法 (1).ppt
32页边界值分析法,王宇,边界值分析法概要,边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法 通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界为什么使用边界值分析法?,无数的测试用例实践表明,大量的故障往往发生在输入定义域或输出值域的边界上,而不是在其内部因此,针对各种边界情况设计测试用例,通常会取得很好的测试效果 例如,一个循环条件为“≤”时,却错写成“<”;计数器发生少计数一次怎样用边界值分析法设计测试用例?,首先确定边界情况通常输入或输出等价类的边界就是应该着重测试的边界情况 选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值举例——常见的边界值,对16-bit的整数而言32767和-32768是边界 屏幕上光标在最左上、最右下位置 报表的第一行和最后一行 数组元素的第一个和最后一个 循环的第0次、第1次和倒数第2次、最后一次,边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及 两侧的情况设计测试用例,例:测试计算平方根的函数 ——输入:实数 ——输出:实数 ——规格说明:当输入一个0或比0大的数的时候,返回其正平方根;当输入一个小于0的数时,显示错误信息“平方根非法-输入值小于0”并返回0;库函数Print-Line可以用来输出错误信息。
等价类划分: 可以考虑作出如下划分: 输入 (i)=0 输出 (a)>=0 和 (b) Error,测试用例有两个:输入4,输出2对应于(ii)和(a)输入-10,输出错误提示对应于(i)和(b)边界值分析: 划分(ii)的边界为0和最大正实数; 划分(i)的边界为最小负实数和0 由此得到以下测试用例:输入 {最小负实数}输入 {绝对值很小的负数}输入 0输入 {绝对值很小的正数}输入 {最大正实数},通常情况下,软件测试所包含的边界检验有几种类型: 数字、字符、位置、质量、大小、速度、方位、尺寸、空间等 相应地,以上类型的边界值应该在: 最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最长、空/满等情况下在多数情况下,边界值条件是基于应用程序的功能设计而需要考虑的因素,可以从软件的规格说明或常识中得到,也是最终用户可以很容易发现问题的然而,在测试用例设计过程中,某些边界值条件是不需要呈现给用户的,或者说用户是很难注意到的,但同时确实属于检验范畴内的边界条件,称为内部边界值条件或子边界值条件。
内部边界值条件主要有下面几种: 数值的边界值检验 字符的边界值检验 其它边界值检验,数值的边界值检验计算机是基于二进制进行工作的,因此,软件的任何数值运算都有一定的范围限制字符的边界值检验在字符的编码方式中,ASCII和Unicode是比较常见的编码方式,下面表中列出了部分的ASCII码对应表部分 ASCII 表,其他边界值检验包括默认值/空值/空格/未输入值/零、无效数据/不正确数据和干扰数据等在实际的测试用例设计中,需要将基本的软件设计要求和程序定义的要求结合起来,即结合基本边界值条件和子边界值条件来设计有效的测试用例选择测试用例的原则: (1) 如果输入条件规定了值的范围,则应取刚达到这个范围的边界值以及刚刚超过这个范围边界的值作为测试输入数据 (2) 如果输入条件规定了值的个数,则用最大个数、最小个数和比最大个数多1个、比最小个数少1个的数作为测试数据 (3) 根据程序规格说明的每个输出条件,使用原则(1)4)根据程序规格说明的每个输出条件,使用原则(2) (5)如果程序的规格说明给出的输入域或输出域是有序集合(如有序表、顺序文件等),则应选取集合中的第一个和最后一个元素作为测试用例。
(6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例 (7)分析程序规格说明,找出其它可能的边界条件边界值分析测试,基本思想故障往往出现在输入变量的边界值附近 利用输入变量的最小值(min)、略大于最小值(min+)、输入值域内的任意值(nom)、略小于最大值(max-)和最大值(max) 来设计测试用例边界值分析测试用例,,,,,,,,,,边界值分析法是基于可靠性理论中称为“单故障”的假设,即有两个或两个以上故障同时出现而导致软件失效的情况很少,也就是说,软件失效基本上是由单故障引起的因此,在边界值分析法中获取测试用例的方法是: (1) 每次保留程序中一个变量,让其余的变量取正常值,被保留的变量依次取min、min+、nom、max-和max (2) 对程序中的每个变量重复 (1) 例:有二元函数f(x,y),其中x∈[1,12],y∈[1,31]则采用边界值分析法设计的测试用例是: { , , , , , , , , }推论:对于一个含有n个变量的程序,采用边界值分析法测试程序会产生4n+1个测试用例。
练习:有函数f(x,y,z),其中x∈[1900,2100],y∈[1,12],z∈[1,31]的请写出该函数采用边界值分析法设计的测试用例答案: {, , , ; , , , ,, , , , },3、健壮性测试健壮性测试是作为边界值分析的一个简单的扩充,它除了对变量的5个边界值分析取值外,还需要增加一个略大于最大值(max+)以及略小于最小值(min-)的取值,检查超过极限值时系统的情况因此,对于有n个变量的函数采用健壮性测试需要6n+1个测试用例健壮性边界值测试用例,,,,,,,,,,,,,,4、边界值分析举例(1)三角形问题的边界值分析测试用例设计 边长是整数,下界1,上界100(2)NextDate函数的边界值分析测试用例 1≤month≤12,1 ≤ day≤31,1912 ≤year ≤2050 健壮性测试用例,练习,某程序要求输入三个整数x、y、z,分别作为长方体的长、宽、高,x、y、z的取值范围在2~20之间,计算长方体的体积。












