《软件测试》第4章

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第4章黑盒测试第4章黑盒测试第4章黑盒测试4.1边界值测试4.2等价类测试4.3基于判定表的测试4.4因果图4.5其他黑盒测试方法4.6综合案例4.7本章小结第4章黑盒测试4.1边 界 值 测 试任何一个程序都可以看做是一个函数,程序的输入构成函数的定义域,程序的输出构成函数的值域。人们从长期的测试工作经验得知,大量的错误是发生在定义域或值域(输出)的边界上,而不是在其内部。对于软件缺陷,有句谚语形容得很恰当,即“缺陷遗漏在角落里,聚集在边界上”。第4章黑盒测试比如,在做三角形计算时,要输入三角形的三个边长A、B和C。这三个数值应当满足A>0、B>0、C>0、A+B>C、A+C>B、B+C>A,才能构成三角形。但如果把六个不等式中的任何一个大于号“>”错写成大于等于号“≥”,那就不能构成三角形。问题常常出现在容易被疏忽的边界附近。类似的例子还有很多,如计数器常常“少记一次”;循环条件应该是“≤”时错误地写成了“<”;数组下标越界(在C语言中数组下标是从零开始,可能错误地认为是从1开始,从而使最后一个元素的下标越界)等。边界值分析关注的是输入空间的边界,从中标识测试用例。边界值测试背后的基本原理是错误更可能出现在输入变量的极值附近。因此针对各种边界情况设计测试用例,可以查出更多的错误。第4章黑盒测试4.1.1边界条件边界条件就是一些特殊情况。一般的,在条件C下,软件执行一种操作,对任意小的值σ,条件C+σ或C-σ会执行另外的操作,则C就是一个边界。在多数情况下,边界条件是基于应用程序的功能设计而需要考虑的因素,可以从软件的规格说明或常识中得到。比如程序要对学生成绩进行处理,要求输入数据的范围是[0,100],则很明显输入条件的边界是0和100。然而,在测试用例设计过程中,某些边界条件是不需要呈现给用户的,或者说用户是很难注意到的,但同时确实属于检验范畴内的边界条件,称为内部边界条件或次边界条件。内部边界条件主要有下面几种。第4章黑盒测试1.数值的边界值计算机是基于二进制进行工作的,因此,软件的任何数值运算都有一定的范围限制。比如一个字节由8位组成,一个字节所能表达的数值范围是[0,255]。表4-1-1列出了计算机中常用数值的范围。第4章黑盒测试表4-1-1二进制数值的边界术语范围或值bit(位)0或1byte(字节)0~255word(字)0~65535(单字)或0~4294967295(双字)int(32位)-2147483648~2147483647K(千)1024M(兆)1048576G(千兆)1073741824第4章黑盒测试2.字符的边界值在计算机软件中,字符也是很重要的表示元素。其中ASCII和Unicode是常见的编码方式。表4-1-2中列出了一些常用字符对应的ASCII码值。如果要测试文本输入或文本转换的软件,在定义数据区间包含哪些值时,就可以参考ASCII码表,找出隐含的边界条件。第4章黑盒测试表4-1-2部分ASCII码值表字符ASCII码值字符ASCII码值Null(空)0A65Space(空格)32a97/(斜杠)47Z900(零)48z122:(冒号)58‘(单引号)96@64{(大括号)123第4章黑盒测试3.其他边界条件有一些边界条件容易被人忽略,比如在文本框中不是没有输入正确的信息,而是根本就没有输入任何内容,然后就按“确认”按钮。这种情况常常被遗忘或忽视了,但在实际使用中却时常发生。因此在测试时还需要考虑程序对默认值、空白、空值、零值、无输入等情况的反应。在进行边界值测试时,如何确定边界条件的取值呢?一般情况下,确定边界值应遵循以下几条原则:(1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。第4章黑盒测试(2)如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少一、比最大个数多一的数作为测试数据。(3)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试数据。(4)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试数据。(5)分析规格说明,找出其他可能的边界条件。第4章黑盒测试4.1.2边界值分析为便于理解,以下讨论涉及两个输入变量x1和x2的函数F。假设x1和x2分别在下列范围内取值:a≤x1≤b;c≤x2≤d。函数F的输入空间如图4-1-1所示。矩形阴影中的任何一点都是函数F的有效输入。第4章黑盒测试图4-1-1两个变量函数的输入域x2x1abocd第4章黑盒测试边界值分析的基本思想是使用输入变量的最小值、略大于最小值、正常值、略小于最大值和最大值设计测试用例。通常我们用min、min+、nom、max-和max来表示。当一个函数或程序有两个及两个以上的输入变量时,就需要考虑如何组合各变量的取值。我们可根据可靠性理论中的单缺陷假设和多缺陷假设来考虑。单缺陷假设是指“失效极少是由两个或两个以上的缺陷同时发生引起的”。依据单缺陷假设来设计测试用例,只让一个变量取边界值,其余变量取正常值。多缺陷假设是指“失效是由两个或两个以上缺陷同时作用引起的”。因此依据多缺陷假设来设计测试用例,要求在选取测试用例时同时让多个变量取边界值。第4章黑盒测试在边界值分析中,用到了单缺陷假设,即选取测试用例时仅仅使得一个变量取极值,其他变量均取正常值。对于有两个输入变量的程序P,其边界值分析的测试用例如下:{x1nom,x2min,x1nom,x2min+,x1nom,x2nom,x1nom,x2max-,x1nom,x2max,x1min,x2nom,x1min+,x2nom,x1max-,x2nom,x1max,x2nom}对于有两个输入变量的程序P,其边界值分析的测试用例在图中的位置如图4-1-2所示。第4章黑盒测试图4-1-2两个变量函数的边界值分析x2x1abocd第4章黑盒测试例如,有一个二元函数f(x,y),要求输入变量x,y分别满足:x∈[1,12],y∈[1,31]。采用边界值分析法设计测试用例,可以选择下面一组测试数据:{1,15,2,15,11,15,12,15,6,15,6,1,6,2,6,30,6,31}。对于一个含有n个输入变量的程序,使除一个以外的所有变量取正常值,剩余的一个变量依次取最小值、略大于最小值、正常值、略小于最大值和最大值,并对每个变量重复进行。因此,对于有n个输入变量的程序,边界值分析会产生4n+1个测试用例。第4章黑盒测试例如,有一个三元函数f(x,y,z),其中x∈[0,100],y∈[1,12],z∈[1,31],对该函数采用边界值分析法设计的测试用例将会得到13个测试用例,根据边界分析的原理,可得到下列测试数据:{50,6,1,50,6,2,50,6,30,50,6,31,50,1,15,50,2,15,50,11,15,50,12,15,0,6,15,1,6,15,99,6,15,100,6,15,50,6,15}。第4章黑盒测试4.1.3健壮性边界测试健壮性是指在异常情况下,软件还能正常运行的能力。健壮性可衡量软件对于规范要求以外的输入情况的处理能力。所谓健壮的系统,是指对于规范要求以外的输入能够判断出这个输入不符合规范要求,并能有合理的处理方式的系统。软件设计的健壮与否直接反映了分析设计和编码人员的水平。健壮性边界测试是边界值分析的一种简单扩展。在使用该方法设计测试用例时,既要考虑有效输入,又要考虑无效的输入。除了按照边界值分析方法选取的五个取值(min、min+、nom、max-、max)外,还要选取略小于最小值(min-)和略大于最大值(max+)的取值,以观察输入变量超过边界时程序会有什么表现。对于有两个变量的程序P,其健壮性测试的测试用例如图4-1-3所示。第4章黑盒测试对于一个含有n个输入变量的程序,进行健壮性边界测试时,使除一个以外的所有变量取正常值,使剩余的那个变量依次取略小于最小值、最小值、略大于最小值、正常值、略小于最大值、最大值和略大于最大值,并对每个变量重复进行。因此其健壮性测试会产生6n+1个测试用例。第4章黑盒测试图4-1-3两个变量函数的健壮性测试用例x2x1abocd第4章黑盒测试例如,有一个二元函数f(x,y),要求输入变量x,y分别满足:x∈[0,100],y∈[1000,3000],对其进行健壮性测试,则需要设计13个测试用例。根据健壮性测试的原理,可以得到下面一组测试数据:{-1,1500,0,1500,1,1500,50,1500,99,1500,100,1500,101,1500,50,999,50,1000,50,1001,50,2999,50,3000,50,3001}。健壮性测试最关心的是预期的输出,而不是输入。健壮性测试的最大价值在于观察处理异常情况,它是检测软件系统容错性的重要手段。第4章黑盒测试4.1.4最坏情况测试最坏情况测试拒绝单缺陷假设,它关心的是当多个变量取极值时出现的情况。最坏情况测试中,对每一个输入变量首先获得包含最小值、略大于最小值、正常值、略小于最大值、最大值的五个元素集合的测试,然后对这些集合进行笛卡尔积计算,以生成测试用例。对于有两个变量的程序P,其最坏情况测试的测试用例如图4-1-4所示。第4章黑盒测试图4-1-4两个变量函数的最坏情况测试用例x2x1abocd第4章黑盒测试显然,最坏情况测试更加彻底,因为边界值分析测试是最坏情况测试用例的真子集。进行最坏情况测试意味着更多的测试工作量。n个变量的函数,其最坏情况测试将会产生5n个测试用例,而边界值分析只产生4n+1个测试用例。健壮性最坏情况测试是最坏情况测试的扩展,这种测试使用健壮性测试的七个元素集合的笛卡儿积,将会产生7n个测试用例。图4-1-5给出了两个变量函数的最坏情况测试用例。第4章黑盒测试图4-1-5两个变量函数的健壮性最坏情况测试用例x2x1abocd第4章黑盒测试4.1.5案例1.三角形问题输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形。如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。要求输入三个整数a、b、c,必须满足以下条件:1≤a≤100;1≤b≤100;1≤c≤100。请用边界值分析法设计测试用例。第4章黑盒测试用边界值分析法设计测试用例,按照下列步骤进行:1)分析各变量取值边界值分析的基本思想是使用输入变量的最小值、略大于最小值、正常值、略小于最大值和最大值设计测试用例。因此a、b、c的边界取值是:1、2、50、99、100。2)测试用例数有n个变量的程序,其边界值分析会产生4n+1个测试用例。这里有3个变量,因此会产生13个测试用例。第4章黑盒测试3)设计测试用例用边界值分析法设计测试用例就是使一个变量取边界值(分别取最小值、略大于最小值、正常值、略小于最大值和最大值),其余变量取正常值,然后对每个变量重复进行。本例用边界值分析法设计的测试用例见表4-1-3。第4章黑盒测试表4-1-3三角形问题的测试用例输入数据测试用例abc预期输出150501等腰三角形250502等腰三角形3505050等边三角形4505099等腰三角形55050100非三角形650150等腰三角形750250等腰三角形8509950等腰三角形95010050非三角形1015050等腰三角形1125050等腰三角形12995050等腰三角形131005050非三角形第4章黑盒测试2.NextDate函数程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足条件:1≤month≤12、1≤day≤31,1900≤year≤2050),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历

1 / 150
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功