第2章黑盒测试精选文档.ppt
第第2 2章黑盒测试章黑盒测试本讲稿第一页,共一百零三页第第2 2章章 黑盒测试黑盒测试1黑盒测试的基本概念黑盒测试的基本概念2等价类划分等价类划分3边界值分析法边界值分析法4因果图法因果图法5决策表法决策表法6黑盒测试方法的比较与选择黑盒测试方法的比较与选择7黑盒测试工具介绍黑盒测试工具介绍本讲稿第二页,共一百零三页1 1 黑盒测试的基本概念黑盒测试的基本概念 黑盒测试黑盒测试是从一种从软件外部对软件实施的测试,也称是从一种从软件外部对软件实施的测试,也称功能功能测试测试或或基于规格说明的测试基于规格说明的测试。(1)基本思想:基本思想:任何程序都可以看作是从任何程序都可以看作是从输入定义域输入定义域到到输出值域输出值域的映射,的映射,这种观点将被测程序看作一个打不开的黑盒,黑盒里面的内这种观点将被测程序看作一个打不开的黑盒,黑盒里面的内容容(实现实现)是完全不知道的,只知道软件要做什么。因无法看是完全不知道的,只知道软件要做什么。因无法看到盒子中的内容,所以不知道软件是如何实现的,也不关心到盒子中的内容,所以不知道软件是如何实现的,也不关心黑盒里面的结构,只关心黑盒里面的结构,只关心软件的输入数据和输出结果。软件的输入数据和输出结果。本讲稿第三页,共一百零三页1 1 黑盒测试的基本概念黑盒测试的基本概念(2)黑盒测试方法作用:黑盒测试方法作用:黑盒测试方法着重测试软件的功能需求,是在程序接口上进黑盒测试方法着重测试软件的功能需求,是在程序接口上进行测试。行测试。主要是为了发现以下错误主要是为了发现以下错误:n是否有不正确的功能,是否有遗漏的功能;是否有不正确的功能,是否有遗漏的功能;n在接口上,是否能够正确地接收输入数据并产生正确的输出结在接口上,是否能够正确地接收输入数据并产生正确的输出结果;果;n是否有数据结构错误或外部信息访问错误;是否有数据结构错误或外部信息访问错误;n性能上是否能够满足要求;性能上是否能够满足要求;n是否有程序初始化和终止方面的错误。是否有程序初始化和终止方面的错误。本讲稿第四页,共一百零三页1 1 黑盒测试的基本概念黑盒测试的基本概念 (3)常用的黑盒测试方法常用的黑盒测试方法:等价类划分法等价类划分法边界值分析法边界值分析法决策表法决策表法因果图法因果图法每种方法各有所长,应针对软件开发项目的具体特点,每种方法各有所长,应针对软件开发项目的具体特点,选择合适的测试方法,有效地解决软件开发中的测试问题。选择合适的测试方法,有效地解决软件开发中的测试问题。本讲稿第五页,共一百零三页 2 2 等价类划分等价类划分 等价类划分等价类划分法是一种典型的黑盒测试方法,它完全不考虑法是一种典型的黑盒测试方法,它完全不考虑程序的内部结构,程序的内部结构,只根据程序规格说明书对输入范围进行划分,只根据程序规格说明书对输入范围进行划分,把所有可能的输入数据分类。把所有可能的输入数据分类。程序输入域划分为若干个互不相交的子集,称为程序输入域划分为若干个互不相交的子集,称为等价类等价类,然后,然后从从每个等价类每个等价类中中选取少数具有代表性的数据选取少数具有代表性的数据作为作为测试用例测试用例,进行测,进行测试试。本讲稿第六页,共一百零三页2 2 等价类划分等价类划分-等价类划分方法等价类划分方法2.1等价类划分方法等价类划分方法等价类划分法等价类划分法是黑盒测试用例设计中一种常用的设计方法,是黑盒测试用例设计中一种常用的设计方法,它将不能穷举的测试过程它将不能穷举的测试过程进行合理分类进行合理分类,从而保证设计出来的测试从而保证设计出来的测试用例具有用例具有完整性完整性和和代表性代表性。本讲稿第七页,共一百零三页2 2 等价类划分等价类划分-(1)划分等价类在划分等价类的过程中,一般分为两大类在划分等价类的过程中,一般分为两大类:有效等价类:有效等价类:指对软件规格说明来说,合理、有意义的输入数据所构成的集合。指对软件规格说明来说,合理、有意义的输入数据所构成的集合。无效等价类:无效等价类:指对软件规格说明来说,不满足程序输入要求或者无效的输入数据所构成指对软件规格说明来说,不满足程序输入要求或者无效的输入数据所构成的集合。的集合。本讲稿第八页,共一百零三页(1 1)按区间划分:)按区间划分:如果规定了输入条件的取值范围或者个数,则可以确定一个有效等价类和两个无如果规定了输入条件的取值范围或者个数,则可以确定一个有效等价类和两个无效等价类效等价类 (2 2)按数值划分)按数值划分:如果规定了输入数据的一组值,并且程序要对每一个输入值分别进行处理,则可如果规定了输入数据的一组值,并且程序要对每一个输入值分别进行处理,则可为每一个值确定一个有效等价类,此外根据这组值确定一个无效等价类,即所有不为每一个值确定一个有效等价类,此外根据这组值确定一个无效等价类,即所有不允许的输入值的集合。允许的输入值的集合。(3 3)按数值集合划分:)按数值集合划分:如果规定了输入值的集合,则可以确定一个有效等价类和一个无效等价类如果规定了输入值的集合,则可以确定一个有效等价类和一个无效等价类(4 4)按限制条件或规则划分:)按限制条件或规则划分:如果规定了输入数据必须遵守的规则,则可以确定一个有效等价类和若干个无效等价类如果规定了输入数据必须遵守的规则,则可以确定一个有效等价类和若干个无效等价类(5 5)细分等价类:)细分等价类:如果已知的等价类中各个元素在程序中的处理方式不同,则应将该等价类进一步划分如果已知的等价类中各个元素在程序中的处理方式不同,则应将该等价类进一步划分成更小的等价类成更小的等价类2 2 等价等价类类划分划分-(2 2)等价等价类类划分原划分原则则本讲稿第九页,共一百零三页 在确立了等价类之后,可按下表的形式列出所有划分出的等在确立了等价类之后,可按下表的形式列出所有划分出的等价类表:价类表:表表1等价类表等价类表同样,也可按照输出条件,将同样,也可按照输出条件,将输出域划分为若干个等价类。输出域划分为若干个等价类。输入条件输入条件有效等价类有效等价类无效等价类无效等价类2 2 等价等价类类划分划分-等价等价类类的描述形式的描述形式本讲稿第十页,共一百零三页在设计测试用例时应同时考虑在设计测试用例时应同时考虑有效等价类和无效等价类测试用例的设计有效等价类和无效等价类测试用例的设计。根据等价类表设计测试用例,具体步骤:根据等价类表设计测试用例,具体步骤:(1)为每个等价类规定一个唯一的编号。)为每个等价类规定一个唯一的编号。(2)设计一个新的测试用例,尽可能多地覆盖尚未被覆盖的有效等价设计一个新的测试用例,尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到测试用例覆盖了所有的有效等价类。类,重复这一步,直到测试用例覆盖了所有的有效等价类。(3)设计一个新的测试用例,使其覆盖并且只覆盖一个还没有被覆盖的设计一个新的测试用例,使其覆盖并且只覆盖一个还没有被覆盖的无效等价类。重复这一步,直至测试用例覆盖了所有的无效等价类无效等价类。重复这一步,直至测试用例覆盖了所有的无效等价类。2 2 等价等价类类划分划分-(3 3)等价)等价类类划分划分测试测试用例用例设计设计本讲稿第十一页,共一百零三页2.2等价类划分法的测试运用等价类划分法的测试运用例三角形问题的等价类测试例三角形问题的等价类测试问题问题:输入三个整数输入三个整数a、b和和c分别作为三角形的分别作为三角形的3条边长,通条边长,通过程序判断由这过程序判断由这3条边构成的三角形类型是:等边三角形、等腰三条边构成的三角形类型是:等边三角形、等腰三角形、一般三角形或非三角形。角形、一般三角形或非三角形。2 2 等价等价类类划分划分-等价等价类类划分法的划分法的测试测试运用运用本讲稿第十二页,共一百零三页 分析:分析:假设假设3个输入数据个输入数据a,b,c在在1100之间取值,三角形问题可以更详细地之间取值,三角形问题可以更详细地描述为:描述为:输入输入3个整数个整数a、b和和c分别作为三角形的三条边,要求分别作为三角形的三条边,要求a、b和和c必须满必须满足以下条件:足以下条件:Con11a10Con21b100Con31c100Con4ab+cCon5ba+cCon6ca+b如果如果a、b和和c满足满足Con1、Con2和和Con3,则输出为,则输出为4种情况之一:种情况之一:如果不如果不满足条件足条件Con4、Con5和和Con6中有一个,中有一个,则程序程序输出出为“非三角形非三角形”。如果三条如果三条边相等,相等,则程序程序输出出为“等等边三角形三角形”。如果恰好有两条如果恰好有两条边相等,相等,则程序程序输出出为“等腰三角形等腰三角形”。如果三条如果三条边都不相等,都不相等,则程序程序输出出为“一般三角形一般三角形”。2 2 等价等价类类划分划分-等价等价类类划分法的划分法的测试测试运用运用本讲稿第十三页,共一百零三页 标准等价类测试不考虑无效数据值标准等价类测试不考虑无效数据值,测试用例使用每个等价类中,测试用例使用每个等价类中的一个值。的一个值。对于对于“三角形问题三角形问题”,从输出域来定义等价类是最简单的划分从输出域来定义等价类是最简单的划分方法方法。因此,可以确定下列值域等价类:因此,可以确定下列值域等价类:R1=a,b,c:边为:边为a,b,c 的等边三角形的等边三角形R2=a,b,c:边为:边为a,b,c 的等腰三角形的等腰三角形R3=a,b,c:边为:边为a,b,c 的一般三角形的一般三角形R4=a,b,c:边为:边为a,b,c 不能构成三角形不能构成三角形4个标准等价类测试用例如表个标准等价类测试用例如表4-4所示。所示。(1)采用)采用标准等价类划分标准等价类划分,实现测试,实现测试本讲稿第十四页,共一百零三页测试测试用例用例abc预预期期输输出出TC1202020等等边边三角形三角形TC2202010等腰三角形等腰三角形TC35810一般三角形一般三角形TC43610不构成三角形不构成三角形表表2-4 三角形问题的标准等价类测试用例三角形问题的标准等价类测试用例本讲稿第十五页,共一百零三页(2)采用采用“健壮等价类健壮等价类”划分划分,实现测试,实现测试健壮等价类测试健壮等价类测试主要的出发点是考虑了主要的出发点是考虑了无效等价类无效等价类。对对有效输入有效输入,测试用例从,测试用例从每个有效等价类中取一个值每个有效等价类中取一个值;对对无效输入无效输入,一个测试用例有一个无效值一个测试用例有一个无效值,其他值均取有其他值均取有效值效值。健壮等价类测试存在两个问题:健壮等价类测试存在两个问题:n需要花费精力定义无效测试用例的期望输出;需要花费精力定义无效测试用例的期望输出;n对强类型的语言没有必要考虑无效的输入对强类型的语言没有必要考虑无效的输入。本讲稿第十六页,共一百零三页测试测试用例用例abc预预期期输输出出TC1345一般三角形一般三角形TC2-144a值值超出定超出定义义域范域范围围TC34-14b值值超出定超出定义义域范域范围围TC444-1c值值超出定超出定义义域范域范围围TC510144a值值超出定超出定义义域范域范围围TC641014b值值超出定超出定义义域范域范围围TC744101c值值超出定超出定义义域范域范围围三角形问题的健壮等价类测试用例三角形问题的健壮等价类测试用例对于对于“三角形问题三角形问题”,取,取a、b、c的无效值,的无效值,产生了产生了7个健壮等价类测试用例个健壮等价类测试用例。本讲稿第十七页,共一百零三页(3 3)采用)采用“对等区间划分对等区间划分”等价类等价类,实现测试,实现测试 对等区间划分对等区间划分是测试用例设计的非常规形式化的方法。是测试用例设计的非常规形式化的方法。它将被测对象的输入它将被测对象的输入/输出划分成一些区间,被测软件输出划分成一些区间,被测软件对一个特定区间的任何值都是等价的。对一个特定区间的任何值都是等价的。形成测试区间的数据不只是函数形成测试区间的数据不只是函数/过程的参数,也可以过程的参数,也可以是程序可以访问的全局变量、系统资源等,这些变量或资是程序可以访问的全局变量、系统资源等,这些变量或资源可以是以时间形式存在的数据,或以状态形式存在的输源可以是以时间形式存在的数据,或以状态形式存在的输入入/输出序列。输出序列。本讲稿第十八页,共一百零三页例例2:平方根函数要求当输入值为平方根函数要求当输入值为0或大于或大于0时,返回输入数的时,返回输入数的平方根;当输入值小于平方根;当输入值小于0时,显示错误信息时,显示错误信息“平方根错误,平方根错误,输入值小于输入值小于0”,并返回,并返回0。本讲稿第十九页,共一百零三页输输入区入区间间输输出区出区间间=0=0BError通过分析,可以用通过分析,可以用2个测试用例来测试个测试用例来测试4个区间:个区间:测试用例测试用例1:输入:输入4,返回,返回2 /区间区间和和a测试用例测试用例2:输入:输入-10,返回,返回0,输出,输出“平方根错误,输入值小于平方根错误,输入值小于0”/区间区间和和b 分析:分析:考虑平方根函数的测试用例区间,可以划分出考虑平方根函数的测试用例区间,可以划分出两个输入区两个输入区间间和和两个输出区间两个输出区间。本讲稿第二十页,共一百零三页例例3:在某网站申请免费信箱时,要求用户必须输入用户名、密码在某网站申请免费信箱时,要求用户必须输入用户名、密码及确认密码,对每一项输入条件的要求如下:及确认密码,对每一项输入条件的要求如下:(1)用户名要求为)用户名要求为4位以上,位以上,16位以下,使用英文字母、数字、位以下,使用英文字母、数字、“-”、“_”,并且首字符必须为字母或数字;,并且首字符必须为字母或数字;(2)密码要求为密码要求为616位之间,只能使用英文字母、数字以及位之间,只能使用英文字母、数字以及“-”、“_”,并且区分大小写。,并且区分大小写。2 2 等价等价类类划分划分-等价等价类类划分法的划分法的测试测试运用运用本讲稿第二十一页,共一百零三页分析:根据规格说明,列出等价类表分析:根据规格说明,列出等价类表 (包括有效等价类和无效等价类)(包括有效等价类和无效等价类)输输入入条件条件有效等价有效等价类类编编号号无效等价无效等价类类编编号号用用户户名名416位位1少于少于4位位8多于多于16位位9首字符首字符为为字母字母2首字符首字符为为除字母、数字之外除字母、数字之外的其他字符的其他字符10首字符首字符为为数字数字3英文字母、数字、英文字母、数字、“-”、“_”组组合合4组组合中含有除英文字母、数合中含有除英文字母、数字、字、“-”、“_”之外的其他特之外的其他特殊字符殊字符11密密码码616位位5少于少于6位位12多于多于16位位13英文字母、数字、英文字母、数字、“-”、“_”组组合合6组组合中含有除英文字母、数合中含有除英文字母、数字、字、“-”、“_”之外的其他特之外的其他特殊字符殊字符14确确认认密密码码内容同密内容同密码码相同相同7内容同密内容同密码码相同,但字母大相同,但字母大小写不同小写不同15本讲稿第二十二页,共一百零三页根据上述等价类表,设计测试用例根据上述等价类表,设计测试用例测试测试用例用例用用户户名名密密码码确确认认密密码码预预期期输输出出TC1abc_2000abc_123abc_123注册成功注册成功TC22000-abc123-abc123-abc注册成功注册成功TC3abc1234567812345678提示用提示用户户名名错误错误TC4abcdefghijk1234561234567812345678提示用提示用户户名名错误错误TC5_abc1231234567812345678提示用提示用户户名名错误错误TC6abc&1231234567812345678提示用提示用户户名名错误错误TC7abc_1231234512345提示密提示密码错误码错误TC8abc_123abcdefghijk123456abcdefghijk123456提示密提示密码错误码错误TC9abc_123abc&123abc&123提示密提示密码错误码错误TC10abc_123abc_123Abc_123提示密提示密码错误码错误本讲稿第二十三页,共一百零三页例例4保险公司人寿保险保费计算程序的等价类测试,某保险公司保险公司人寿保险保费计算程序的等价类测试,某保险公司人寿保险的保费计算方式为:人寿保险的保费计算方式为:保费投保额保费投保额保险费率保险费率其中,保险费率根据其中,保险费率根据年龄、性别、婚姻状况和抚养人数的不同年龄、性别、婚姻状况和抚养人数的不同而有所不同而有所不同,体现在不同年龄、性别、婚姻状况和抚养人数,点数,体现在不同年龄、性别、婚姻状况和抚养人数,点数设定不同,设定不同,10点及点及10点以上保险费率为点以上保险费率为0.6%,10点以下保险费率为点以下保险费率为0.1%;而点数又是由投保人的年龄、性别、婚姻状况和抚养人数;而点数又是由投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则见表。来决定,具体规则见表。年龄年龄性别性别婚姻状况婚姻状况抚养人数抚养人数20394059其它其它MF已婚已婚未婚未婚1人扣人扣0.5点,点,最多扣最多扣3点点6点点4点点2点点4点点3点点3点点5点点2 2 等价等价类类划分划分-等价等价类类划分法的划分法的测试测试运用运用本讲稿第二十四页,共一百零三页 根据规格说明中给出和隐含的对输入数据的要求,可以根据规格说明中给出和隐含的对输入数据的要求,可以得出:得出:年龄:一位或两位非零整数,取值的有效范围为年龄:一位或两位非零整数,取值的有效范围为199。性别:一位英文字符,只能取性别:一位英文字符,只能取 M或或F 值。值。婚姻:字符,只能取婚姻:字符,只能取已婚已婚或或未婚未婚。抚养人数:空白或字符抚养人数:空白或字符无无或一位非零整数(或一位非零整数(19)点数点数:一位或两位非零整数,取值范围为:一位或两位非零整数,取值范围为819 通过对规格说明输入数据的取值分析,可以得出保险公通过对规格说明输入数据的取值分析,可以得出保险公司人寿保险保费计算程序的等价类(司人寿保险保费计算程序的等价类(实际上采用按区域实现实际上采用按区域实现等价类划分等价类划分)。)。分析:分析:练习:练习:不要看书,学生自己给出等价类的划分和测试用例的设计。不要看书,学生自己给出等价类的划分和测试用例的设计。本讲稿第二十五页,共一百零三页练习:练习:请给出请给出一元一元二次方程二次方程求解根的求解根的程序的等价类的划程序的等价类的划分和测试用例的设分和测试用例的设计计开始a!=0mid0计算并输出两不等实根输入a,b,c输出具体数值结束mid=b*b-4*a*cMid=0计算并输出两等实根计算并输出两复根nonoyesyesnoyes本讲稿第二十六页,共一百零三页2.3 边界值分析法 边界值分析法边界值分析法(Boundary Value Analysis,BVA)是一种补充等价类)是一种补充等价类划分法的测试用例设计技术,它不是选择等价类的任意元素,划分法的测试用例设计技术,它不是选择等价类的任意元素,而是选择等价类边而是选择等价类边界的测试用例界的测试用例。在应用边界值分析法设计测试用例时,应遵循以下几条原则:在应用边界值分析法设计测试用例时,应遵循以下几条原则:n如果输入条件如果输入条件规定了值的范围规定了值的范围,则应该选取刚达到这个范围的边界值,以及,则应该选取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据。刚刚超过这个范围边界的值作为测试输入数据。n如果输入条件如果输入条件规定了值的个数规定了值的个数,则用最大个数、最小个数、比最小个数少,则用最大个数、最小个数、比最小个数少1、比最大个数多比最大个数多1的数作为测试数据。的数作为测试数据。n根据规格说明的根据规格说明的每一个输出条件,分别使用以上两个原则每一个输出条件,分别使用以上两个原则。n如果程序的规格说明给出的如果程序的规格说明给出的输入域或者输出域是有序集合(如有序表、顺序文件等),输入域或者输出域是有序集合(如有序表、顺序文件等),则应选取集合的第一个元素和最后一个元素作为测试用例。则应选取集合的第一个元素和最后一个元素作为测试用例。n如果程序中使用了如果程序中使用了一个内部数据结构一个内部数据结构,则应当选择这个内部数据结构的边界,则应当选择这个内部数据结构的边界值作为测试用例。值作为测试用例。n分析规格说明,分析规格说明,找出其他可能的边界条件。找出其他可能的边界条件。本讲稿第二十七页,共一百零三页1边界条件边界条件边界是一些边界是一些特殊情况特殊情况。程序在处理大量中间数值时都是正确,但是程序在处理大量中间数值时都是正确,但是在边界处可能出现错误在边界处可能出现错误。边界条件就是软件计划的操作界限所在的边缘条件。边界条件就是软件计划的操作界限所在的边缘条件。一些可能与边界有关的数据类型有:一些可能与边界有关的数据类型有:数值,速度,字符,地址,位置,尺寸,数量等。数值,速度,字符,地址,位置,尺寸,数量等。同时,考虑这些数据类型的下述特征:同时,考虑这些数据类型的下述特征:第一个第一个/最后一个,最后一个,最小值最大值,最小值最大值,开始完成,开始完成,超过超过/在内,在内,空满,空满,最短最长,最短最长,最慢最慢/最快,最快,最早最早/最迟,最迟,最高最低,最高最低,相邻最远等。相邻最远等。2.3.1 2.3.1 边边界界值值分析法的原理分析法的原理本讲稿第二十八页,共一百零三页项项边边界界值值测试测试用例的用例的设计设计思路思路字符字符起始起始-1-1个字符个字符/结结束束+1+1个字符个字符假假设设一个文本一个文本输输入区域要求入区域要求允允许输许输入入1 1到到255255个个字符,字符,输输入入1 1个和个和255255个字符作个字符作为为有效等价有效等价类类;输输入入0 0个和个和256256个字符作个字符作为为无效等价无效等价类类,这这几个数几个数值值都属于都属于边边界条件界条件值值数数值值开始位开始位-1-1/结结束位束位+1+1假假设软设软件要求件要求输输入的数据入的数据为为5 5位数位数值值,则则可以使用可以使用 00000 00000作作为为最小最小值值 9999999999作作为为最大最大值值使用使用刚刚好小于好小于5 5位和大于位和大于5 5位的数位的数值值来作来作为边为边界条件界条件空空间间小于空余空小于空余空间间一点一点/大于大于满满空空间间一点一点假如要做假如要做磁磁盘盘的数据存的数据存储储,使用,使用比最小剩余磁比最小剩余磁盘盘空空间间大一点(几大一点(几KBKB)的文件作)的文件作为为最大最大值值的的检验边检验边界条件界条件利用边界值作为测试数据的利用边界值作为测试数据的例子分析例子分析1/41/4本讲稿第二十九页,共一百零三页数值的边界值检验数值的边界值检验分析分析2/42/4项项范范围围或或值值位(位(bitbit)0 0或或1 1字字节节(bytebyte)0-2550-255字(字(wordword)0-650-65、535535(单单字)或字)或0-40-4、294294、967967、295295(双字)(双字)千(千(K K)1 0241 024兆(兆(M M)1 048 5761 048 576吉(吉(G G)1 073 741 8241 073 741 824太(太(T T)1 099 511 627 7761 099 511 627 776表计算机数值运算的范围表计算机数值运算的范围 计算机是基于二进制进行工作的,因此,计算机是基于二进制进行工作的,因此,任何数值运算任何数值运算都有一定的范围限制。都有一定的范围限制。本讲稿第三十页,共一百零三页字符的边界值检验字符的边界值检验分析分析3/43/4字符字符ASCIIASCII码值码值字符字符ASCIIASCII码值码值空(空(nullnull)0 0A A6565空格(空格(spacespace)3232a a9797斜杠(斜杠(/)4747左中括号(左中括号()91910 04848Z Z122122冒号(:)冒号(:)5858Z Z9090 6464单单引号(引号()9696字符的ASCII码对应表 在字符的编码方式中,在字符的编码方式中,ASCII和和Unicode是比较常见的编是比较常见的编码方式,表中列出了一些简单的码方式,表中列出了一些简单的ASCII码对应表。码对应表。本讲稿第三十一页,共一百零三页其他边界值检验其他边界值检验-分析分析4/44/4 包括:包括:默认值默认值/空值空值/空格空格/未输入值未输入值/零;零;无效数据无效数据/不正确数据;不正确数据;干扰数据;干扰数据;在实际的测试用例设计中:在实际的测试用例设计中:需要将基本的软件设计要求和程序定义的要求结合需要将基本的软件设计要求和程序定义的要求结合起来,起来,即:结合即:结合基本边界值条件基本边界值条件和和子边界值条件子边界值条件来设计有来设计有效的测试用例。效的测试用例。本讲稿第三十二页,共一百零三页2边界值分析测试边界值分析测试设有两个变量设有两个变量x1和和x2的程序的程序P。假设输入变量。假设输入变量x1和和x2在下列范围在下列范围内取值内取值:ax1b,cx2d边界值分析边界值分析利用输入变量:利用输入变量:最小值(最小值(min),),稍大于最小值稍大于最小值(min+),域内任意值(域内任意值(nom),),稍小于最大值稍小于最大值(max-),最大值最大值(max)来设计测试用例。来设计测试用例。2.3.1 2.3.1 边边界界值值分析法的原理分析法的原理本讲稿第三十三页,共一百零三页 对于一个对于一个n变量的程序,边界值分析测试会产生变量的程序,边界值分析测试会产生4n+1个测试个测试用例。用例。2.3.1 2.3.1 边边界界值值分析法的原理分析法的原理本讲稿第三十四页,共一百零三页3.健壮性边界值测试健壮性边界值测试健壮性测试是边界值分析的一种扩展。健壮性测试是边界值分析的一种扩展。变量除了取变量除了取min,min,nom,max,max五个边界值外,五个边界值外,还要考虑采用:还要考虑采用:一个略超过最大值(一个略超过最大值(max+)一个略小于最小值一个略小于最小值(min-)的取值,的取值,看看超过极限值时系统会出现什么情况。看看超过极限值时系统会出现什么情况。2.3.1 2.3.1 边边界界值值分析法的原理分析法的原理本讲稿第三十五页,共一百零三页对于一个对于一个n变量的程序,变量的程序,健壮性边界值测试将产生健壮性边界值测试将产生6n+1个测试用个测试用例例.健壮性测试最有意义的部分不是输人,而是预期的输出,观察例健壮性测试最有意义的部分不是输人,而是预期的输出,观察例外情况如何处理。外情况如何处理。2.3.1 2.3.1 边边界界值值分析法的原理分析法的原理本讲稿第三十六页,共一百零三页 例例1.三角形问题的边界值分析测试用例设计:三角形问题的边界值分析测试用例设计:假设,输入在假设,输入在1100之间取值,则边长下界为之间取值,则边长下界为1,上界为,上界为100.2.3.22.3.2边边界界值值分析法的分析法的测试测试运用运用分析:分析:边界值分析要求边界值分析要求输入变量:输入变量:最小值(最小值(min),),稍大于最小值稍大于最小值(min+),域内任意值(域内任意值(nom),),稍小于最大值稍小于最大值(max-),最大值最大值(max)来设计测试用例。来设计测试用例。本讲稿第三十七页,共一百零三页输入在输入在1100之间取值,则边长下界为之间取值,则边长下界为1,上界为,上界为100.边界值分析测试用例边界值分析测试用例测试用例测试用例a ab bc c预期输出预期输出Test1Test1Test2Test2Test3Test3Test4Test4Test5Test560606060606050505050606060606060505050501 12 260609999100100等腰三角形等腰三角形等腰三角形等腰三角形等边三角形等边三角形等腰三角形等腰三角形非三角形非三角形Test6Test6Test7Test7Test8Test8Test9Test960606060505050501 12 299991001006060606050505050等腰三角形等腰三角形等腰三角形等腰三角形等腰三角形等腰三角形非三角形非三角形Test10Test10Test11Test11Test12Test12Test13Test131 12 2999910010060606060505050506060606050505050等腰三角形等腰三角形等腰三角形等腰三角形等腰三角形等腰三角形非三角形非三角形2.3.22.3.2边边界界值值分析法的分析法的测试测试运用运用本讲稿第三十八页,共一百零三页 例例2:某程序要求输入三个整数:某程序要求输入三个整数x、y、z,分别作为长方体的长、,分别作为长方体的长、宽、高,宽、高,x、y、z的取值范围在的取值范围在220之间,计算长方体的体积。之间,计算长方体的体积。要求:给出要求:给出健壮性边界值分析测试用例健壮性边界值分析测试用例。分析:分析:要求要求变量除了取变量除了取min,min,nom,max,max五个五个边界值外,还要边界值外,还要考虑:考虑:一个略超过最大值(一个略超过最大值(max+)一个略小于最小值一个略小于最小值(min-)的取值,看看超过极限值时系统会出现什么情况。的取值,看看超过极限值时系统会出现什么情况。2.3.22.3.2边边界界值值分析法的分析法的测试测试运用运用本讲稿第三十九页,共一百零三页测试测试用例用例xyz预预期期输输出出TC111010 x值值超出范超出范围围TC221010200TC331010300TC41010101000TC51910101900TC62010102000TC7211010 x值值超出范超出范围围TC810110y值值超出范超出范围围TC910210200TC1010310300TC111019101900TC121020102000TC13102110y值值超出范超出范围围TC1410101z值值超出范超出范围围TC1510102200TC1610103300TC171010191900TC181010202000TC19101021z值值超出范超出范围围健壮性边界值分析健壮性边界值分析测试用例测试用例本讲稿第四十页,共一百零三页例例3:加法器边界值测试用例设计。:加法器边界值测试用例设计。加法器程序计算两个加法器程序计算两个1100之间整数的和。之间整数的和。分析:分析:对于加法器程序,根据输入要求可将输入空间划分为三个等对于加法器程序,根据输入要求可将输入空间划分为三个等价类:价类:1个有效等价类(个有效等价类(1100之间)之间)2个无效等价类(个无效等价类(100)但这种等价类划分不是很完善,只考虑了输入数据的取值范围,而但这种等价类划分不是很完善,只考虑了输入数据的取值范围,而没有考虑输入数据的类型,我们认为输入应为整数,但用户输入什么没有考虑输入数据的类型,我们认为输入应为整数,但用户输入什么都有可能。都有可能。2.3.22.3.2边边界界值值分析法的分析法的测试测试运用运用本讲稿第四十一页,共一百零三页 为此,综合考虑输入数据的取值范围和类型划分等价类,其结为此,综合考虑输入数据的取值范围和类型划分等价类,其结果如下表所示。果如下表所示。加法器等价类加法器等价类编号编号输入条件输入条件所属类别所属类别编号编号输入条件输入条件所属类别所属类别1 11 1100之间整数之间整数有效等价类有效等价类5 5非数值(字母)非数值(字母)无效等价类无效等价类2 21100100整数整数无效等价类无效等价类7 7非数值(空格)非数值(空格)无效等价类无效等价类4 4小数小数无效等价类无效等价类8 8非数值(空白)非数值(空白)无效等价类无效等价类2.3.22.3.2边边界界值值分析法的分析法的测试测试运用运用本讲稿第四十二页,共一百零三页 加法器边界测试用例(共加法器边界测试用例(共22个)个)测试用例测试用例输入数据输入数据预期输出预期输出加数加数1加数加数2和和Test1Test11 150505151Test2Test22 250505252Test3Test399995050149149Test4Test41001005050150150Test5Test550501 15151Test6Test650502 25252Test7Test750509999149149Test8Test85050100100150150Test9Test90 05050提示提示“请输入请输入1100间的整数间的整数”Test10Test1050500 0提示提示“请输入请输入1100间的整数间的整数”Test11Test111011015050提示提示“请输入请输入1100间的整数间的整数”Test12Test125050101101提示提示“请输入请输入1100间的整数间的整数”Test13Test130.20.25050提示提示“请输入请输入1100间的整数间的整数”2.3.22.3.2边边界界值值分析法的分析法的测试测试运用运用本讲稿第四十三页,共一百零三页 2.3.22.3.2边界值分析法的测试运用边界值分析法的测试运用 加法器边界测试用例测试用例测试用例输入数据输入数据预期输出预期输出加数加数1加数加数2和和Test14Test1450500.20.2提示提示“请输入请输入1100间的整数间的整数”Test15Test15A A5050提提示示“请请输输入入1100间间的的整整数数”Test16Test165050A A提提示示“请请输输入入1100间间的的整整数数”Test17Test17 5050提提示示“请请输输入入1100间间的的整整数数”Test18Test185050 提提示示“请请输输入入1100间间的的整整数数”Test19Test19空格空格5050提提示示“请请输输入入1100间间的的整整数数”Test20Test205050空格空格提提示示“请请输输入入1100间间的的整整数数”Test21Test215050提提示示“请请输输入入1100间间的的整整数数”Test22Test225050提提示示“请请输输入入1100间间的的整整数数”本讲稿第四十四页,共一百零三页课堂练习课堂练习 根据你对根据你对ATM的理解,描述自动取款机的功能,分别给的理解,描述自动取款机的功能,分别给出等价类和边界值测试的测试用例的设计。出等价类和边界值测试的测试用例的设计。要求:要求:首先给出分析,然后再给出测试用例。首先给出分析,然后再给出测试用例。(1)登录过程的测试;)登录过程的测试;(2)取款过程的测试。取款过程的测试。测试银行提款机上的提款功能,要求用户输入的提款金测试银行提款机上的提款功能,要求用户输入的提款金额的有效数值是额的有效数值是50-1500,并以,并以50为最小单位(即取款金额为最小单位(即取款金额为为50的倍数)。试用等价类划分法和边界值分析法设计测试的倍数)。试用等价类划分法和边界值分析法设计测试用例用例本讲稿第四十五页,共一百零三页1 1、给出、给出ATMATM机的基本事件流机的基本事件流有有6个基本的事件流:个基本的事件流:1)用户向)用户向ATM机种插入银行卡,如果银行卡是合法的,机种插入银行卡,如果银行卡是合法的,ATM界面提示用户输入密码。界面提示用户输入密码。密码要求:字符串类型,字符为密码要求:字符串类型,字符为09之间的数字组合,密码长度为之间的数字组合,密码长度为6位。位。2)用户输入该银行卡的密码,)用户输入该银行卡的密码,ATM机检查密码的正确性,如果正