《测试技术基础》PPT课件.ppt
《《测试技术基础》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《测试技术基础》PPT课件.ppt(259页珍藏版)》请在三一办公上搜索。
1、软件测试基础,第三章 测试技术基础,本章学习内容,黑盒测试 等价类划分法 边界值分析法 因果图法 决策表法白盒测试逻辑覆盖测试基本路径测试 测试用例设计,无法对程序进行完全测试(1)输入量太大,不可能测试程序对所有可能输入的响应。(2)输出结果太多(3)软件实现途径太多,不可能测试到程序每一条可能的执行路径(4)软件规格说明没有客观标准(5)不能采用逻辑来证明程序的正确性,假设一个程序P有输入量X和Y及输出量Z。在字长为32位的计算机上运行。若X、Y取整数,若进行穷举测试:可能采用的测试数据组:232232264 如果测试一组数据需要1毫秒,一年工作36524小时,完成所有测试需要5亿年。,给
2、出一个小程序的流程图,它包括了一个执行20次的循环。包含的不同执行路径数达520条,对每一条路径进行测试需要1毫秒,假定一年工作36524小时,要想把所有路径测试完,需3170年。所以,无法对程序进行完全的测试。,分类按照是否需要执行被测软件的角度静态测试和动态测试按照测试是否针对软件内部结构和具体算法白盒测试和黑盒测试,软件测试方法,按照开发阶段单元测试集成测试确认测试系统测试验收测试按照测试实施组织计划开发方测试用户测试(测试)第三方测试,静态测试与动态测试静态测试定义不运行被测程序通过其他手段达到检测目的对被测程序进行特性分析方法的总称静态的检查程序代码、界面或文档中可能存在的错误的过程
3、测试活动需求评审设计评审代码检查,1、代码检查 代码检查包括代码会审和走查。主要检查代码和设计的一致性,代码对标准的遵循、可读性,代码逻辑表达的正确性,代码结构的合理性等方面。在实际使用中,代码检查比动态测试更为有效,可以发现30%70的逻辑设计和编码缺陷。,代码会审是由一组人通过阅读、讨论和争议对程序进行静态分析的过程。代码审查小组成员:组长能力较强的程序员待审程序的设计者或程序员测试专家,代码审查时应注意问题:提出的建议应针对程序本身,而不应针对程序员。程序员对整个审查过程采取积极和建设性的态度。,走查 走查是以小组为单元进行代码阅读的,同样也是一系列规程和错误检查技术的集合。人员组成一位
4、经验丰富的程序员一位程序设计语言专家一位程序员新手一位其他不同项目的人员一位该软件编程小组的成员,必须修改的问题(3)程序没有注释程序=代码+注释注释语句/总代码行数=1/51/4子函数max没有返回值类型精度丢失问题建议修改的问题(3)main函数没有返回值类型和参数表(默认为void main(void)1行代码只定义1个变量。程序适当加一些空行程序中存在未使用的变量,#includemax(float x,float y)float z;z=xy?x:y;return(z);main()float a,b;int c,d;scanf(%f,%f,发现什么问题了吗?,/*程序名称:求两个实
5、数中的大数作者:*版本:1.0创建时间:1.02007-09-10*/#includefloat max(float x,float y)/返回两个单精度数中的大数 float z;z=xy?x:y;return(z);void main(void)float a,b;float c;scanf(%f,%f,使用人工静态测试可以发现大约1/32/3的逻辑设计和编码错误。但是代码中仍会有隐藏的故障无法通过静态测试发现,因此除了静态测试方法外,还必须通过动态测试进行详细地分析。,动态测试定义运行被测程序输入测试用例对运行情况(输入与输出对应关系)分析测试活动单元测试集成测试系统测试用户验收测试,上
6、例中,动态测试过程为:,静态测试和动态测试主要执行阶段,黑盒测试与白盒测试,检查程序各功能是否能实现检查功能错误又称为功能测试、数据驱动测试或基于规格说明的测试,黑盒测试,黑盒测试活动功能测试性能测试攻击测试特点黑盒测试与软件的具体实现过程无关黑盒测试用例的设计可以和软件实现同时进行能够找到大多数测试方法无法发现的错误,对于无法得到源代码的软件可以完成一定的测试,检查内部操作是否按规定执行各功能是否得到充分使用又称为结构测试、逻辑驱动测试或基于程序本身的测试,白盒测试,白盒测试活动语句覆盖分支覆盖判断覆盖条件覆盖判断/条件覆盖路径覆盖,两种测试方法从不同的角度出发反映了软件的不同侧面适用于不同
7、的开发环境,黑盒测试,白盒测试,黑盒测试与白盒测试比较,黑盒、白盒、动态、静态测试之间关系只是从测试的不同角度分类同一个测试,都有可能属于这几种测试,他们之间还有包含交叉的关系 黑盒测试有可能是动态测试(运行程序,只看输入和输出),也可能是静态测试(不运行程序,只看界面)白盒测试有可能是动态测试(运行程序,分析代码结构),也可能是静态测试(不运行程序,只是静态查看代码),动态测试有可能是黑盒测试(运行程序,只看输入和输出),也可能是白盒测试(运行程序,分析代码结构)静态测试有可能是黑盒测试(不运行程序,只是查看界面),也可能是白盒测试(不运行程序,只是静态查看代码),总体关系图,测试总体关系图
8、,问题:1、如果程序员为了确保是否能够满足功能需求而测试一个类,这属于黑盒测试还是白盒测试?2、如果非开发人员使用能够跟踪代码的测试工具来产生测试,以确保大部分代码都被执行到。只要软件没有被挂起或崩溃就认为测试通过了,这属于黑盒测试还是白盒测试?3、灰盒测试属于黑盒测试还是白盒测试?,黑盒测试,黑盒测试方法等价类划分边界值分析因果图错误推测功能图法等主要用于软件确认测试,经典问题:三角形问题与NextDate函数,三角形问题输入整数a、b、c,分别作为三角形的三条边,通过程序判断由三条边构成的三角形的类型为:等边三角形、等腰三角形、一般三角形,以及构不成三角形,必须满足的条件?输出情况是什么?
9、,结论:三角形问题的复杂之处在于输入与输出之间的关系比较复杂。,NextDate函数是有三个变量month、day和year的函数输出为输入日期后一天的日期例如:输入为1986年6月9日,则该函数的输出应为1986年6月10日。,必须满足的条件?输出情况是什么?,结论:在NextDate函数中有两种复杂性的输入来源,一是输入域的复杂性,二是确定闰年的规则并要增加“额外天”。,等价类划分法,等价类划分法作为一种最为典型的黑盒测试方法,完全不考虑程序的内部结构,只根据程序要求和说明来进行测试用例的设计。是黑盒程序测试员必须掌握的一种测试方法,等价类划分法是把程序的输入域划分为若干部分,然后从每个部
10、分中选取少数代表性数据当作测试用例,这些数据将能代表这一部分的全部数据。采用等价类划分方法进行测试用例的设计时,必须首先在分析需求规格说明的基础上划分等价类,列出等价表,从而确定出测试用例。,1、等价类的划分定义:在进行等价类划分之前,需要先从程序的功能说明书中找出各个输入条件,然后为每个输入条件划分两个或多个等价类,形成若干个互不相交的子集,称之为等价类。,等价类对于测试有两个重要的意义完备性整个输入域提供完备性无冗余性若互不相交则可保证无冗余性传统的等价类划分测试的实现分为两步进行一是确定等价类二是确定测试用例,划分等价类可分为两种情况:(1)有效等价类 是指对软件规格说明而言,是有意义的
11、、合理的输入数据所组成的集合。利用有效等价类,能够检验程序是否实现了规格说明中预先规定的功能和性能。,(2)无效等价类 是指对软件规格说明而言,是无意义的、不合理的输入数据所构成的集合。利用无效等价类,可以鉴别程序异常处理的情况,检查被测对象的功能和性能的实现是否有不符合规格说明要求的地方。,划分等价类等价类的原则:(1)如果输入条件规定了取值范围,或值的个数,则可以确立一个有效等价类和两个无效等价类。,例如,在程序的规格说明中,对输入条件有一句话:“项数可以从1到999”则有效等价类是“1项数999”两个无效等价类是“项数1”或“项数999”。在数轴上表示成:,(2)如果输入条件规定了输入值
12、的集合,或者是规定了“必须如何”的条件,这时可确立一个有效等价类和一个无效等价类。例如,在C语言中对变量标识符规定为“以字母或下划线打头的串”。那么所有以字母或下划线打头的构成有效等价类,而不在此集合内(不以字母打头)的归于无效等价类。(3)如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类。,(4)如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理。这时可为每一个输入值确立一个有效等价类,并针对这组值确立一个无效等价类,它是所有不允许的输入值的集合。例如,在教师上岗方案中规定对教授、副教授、讲师和助教分别计算分数,做相应的处理。因此可以确定4个有效等价类为教授、副
13、教授、讲师和助教,一个无效等价类,它是所有不符合以上身分的人员的输入值的集合。,(5)如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。,例如,C语言规定“一个语句必须以分号;结束”。这时,可以确定一个有效等价类“以;结束”,若干个无效等价类“以:结束”、“以,结束”、“以 结束”等。,(6)如果规定了输入数据为整型,则可以划分出正整数、零和负整数等三个有效类。(7)如果程序的处理对象是表格,则应该使用空表,以及含一项或多项的表。,在确立了等价类之后,建立等价类表,列出所有划分出的等价类,如下表所示:,2、设计测试用例 在设计测试用
14、例时,应同时考虑有效等价类和无效等价类测试用例的设计。根据已列出的等价类表可确定测试用例,具体过程如下:(1)首先为等价类表中的每一个等价类分别规定一个唯一的编号。,(2)设计一个新的测试用例,使它能够尽量覆盖尚未覆盖的有效等价类。重复这个步骤,直到所有的有效等价类均被测试用例所覆盖。(3)设计一个新的测试用例,使它仅覆盖一个尚未覆盖的无效等价类。重复这一步骤,直到所有的无效等价类均被测试用例所覆盖。,3、常见等价类划分测试形式针对是否对无效数据进行测试,可以将等价类测试分为标准等价类测试健壮等价类测试,标准等价类测试:不考虑无效数据值测试用例使用每个等价类中的一个值健壮等价类测试:主要的出发
15、点是考虑了无效等价类对有效输入,测试用例从每个有效等价类中取一个值对无效输入,一个测试用例有一个无效值,其他值均取有效值,健壮等价类测试存在两个问题:需要花费精力定义无效测试用例的期望输出对强类型的语言没有必要考虑无效的输入,例如:现定义,输入变量x1和x2在下列范围内取值:ax1 d,区间a,b,(b,c),c,dex2 g,区间e,f,f,g 变量x1,x2的无效等价类分别为:x1d和x2g。,图31 标准等价类测试用例,图32 健壮等价类测试用例,4、等价类划分测试的实例实例1 三角形问题 分析:在多数情况下,是从输入域划分等价类的,但并非不能从被测程序的输出域反过来定义等价类,事实上,
16、这对于三角形问题却是最简单的划分方法。在三角形问题中,有四种可能的输出:等边三角形、等腰三角形、一般三角形和非三角形。利用这些信息能够确定下列输出(值域)等价类。,R1=:边为a,b,c的等边三角形R2=:边为a,b,c的等腰三角形R3=:边为a,b,c的一般三角形R4=:边为a,b,c不能组成三角形,NextDate问题等价类表:,实例2:在某一Pascal语言版本中规定:“标识符是由字母开头,后跟字母或数字的任意组合构成。有效字符数为8个,最大字符数为80个。”,并且规定:“标识符必须先说明,再使用。在同一说明语句中,标识符至少必须有一个。”,用等价类划分的方法,建立输入等价类表,下面选取
17、了9个测试用例,它们覆盖了所有的等价类:VAR x,T1234567:REAL;BEGIN x:=3.414;T1234567:=2.732;(1),(2),(4),(8),(9),(12),(14),VAR:REAL;(3)VAR x,:REAL;(5)VAR T12345678:REAL;(6)VAR T12345:REAL;(7)多于80个字符,VAR T$:CHAR;(10)VAR GOTO:INTEGER;(11)VAR 2T:REAL;(13)VAR PAR:REAL;(15)BEGIN PAR:=SIN(3.14*0.8)/6;,练习:用等价类划分方法找出有效等价类和无效等价类,
18、并作出测试用例。某城市电话号码由三部分组成,内容如下:第一部分是地区码,地区码可以是空白或三位数字;第二部分是前缀为非零和非一开头的三位数;第三部分是后缀为四位数。,边界值分析法(BVA Boundary Value Analysis),边界值分析法“错误隐含在角落”(errors hide in the corner)白盒测试中也应用到了边界值的测试思想,它不是黑盒测试的专利,边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界,为什么使用边界值分析法?无数的测试实践表明,大量的故障往往发生在输入定义
19、域或输出值域的边界上,而不是在其内部。因此,针对各种边界情况设计测试用例,通常会取得很好的测试效果。,比如,在做三角形计算时,要输入三角形的三个边长:A、B和C。我们应注意到这三个数值应当满足A0、B0、C0、A+BC、A+CB、B+CA,才能构成三角形。但如果把六个不等式中的任何一个大于号“”错写成大于等于号“”,那就不能构成三角形。,怎样用边界值分析法设计测试用例?(1)首先确定边界情况。通常输入或输出等价类的边界就是应该着重测试的边界情况。(2)选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值。,举例 常见的边界值对16-bit 的整数而言 327
20、67 和-32768 是边界屏幕上光标在最左上、最右下位置报表的第一行和最后一行数组元素的第一个和最后一个循环的第 0 次、第 1 次和倒数第 2 次、最后一次,边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例。,例:测试计算平方根的函数 输入:实数 输出:实数 规格说明:当输入一个0或比0大的数的时候,返回其正平方根;当输入一个小于0的数时,显示错误信息“平方根非法-输入值小于0”并返回0;库函数Print-Line可以用来输出错误信息。,等价类划分:可以考虑作出如下划分:输入(i)=0输出(a)=0 和(b)Error,测试用例有两个:输入4,输出
21、2。对应于(ii)和(a)。输入-10,输出错误提示。对应于(i)和(b)。,边界值分析:划分(ii)的边界为0和最大正实数;划分(i)的边界为最小负实数和0。由此得到以下测试用例:输入 最小负实数 输入 绝对值很小的负数 输入 0 输入 绝对值很小的正数 输入 最大正实数,通常情况下,软件测试所包含的边界检验有几种类型:数字、字符、位置、质量、大小、速度、方位、尺寸、空间等 相应地,以上类型的边界值应该在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最长、空/满等情况下。,在多数情况下,边界值条件是基于应用程序的功能设计而需要考虑的因素,可以从软件的规格说明或常识中得到,也
22、是最终用户可以很容易发现问题的。然而,在测试用例设计过程中,某些边界值条件是不需要呈现给用户的,或者说用户是很难注意到的,但同时确实属于检验范畴内的边界条件,称为内部边界值条件或子边界值条件。,内部边界值条件主要有下面几种:数值的边界值检验字符的边界值检验其它边界值检验,计算机是基于二进制进行工作的,因此,软件的任何数值运算都有一定的范围限制。,用边界值分析设计测试用例应遵循的原则:1、如果输入条件规定了取值范围,则应对该范围的边界内附近,恰好在边界和在边界外附近(无效等价类中)设计测试用例。如:规定15千克邮件收费2元,应对0.9,1,1.1,4.9,5,5.1千克设计测试用例。,2、如果输
23、入条件规定了数据的个数,则应对最少个数,最多个数,比最少个数少1,比最大个数多1等情况设计测试用例。如:输入文件有1255个记录,则应分别设计0,1,255,256个记录的输入文件的测试用例。,3、针对规格说明中的每个输出条件使用前面的1和2原则。如:计算折扣量,最低折扣为0元,最高为1000元,则要设计使它们恰好产生0元或1000元的结果。以及负值或稍大于1000元的结果(如果可能的话)。,4、如果程序规格说明中提到的输入或输出域是个有序的集合(如顺序文件,线性表等)。应选有序集的第一个和最后一个元素作为测试用例,等价类和边界值方法的区别:(1)边界值不是从等价类中随便取一个数据作为代表,而
24、是选一个或几个特定值,使这个等价类的每个边界都作为测试的目标。(2)边界值分析不仅要考虑输入条件,而且要考虑输出条件(输出等价类)。一般联合使用等价类划分和边界值分析两种方法。,2、边界值分析测试,采用边界值分析测试的基本思想是:故障往往出现在输入变量的边界值附近。因此,边界值分析法利用输入变量的最小值(min)、略大于最小值(min+)、输入值域内的任意值(nom)、略小于最大值(max-)和最大值(max)来设计测试用例。,边界值分析法是基于可靠性理论中称为“单故障”的假设,即有两个或两个以上故障同时出现而导致软件失效的情况很少,也就是说,软件失效基本上是由单故障引起的。,因此,在边界值分
25、析法中获取测试用例的方法是:(1)每次保留程序中一个变量,让其余的变量取正常值,被保留的变量依次取min、min+、nom、max-和max。(2)对程序中的每个变量重复(1)。,例1:有两个输入变量x1(ax1b)和x2(cx2d)的程序F的边界值分析。测试用例如下:,例2:有二元函数f(x,y),其中x1,12,y1,31。则采用边界值分析法设计的测试用例是:,推论:对于一个含有n个变量的程序,采用边界值分析法测试程序会产生4n+1个测试用例。,练习:有函数f(x,y,z),其中x1900,2100,y1,12,z1,31的。请写出该函数采用边界值分析法设计的测试用例。,答案:,;,3、健
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测试技术基础 测试 技术 基础 PPT 课件
链接地址:https://www.31ppt.com/p-5547047.html