您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 统计图表 > 第二章软件测试技术(黑盒)
第二章软件测试技术沈阳师范大学软件学院1软件工程系孟磊netmenglei@126.com本章内容白盒测试技术黑盒测试技术沈阳师范大学软件学院2本节内容2.2黑盒测试技术2.2.1边界值分析法2.2.2等价类分析法2.2.3因果图分析法2.2.4决策表分析法沈阳师范大学软件学院32.2.1边界值分析法黑盒测试概述任何程序都可看作是将从输入定义域取值映射到输出值域的函数,不考虑程序内部的逻辑结构和特性,只根据软件的规格需求说明书,观察程序的入口和出口,是否符合功能说明;对于一些外购软件、参数化软件包,因无法得到源程序,只能用黑盒测试。沈阳师范大学软件学院4输入输出2.2.1边界值分析法边界值概念从根本上讲,任何程序都可看作是一个函数,它从一个集合(函数的定义域,即程序的输入)的值映射到另一个集合(函数的值域,即程序的输出)的值上。沈阳师范大学软件学院5Output=F(Input)DomainRangeF输入定义域测试应把需求规格说明中对输入和对输出的要求区别开来并加以分解2.2.1边界值分析法边界值产生的原因•从长期的测试工作经验获得,由于在软件设计和程序编写中,常对规格说明中的输入或输出域边界不注意,导致大量错误发生在输入或输出范围的边界上,而非输入或输出范围的内部。•设计测试用例时,对边界附近的处理必须给予足够重视,为检验边界附件的处理专门设计测试用例常可取得良好的测试效果。•基本思想:选择输入或输出变量的极值、略低于或略高于极值设计测试用例。沈阳师范大学软件学院62.2.1边界值分析法边界选择的原则•输入条件规定了取值范围,则以该范围作为边界•输入条件规定了值的个数,则以之为边界;•针对规格说明的每个输出条件,使用前面的原则(1)和(2);•如果规格说明给出的输入或输出域是有序集合(如有序表、顺序文件等),则选取集合中特定次序的元素作为边界,如第一个、最后一个元素等;•如果程序中使用了一个内部数据结构,则应选择该结构的边界上的值,如数组、链表等;•分析规格说明,找出其它可能边界条件。7沈阳师范大学软件学院2.2.1边界值分析法常见的边界值•对16-bit的整数而言32767和-32768是边界•屏幕上光标在最左上、最右下位置•报表的第一行和最后一行•数组元素的第一个和最后一个•循环的第0次、第1次和倒数第2次、最后一次沈阳师范大学软件学院82.2.1边界值分析法例题测试计算平方根的函数——输入:实数——输出:实数——规格说明:当输入一个0或比0大的数的时候,返回其正平方根;当输入一个小于0的数时,显示错误信息“平方根非法-输入值小于0”并返回0;库函数Print-Line可以用来输出错误信息。沈阳师范大学软件学院92.2.1边界值分析法解题可以考虑作出如下划分:输入(i)0和(ii)=0输出(a)=0和(b)Error测试用例有两个:输入4,输出2。对应于(ii)和(a)。输入-10,输出错误提示。对应于(i)和(b)。沈阳师范大学软件学院102.2.1边界值分析法边界值分析:划分(ii)的边界为0和最大正实数;划分(i)的边界为最小负实数和0;由此得到以下测试用例:输入{最小负实数}输入{绝对值很小的负数}输入0输入{绝对值很小的正数}输入{最大正实数}沈阳师范大学软件学院112.2.1边界值分析法边界值分析:通常字符情况下,软件测试包含的边界检验有几种类型:数字位置、质量、大小、速度、方位、尺寸、空间等相应地,以上类型的边界值应该在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最长、空/满等情况下。沈阳师范大学软件学院122.2.1边界值分析法边界值分析:在多数情况下,边界值条件是基于应用程序的功能设计而需要考虑的因素,可以从软件的规格说明或常识中得到,也是最终用户可以很容易发现问题的。然而,在测试用例设计过程中,某些边界值条件是不需要呈现给用户的,或者说用户是很难注意到的,但同时确实属于检验范畴内的边界条件,称为内部边界值条件或子边界值条件。沈阳师范大学软件学院132.2.1边界值分析法内部边界值条件主要有下面几种:数值的边界值检验字符的边界值检验其它边界值检验沈阳师范大学软件学院142.2.1边界值分析法数值的边界值检验:计算机是基于二进制进行工作的,因此,软件的任何数值运算都有一定的范围限制。沈阳师范大学软件学院152.2.1边界值分析法字符的边界值检验:在字符的编码方式中,ASCII和Unicode是比较常见的编码方式,下面表中列出了部分的ASCII码对应表。沈阳师范大学软件学院162.2.1边界值分析法沈阳师范大学软件学院17字符ASCII值字符ASCII值Null0B66Space32Z90/47[91048‘96149a97957b98:58y121@64z122A65{1232.2.1边界值分析法其它边界值检验:包括默认值/空值/空格/未输入值/零、无效数据/不正确数据和干扰数据等。在实际的测试用例设计中,需要将基本的软件设计要求和程序定义的要求结合起来,即结合基本边界值条件和子边界值条件来设计有效的测试用例。沈阳师范大学软件学院182.2.1边界值分析法边界值测试方法:故障往往出现在输入变量的边界值附近。利用输入变量的最小值(min)略大于最小值(min+)、输入值域内的任意值(nom)、略小于最大值(max-)和最大值(max)来设计测试用例。沈阳师范大学软件学院192.2.1边界值分析法边界值测试方法:沈阳师范大学软件学院20边界值分析测试用例2.2.1边界值分析法边界值测试方法:边界值分析法是基于可靠性理论中称为“单故障”的假设,即有两个或两个以上故障同时出现而导致软件失效的情况很少,也就是说,软件失效基本上是由单故障引起的。因此,在边界值分析法中获取测试用例的方法是:•每次保留程序中一个变量,让其余的变量取正常值,被保留的变量依次取min、min+、nom、max-和max。•对程序中的每个变量重复(1)。沈阳师范大学软件学院212.2.1边界值分析法例题:有二元函数f(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个变量的程序,采用边界值分析法测试程序会产生4n+1个测试用例。沈阳师范大学软件学院222.2.1边界值分析法练习:有函数f(x,y,z),其中x∈[1900,2100],y∈[1,12],z∈[1,31]的。请写出该函数采用边界值分析法设计的测试用例。沈阳师范大学软件学院232.2.1边界值分析法健壮性测试:健壮性测试是作为边界值分析的一个简单的扩充,它除了对变量的5个边界值分析取值外,还需要增加一个略大于最大值(max+)以及略小于最小值(min-)的取值,检查超过极限值时系统的情况。因此,对于有n个变量的函数采用健壮性测试需要6n+1个测试用例。沈阳师范大学软件学院242.2.1边界值分析法健壮性测试:沈阳师范大学软件学院25健壮性边界值测试用例2.2.2等价类分析法等价类产生的原因:基本思想:把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据当作测试用例,每一类的代表性数据在测试中的作用等价于这一类中的其它值。沈阳师范大学软件学院26划分1234选择代表元素输入域互不相交的子集子集的并是整个集合完备性无冗余2.2.2等价类分析法等价类定义由于不可能用所有可以输入的数据来测试程序,而只能从全部可供输入的数据中选择一个自己进行测试。如何选择适当的子集,使其尽可能多地发现错误,解决的办法之一就是等价类。沈阳师范大学软件学院272.2.2等价类分析法划分等价类划分法是一种典型的、重要的黑盒测试方法,它将程序所有可能的输入数据(有效的和无效的)划分成若干个等价类。然后从每个部分中选取具有代表性的数据当做测试用例进行合理的分类,测试用例由有效等价类和无效等价类的代表组成,从而保证测试用例具有完整性和代表性。沈阳师范大学软件学院282.2.2等价类分析法等价类划分的步骤通过分析需求规格说明,划分等价类,列出等价类表设计测试用例沈阳师范大学软件学院292.2.2等价类分析法有效等价类/无效等价类有效等价类:对于程序的规格说明而言,是合理的、有意义的输入数据构成的集合用于检验程序是否实现了规格说明预先规定的性能和性能无效等价类:对于程序的规格说明而言,是不合理的、无意义的输入数据构成的集合用于检查程序中功能和性能的实现是否不符合规格说明要求沈阳师范大学软件学院302.2.2等价类分析法例题在程序的规格说明中,对输入条件有一句话:“……项数可以从1到999……”有效等价类是“1≤项数≤999”两个无效等价类是“项数<1”或“项数>999”。在数轴上表示成:沈阳师范大学软件学院311999x有效等价类无效等价类无效等价类2.2.2等价类分析法测试用例的设计为每个等价类规定一个唯一的编号;设计一个新的测试用例,使之尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步直至所有的有效等价类都被覆盖为止;设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步直至所有的无效等价类都被覆盖为止。沈阳师范大学软件学院322.2.2等价类分析法例题某报表处理系统要求用户输入处理报表的日期,日期限制在2001年1月至2005年12月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息。系统日期规定由年、月的6位数字字符组成,前四位代表年,后两位代表月。如何用等价类划分法设计测试用例,来测试程序的日期检查功能?沈阳师范大学软件学院332.2.2等价类分析法解答第一步:等价类划分“报表日期”输入条件的等价类表沈阳师范大学软件学院342.2.2等价类分析法解答第二步:为有效等价类设计测试用例对表中编号为1,2,3的3个有效等价类用一个测试用例覆盖:沈阳师范大学软件学院352.2.2等价类分析法解答第三步:为每一个无效等价类设计至少一个测试用例沈阳师范大学软件学院362.2.2等价类分析法习题一某程序规定:“输入三个整数作为三边的边长构成三角形。当此三角形为一般三角形、等腰三角形及等边三角形时,分别做计算...”。试用等价类划分方法为该程序的构成三角形部分进行测试用例设计。沈阳师范大学软件学院372.2.2等价类分析法习题二某城市的电话号码由三部分组成。这三部分的名称和内容分别是地区码:空白或三位数字;前缀:非’0’或’1’开头的三位数;后缀:四位数字。假定被调试的程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的号码,试用等价分类法来设计它的调试用例。沈阳师范大学软件学院382.2.3因果图分析法因果法(Cause/EffectGraphing)简介因果图法产生的背景:等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。沈阳师范大学软件学院392.2.3因果图分析法因果法(Cause/EffectGraphing)简介如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。沈阳师范大学软件学院402.2.3因果图分析法因果法(Cause/EffectGraphing)简介思想:一些程序的功能可以用判定表的形式来表示并根据输入条件的组合情况规定相应的操作为判定表中的每一列设计一个测试用例,测试程序在输入条件的某种组合下的输出是否正确沈阳师范大学软件学院412.2.3因果图分析法因果法(Cause/EffectGraphing)简介定义:是一种利用图解法分析输入的
本文标题:第二章软件测试技术(黑盒)
链接地址:https://www.777doc.com/doc-1493709 .html