第3章黑盒测试_边界值_第1页
第3章黑盒测试_边界值_第2页
第3章黑盒测试_边界值_第3页
第3章黑盒测试_边界值_第4页
第3章黑盒测试_边界值_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Software Testing软件测试技术软件学院软件学院第三章黑盒测试第三章黑盒测试w软件测试方法w边界值测试w等价类测试w基于决策表的测试w因果图软件测试方法软件测试方法w软件测试方法一般分为两种:白盒测试(White Box TestingWhite Box Testing)黑盒测试(Black-box TestingBlack-box Testing)黑盒测试黑盒测试w黑盒测试(Black-box TestingBlack-box Testing)软件输入输入输出输出w又叫功能测试功能测试,数据驱动测试或基于规格说明的测试。3.1 黑盒测试概述黑盒测试概述w黑盒测试也称功能测试或数据

2、驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。软件输入黑盒测试不深入代码细节输出3.1 黑盒测试概述黑盒测试概述w在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性,如图所示。1“黑盒黑盒”的两种基本方法的两种基本方法w黑盒测试有两种基本方法,即通过测试和失败测试。 w在进行通过测试时,实际上是确认软件能做什么,而不会去考验其能力如何。软件测试员只运用最简

3、单,最直观的测试案例。 在设计和执行测试案例时,总是先要进行通过测试。在进行破坏性试验之前,看一看软件基本功能是否能够实现。这一点很重要,否则在正常使用软件时就会奇怪地发现,为什么会有那么多的软件缺陷出现? w在确信了软件正确运行之后,就可以采取各种手段通过搞“垮”软件来找出缺陷。纯粹为了破坏软件而设计和执行的测试案例,被称为失败测试或迫使出错测试。2、黑盒测试过程、黑盒测试过程需求需求说明说明产生产生被测程序被测程序测试结果测试结果输出输出比较比较3黑盒测试的优、缺点黑盒测试的优、缺点黑盒测试的优点有:1)比较简单,不需要了解程序内部的代码及实现;2)与软件的内部实现无关;3)从用户角度出发

4、,能很容易的知道用户会用到哪些功能,会遇到哪些问题;4)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;5)在做软件自动化测试时较为方便。黑盒测试的缺点有:1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;2)自动化测试的复用性较低。4、黑盒测试的目标、黑盒测试的目标w黒盒测试试图发现以下类型的错误:功能错误或遗漏;界面错误,不美观;外部信息访问错误;性能错误;初始化和终止错误在接口上,能否正确地接受输入数据,能否产生正确地输出信息;5、黑盒测试的难点、黑盒测试的难点w黒盒测试的难点在于如何构造有效的输入如何构造有效的输入。由于输入空间通常是无限的,穷举测试显然行不

5、通。寻找最小最重要的用例集合以精简测试复杂性。6、黑盒测试方法、黑盒测试方法w黑盒测试的测试用例设计方法边界值分析等价类划分基于决策表的测试因果图错误推测3.2 边界值分析w边界值分析w健壮性测试w最坏情况测试w特殊值测试w随机测试3.3.1 边界值分析边界值分析w边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。w为什么使用边界值分析法? 无数的测试实践表明,大量的故障往往发生在输入定义域或输出值域的边界上,而不是在其内部。因此,针对各种边界情况设计测试用例,通常会取得很好的测试效果。w怎样用边

6、界值分析法设计测试用例?(1)首先确定边界情况。通常输入或输出等价类的边界就是应该着重测试的边界情况。(2)选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值。1. 边界值分析概要边界值分析概要w边界值分析的原理w边界值分析的思想w边界值分析测试用例设计方法(1) 边界值分析的基本原理边界值分析的基本原理w边界值分析(Boundary Value AnalysisBoundary Value Analysis)w边界值分析关注输入空间输入空间的边界,并从中标识测试用例。w基本原理错误更可能出现在输入变量的极值附近。常见的边界值常见的边界值w举例对16-bi

7、t 的整数而言 32767 和 -32768 是边界屏幕上光标在最左上、最右下位置报表的第一行和最后一行数组元素的第一个和最后一个C+ 语言中,int A10: A0A9 循环的第 0 次、第 1 次和倒数第 2 次、最后一次w采用边界值分析测试的基本思想是:故障往往出现在输入变量的边界值附近。 因此,边界值分析法利用输入变量的最小值(min)、略大于最小值(min+)、输入值域内的任意值(nom)、略小于最大值(max-)和最大值(max)来设计测试用例。w边界值分析法是基于可靠性理论中称为“单故障”的假设,即有两个或两个以上故障同时出现而导致软件失效的情况很少,也就是说,软件失效基本上是由

8、单故障引起的。 因此,在边界值分析法中获取测试用例的方法是: (1) 每次保留程序中一个变量,让其余的变量取正常值,被保留的变量依次取min、min+、nom、max-和max。 (2) 对程序中的每个变量重复 (1) 。(2) 边界值分析的基本思想边界值分析的基本思想(2) 边界值分析的基本思想边界值分析的基本思想w在最小值、略高于最小值、正常值、略低于最大值和最大值处取输入变量值w表示方法min、min+、nom、max-、和maxw例如:涉及两个变量的函数x1,x2X1的取值x1min,x1min+,x1nom,x1max-,x1maxX2的取值x2min,x2min+ ,x2nom,x

9、2max-,x2max边界值分析的取值边界值分析的取值“单缺陷单缺陷”假设假设w“单缺陷”假设失效极少是由两个或多个缺陷的同时发生引起的w“单缺陷”假设是边界值分析的关键假设(3) 边界值分析测试用例边界值分析测试用例w边界值分析获得测试用例的方法:使所有变量取正常值,只使一个变量取极值;w例例1 1:有两个输入变量x1(ax1b)和x2(cx2d)的程序F的边界值分析测试用例如下:(3) 边界值分析测试用例边界值分析测试用例wX X1 1取值:x x1 1minmin,x,x1 1min+min+,x,x1 1nomnom,x,x1 1max-max-,x,x1max1maxwX X2 2取

10、值:x x2min2min,x,x2min+2min+ ,x ,x2nom2nom,x,x2max-2max-,x,x2max2maxw两个变量函数的边界值分析测试用例 x , , , ,x2min+, x , , , ,x2max-, x , ,x2max, x1min,x , , , x1max-, x , , X2两个变量函数边界值分析测试用例边界值分析边界值分析w边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例。w例例:测试计算平方根的函数 输入:实数 输出:实数 规格说明:当输入一个0或比0大的数的

11、时候,返回其正平方根;当输入一个小于0的数时,显示错误信息“平方根非法-输入值小于0”并返回0;库函数Print-Line可以用来输出错误信息。实例分析实例分析w边界值分析:划分(ii)的边界为0和最大正实数;划分(i)的边界为最小负实数和0。由此得到以下测试用例:输入 最小负实数输入 绝对值很小的负数输入 0输入 绝对值很小的正数输入 最大正实数边界值分析边界值分析(续)(续)w通常情况下,软件测试所包含的边界检验有几种类型: 数字、字符、位置、质量、大小、速度、方位、尺寸、 空间等w相应地,以上类型的边界值应该在: 最大/最小、首位/末位、上/下、最快/最慢、最高/最低、 最短/最长、 空

12、/满等情况下实例分析实例分析举例举例 利用边界值作为测试数据利用边界值作为测试数据项边界值测试用例的设计思路字符起始-1个字符/结束+1个字符假设一个文本输入区域允许输入1个到255个 字符,输入1个和255个字符作为有效等价类;输入0个和256个字符作为无效等价类,这几个数值都属于边界条件值。数值最小值-1/最大值+1假设某软件的数据输入域要求输入5位的数据值,可以使用10000作为最小值、99999作为最大值;然后使用刚好小于5位和大于5位的 数值来作为边界条件。空间小于空余空间一点/大于满空间一点例如在用U盘存储数据时,使用比剩余磁盘空间大一点(几KB)的文件作为边界条件。内部边界值分析

13、内部边界值分析w在多数情况下,边界值条件是基于应用程序的功能设计而需要考虑的因素,可以从软件的规格说明或常识中得到,也是最终用户可以很容易发现问题的。然而,在测试用例设计过程中,某些边界值条件是不需要呈现给用户的,或者说用户是很难注意到的,但同时确实属于检验范畴内的边界条件,称为内部边界值条件或子边界值条件。w内部边界值条件主要有下面几种:数值的边界值检验 字符的边界值检验其它边界值检验n 小结:小结: 在实际的测试用例设计中,需要将基本的软件设计要求和程序定义的要求结合起来,即结合基本边界值条件和内部边界值条件来设计有效的测试用例。数值的边界值检验数值的边界值检验w计算机是基于二进制进行工作

14、的,因此,软件的任何数值运算都有一定的范围限制。项项范围或值范围或值位(bit)0 或 1字节(byte)0 255字(word)065535(单字)或 04294967295(双字)千(K)1024兆(M)1048576吉(G) 1073741824字符的边界值检验字符的边界值检验w在计算机软件中,字符也是很重要的表示元素,其中ASCII和Unicode是常见的编码方式。下表中列出了一些常用字符对应的ASCII码值。字符字符ASCIIASCII码值码值字符字符ASCIIASCII码值码值空 (null)0A65空格 (space)32a97斜杠 ( / )47Z90048z122冒号 ( :

15、 )58单引号 ( )96642、选择测试用例的原则、选择测试用例的原则(1) 如果输入条件规定了值的范围,则应取刚达到这个范围的边界值以及刚刚超过这个范围边界的值作为测试输入数据。(2) 如果输入条件规定了值的个数,则用最大个数、最小个数和比最大个数多1个、比最小个数少1个的数作为测试数据。(3) 根据程序规格说明的每个输出条件,使用原则 (1)。(4) 根据程序规格说明的每个输出条件,使用原则 (2) 。(5) 如果程序的规格说明给出的输入域或输出域是有序集合 (如有序表、顺序文件等),则应选取集合中的第一个和 最后一个元素作为测试用例。(6) 如果程序中使用了一个内部数据结构,则应当选择

16、这个内部数据结构的边界上的值作为测试用例。(7) 分析程序规格说明,找出其它可能的边界条件。3、边界值分析优缺点、边界值分析优缺点w边界值测试分析采用了可靠性理论的单缺单缺陷假设陷假设。w优点:简便易行;生成测试数据的成本很低;w局限性:测试用例不充分;不能发现测试变量之间的依赖关系;不考虑含义和性质;w结论:只能作为初步测试用例使用4、边界值测试的指导方针w除了特殊值测试,基于函数除了特殊值测试,基于函数( (程序程序) )输入定义域的测输入定义域的测试方法,是所有测试方法中最基本的。试方法,是所有测试方法中最基本的。w这类测试方法都有一种假设,即输入变量是真正独这类测试方法都有一种假设,即

17、输入变量是真正独立的,如果不能保证这种假设,则这类方法会产生立的,如果不能保证这种假设,则这类方法会产生不能令人满意的测试用例不能令人满意的测试用例( (例如在例如在NextdateNextdate中的中的19121912年年2 2月月3131日日) )。w另一种很有用的另一种很有用的基于输出基于输出的测试用例形式,可用于的测试用例形式,可用于生成错误消息的系统。生成错误消息的系统。测试人员应该设计测试用例,测试人员应该设计测试用例,以检查在适当的时候,错误消息是否被生成,并且以检查在适当的时候,错误消息是否被生成,并且不会被错误地生成。不会被错误地生成。3.3.2测试方案测试方案测试举例测试

18、举例(1)w三角形问题三条边a,b,c取整数值,且各边的取值范围是:1,200w测试用例每条边的取值:1, 2, 100, 199, 200wNextDate的测试用例输入条件1月份121日期311812 年2012最坏情况测试用例设计月份取值:1, 2, 6, 11, 12日期取值:1, 2, 15, 30, 31年取值:1812, 1813, 1912, 2011, 2012测试举例测试举例(2)wNextDate的测试用例测试用例错误的测试用例第41号:1812年2月30日遗漏重要的测试用例日期取28或29闰年:2000年测试举例测试举例(2)3.4.1 边界值分析法概要边界值分析法概要 怎样用边界值分析法设计测试用例?(1)首先确定边界情况。(2)将测试边界情况作为重点目标。边界值是位于有效等价类边缘的值,而次边界值是边界值周围的值。选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据。 应该设计多少个测试用例呢?应该设计多少个测试用例呢?边界为边界为1和和100,因此次,因此次边界可以选取边界可以选取2和和99。构造测试用例构造测试用例: (1,1), (100,100) (0,0), (101,101)例如,对于加法器程序,设计测试用例 健壮性边界值测试健壮性边界值测试加法器边界值测试用例加法器边界值测试用例

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论