资源描述
黑盒黑盒测试方法方法精品基本概念黑盒测试被称为功能测试或数据驱动测试。在测试时,把被测程序视为一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下进行。采用黑盒测试的目的主要是在已知软件产品所应具有的功能的基础上,进行:(1)检查程序功能能否按需求规格说明书的规定正常使用,测试各个功能是否有遗漏,检测性能等特性要求是否满足。(2)检测人机交互是否错误,检测数据结构或外部数据库访问是否错误,程序是否能适当地接收输入数据而产生正确的输出结果,并保持外部信息(如数据库或文件)的完整性。(3)检测程序初始化和终止方面的错误。精品常用黑盒测试方法等价类划分法边界值分析法因果图法决策表法错误推测法精品等价等价类划分法划分法精品等价类划分法举例:设计这样的测试用例,来实现一个对所有实数进行开平方运算(y=sqrt(x))的程序的测试。等价类划分法是把所有可能的输入数据,即程序的输入域划分为若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。依据(假定):测试某等价类的代表值就是等效于对于这一类其它值的测试。精品等价类划分原则完备性和无冗余性有效等价类和无效等价类划分依据按照区间划分 举例:0,100按照数值划分 举例:1,3,5,7,9按照数值集合划分按照限制条件或规则划分细分等价类精品等价类划分法的测试用例设计首先为每一个等价类规定一个唯一编号设计一个新的测试用例,使它能够尽量覆盖还没有覆盖的有效等价类。重复上述步骤,直至所有的有效等价类都被测试用例覆盖。设计一个新的测试用例,使它仅覆盖一个还没有覆盖的无效等价类。重复上述步骤,直至所有的无效等价类都被测试用例覆盖。精品等价类划分应用实例例1 1 保保险公司公司计算保算保费费率的程序率的程序 某保险公司的人寿保险的保费计算方式为:投保额保险费率 其中,保险费率依点数不同而有别,10点及10点以上保险费率为0.6%,10点以下保险费率为0.1%;而点数又是由 投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如下:年龄 性别婚姻抚养人数 2039 4059 其它 M F 已婚 未婚 1人扣0.5点 最多扣3点(四舍五入取整)6点 4点 2点 5点 3点 3点 5点精品实例1等价类表输入条件入条件有效等价有效等价类编号号无效等价无效等价类编号号年年龄2039岁14059岁2119岁6099岁3小于小于112大于大于9913性性别非英文字符非英文字符14非非单个英文字符个英文字符15M5除除M和和F之外的之外的其它其它单个字符个字符16F6婚姻婚姻已婚已婚7除除已婚已婚和和未婚未婚之外的其它字符之外的其它字符17未婚未婚8抚养人数养人数空白空白9除空白和数字之外除空白和数字之外的其它字符的其它字符1816人人10小于小于11969人人11大于大于920精品实例1测试 用例测试用例用例编号号输入数据入数据预期期输出出覆盖等价覆盖等价类年年龄性性别婚姻婚姻抚养人数养人数保保险费率率127F未婚未婚空白空白0.6%1,6,8,9250M已婚已婚20.6%2,5,7,10370F已婚已婚70.1%3,1140M未婚未婚空白空白无法推算无法推算125100F已婚已婚3无法推算无法推算13699男男已婚已婚4无法推算无法推算1471Child未婚未婚空白空白无法推算无法推算15845N已婚已婚5无法推算无法推算16938F离婚离婚1无法推算无法推算171062M已婚已婚没有没有无法推算无法推算181118F未婚未婚0无法推算无法推算191240M未婚未婚10无法推算无法推算20精品等价类划分应用(续)实例例2 2 三角形三角形问题输入三个整数a、b、c,分别作为三角形的三条边,现通过程序判断由三条边构成的三角形的类型为等边三角形、等腰三角形、一般三角形(特殊的还有直角三角形),以及构不成三角形。现在要求输入三个整数a、b、c,必须满足以下条件:条件1 1a100 条件4 ab+c 条件2 1b100 条件5 ba+c 条件3 1c100 条件6 ca+b 如果输入值a、b、c不满足条件1、条件2和条件3,程序给出“边的取值超出允许范围”的信息。如果输入值a、b、c 满足条件1、条件2和条件3,则输出下列四种情况之一:(1)如果不满足条件4、条件5和条件6中的一个,则程序输出为“非三角形”。(2)如果三条边相等,则程序输出为“等边三角形”。(3)如果恰好有两条边相等,则程序输出为“等腰三角形”。(4)如果三条边都不相等,则程序输出为“一般三角形”。精品实例2等价类表输入条件入条件有效等价有效等价类编号号无效等价无效等价类编号号边a1a1001a10010a=b+c11边c1b1003b10013b=a+c14边c1c1005c10016c=a+b17a=b7b=c8精品实例2测试 用例测试用例用例编号号输入数据入数据预期期输出出覆盖等价覆盖等价类边a边b边c三角形三角形类型型1346一般三角形一般三角形1,2,3,4,5,62101015等腰三角形等腰三角形73181818等等边三角形三角形7,84311411非三角形非三角形115164322非三角形非三角形1467820非三角形非三角形17701020边取取值超出超出范范围98101591091107121014101231311162601512341110116精品课后作业NextDate函数 NextDate函数说明另一种复杂的关系,即输入变量之间逻辑关系的复杂性。NextDate函数包含三个变量month、day和year,函数的输出为输入日期后一天的日期。要求输入变量month、day和year均为整数值,并且满足下列条件:条件1 1 month 12 条件2 1 day 31 条件3 1912 year 2050请使用等价类划分法为NextDate函数列出输入域等价类表,并设计相应的测试用例。(作业用Excel文档格式)精品边界界值分析法分析法精品边界值分析法边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。为什么使用边界值分析法?无数的测试实践表明,大量的故障往往发生在输入定义域或输出值域的边界上,而不是在其内部。因此,针对各种边界情况设计测试用例,通常会取得很好的测试效果。怎样用边界值分析法设计测试用例?(1)首先确定边界情况。通常输入或输出等价类的边界就是应该着重测试的边界情况。(2)选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值。精品常见的边界值对16-bit 的整数而言 32767 和-32768 是边界屏幕上光标在最左上、最右下位置报表的第一行和最后一行数组元素的第一个和最后一个循环的第 0 次、第 1 次和倒数第 2 次、最后一次精品选取测试用例的原则(1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界值以及刚刚超过这个范围边界的值作为测试输入数据。(2)如果输入条件规定了值的个数,则用最大个数、最小个数和比最大个数多1个、比最小个数少1个的数作为测试数据。(3)根据程序规格说明的每个输出条件,使用原则(1)。(4)根据程序规格说明的每个输出条件,使用原则(2)。(5)如果程序的规格说明给出的输入域或输出域是有序集合 (如有序表、顺序文件等),则应选取集合中的第一个和 最后一个元素作为测试用例。(6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。(7)分析程序规格说明,找出其它可能的边界条件。精品边界值分析法测试用例设计边界值分析法利用输入变量的最小值(min)、略大于最小值(min+)、输入值域内的任意值(nom)、略小于最大值(max-)和最大值(max)来设计测试用例。在边界值分析法中获取测试用例的方法:(1)每次保留程序中一个变量,让其余的变量取正常值,被保留的变量依次取min、min+、nom、max-和max。(2)对程序中的每个变量重复(1)。健壮性测试 max+、min-精品边界值分析法应用实例例1 1 三角形三角形问题的的边界界值分析分析测试用例用例 在三角形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。在此,我们将三角形每边边长的取范围值设值为1,100。精品实例1测试用例测试用例用例abc预期期输出出Test 1Test2Test3Test4Test560606050506060605050126099100等腰三角形等腰三角形等腰三角形等腰三角形等等边三角形三角形等腰三角形等腰三角形非三角形非三角形Test6Test7Test8Test960605050129910060605050等腰三角形等腰三角形等腰三角形等腰三角形等腰三角形等腰三角形非三角形非三角形Test10Test11Test12Test1312991006060505060605050等腰三角形等腰三角形等腰三角形等腰三角形等腰三角形等腰三角形非三角形非三角形精品边界值分析法应用实例例2 NextDate2 NextDate函数的函数的边界界值分析分析测试用例用例 在NextDate函数中,隐含规定了变量mouth和变量day的取值范围为1mouth12和1day31,并设定变量year的取值范围为1912year2050。精品实例2测试用例测试用例用例mouth dayyear预期期输出出Test 1Test2Test3Test4Test5Test6Test766666661515151515151519111912191319752049205020511911.6.161912.6.161913.6.161975.6.162049.6.162050.6.162051.6.16Test8Test9Test10Test11Test12Test13666666-112303132200120012001200120012001day超出超出1312001.6.22001.6.32001.7.1输入日期超界入日期超界day超出超出131Test14Test15Test16Test17Test18Test19-112111213151515151515200120012001200120012001Mouth超出超出1122001.1.162001.2.162001.11.162001.12.16Mouth超出超出112精品课后作业找零找零钱最佳最佳组合合 假设商店货品价格(R)都不大于100元(且为整数),若顾客付款(P)在100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。假定此商店的货币面值只包括:50元(N50)、10元(N10)、5元(N5)、1元(N1)四种。请结合等价类划分法和边界值分析法为上述程序设计 出相应的测试用例。(作业用Excel文档格式)精品因果因果图法法精品因果图产生背景 等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。精品四种因果关系c c1 1e e1 1恒等恒等c c1 1e e1 1 非非c c1 1e e1 1或或c c2 2c c3 3c c1 1e e1 1与与c c2 2ci表示输入状态(或称原因),右结点ei表示输出状态(或称结果)。ci 与 ei 取值0或1,0表示某状态不出现,1则表示某状态出现。精品因果图中的约束输入条件之间、输出条件之间的依赖关系称为约束。a ab b异Ea ab b或Ic ca ab b唯一ORa ab b要求Ma ab b强制精品因果图测试用例设计1.分析软件规格说明中哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。2.分析软件规格说明中的语义,找出原因与结果之间、原因与原因之间对应的关系,根据这些关系画出因果图。3.由于语法或环境的限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。4.把因果图转换为决策表。5.根据决策表中的每一列设计测试用例。精品实例例 用因果用因果图法法测试以下程序。以下程序。程序的规格说明要求:输入的第一个字符必须是#或*,第二个字符必须是一个数字,此情况下进行文件的修改;如果第一个字符不是#或*,则给出信息N,如果第二个字符不是数字,则给出信息M。精品测试用例设计(1)分析程序规格说明中的原因和结果:(2)画出因果图(编号为10的中间结点是导出结果的进一步原因):原因结果 c1:第一个字符是#e1:给出信息N c2:第一个字符是*e2:修改文件 c3:第二个字符是一个数字 e3:给出信息Mc1c2c3e110e2e3E精品测试用例设计(续)(3)将因果图转换成如下所示的决策表:12345678条件:条件:C1C2C310111110101110010111010100100000动作:作:e1e2e3不可能不可能测试用例用例#3#A*6*BA1GT精品测试用例设计(续)(4)根据决策表中的每一列设计测试用例:测试用例编号输入数据预期输出1#3修改文件2#A给出信息M3*6修改文件4*B给出信息M5A1给出信息N6GT给出信息N和信息M精品课后作业使用因果图法为三角形问题设计测试用例(仿照课堂实例设计步骤进行)精品决策表法决策表法精品“阅读指南”决策表12345678问题觉得疲倦?得疲倦?YYYYNNNN感感兴趣趣吗?YYNNYYNN糊涂糊涂吗?YNYNYNYN建建议重重读继续跳下一章跳下一章休息休息精品决策表的组成决策表通常由以下4部分组成:条件桩列出问题的所有条件条件项针对条件桩给出的条件列出所有可能的取值动作桩列出问题规定的可能采取的操作动作项指出在条件项的各组取值情况下应采取的动作 条件条件桩动作作桩 条件条件项 动作作项规则将任何一个条件组合的特定取值及相应要执行的动作称为一条规则。在决策表中贯穿条件项和动作项的一列就是一条规则。精品三角形问题的决策表规则1-8规则9规则10规则11规则12规则13规则14规则15规则16条件:条件:c1:a,b,c构成构成 三角形?三角形?c2:a=b?c3:a=c?c4:b=c?N-YYYY YYYN YYNY YYNN YNYY YNYN YNNY YNNN动作:作:a1:非三角形非三角形a2:一般三角形一般三角形a3:等腰三角形等腰三角形a4:等等边三角形三角形a5:不可能不可能 精品错误推测法错误推测法的概念:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。例如:在单元测试时曾列出的许多在模块中常见的错误、以前产品测试中曾经发现的错误等,这些就是经验的总结。还有,输入数据和输出数据为0的情况、输入表格为空格或输入表格只有一行等。这些都是容易发生错误的情况,可选择这些情况下的例子作为测试用例。精品测试方法的选择通常在确定测试策略时,有以下5条参考原则:(1)在任何情况下都必须采用边界值分析法。这种方法设计出的测试用例发现程序错误的能力最强。(2)必要时采用等价类划分法补充测试用例。(3)采用错误推断法再追加测试用例。(4)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖 程度。如果没有达到要求的覆盖标准,则应当再补充更多的测试用例。(5)如果程序的功能说明中含有输入条件的组合情况,则应一开始就选用因果图法。精品课后阅读教材第3章全部内容精品提提问时间精品
展开阅读全文