版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第4 4章章 黑盒测试黑盒测试 本章内容本章内容 4.1 概述 4.2 等价类划分法 4.3 边界值分析法 4.4 决策表法 4.5 因果图法 4.6 场景法 4.1 4.1 概概 述述 黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看做一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,对程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。 【例例4-14-1】 任意输入三角形的三边,判断
2、三角形类型。如图4.1所示,输入三角形的三条边a、b、c,设计测试用例数量。假设在字长为16位的计算机上运行,则每个整数可能的取值为216种,那么a、b、c三条边的各种可能取值的排列组合就有21621621631014种,执行完所有的测试大约需要执行31014次,也就是说,大约需要执行31014次才能做到“穷尽”测试。假设执行1次需耗时1 ms,则执行完所有的测试数据就需1万年。问题描述问题描述 (1).三角形问题 输入三个整数a,b,c,分别作为三角形的三条边,现通过程序判断三条边构成三角形的类型为:一般三角形等边三角形等腰三角形不构成三角形问题描述问题描述现在要求输入的三个整数必须满足以下
3、条件: 条件1: a 0 条件2: b 0 条件3: c 0 条件4: ab+c 条件5: ba+c 条件6: c确定测试用例确定测试用例4.2 4.2 等价类划分法等价类划分法 2 等价类划分的原则(1) 如果输入条件规定了取值范围(闭区间),或值的个数,则可以确立一个有效等价类和两个无效等价类。4.2 4.2 等价类划分法等价类划分法 例如,在程序的规格说明中,对输入条件有一句话: “ 项数可以从1到999 ” 则有效等价类是“1项数999”两个无效等价类是“项数1”或“项数999”。在数轴上表示成: 4.2 4.2 等价类划分法等价类划分法(2) 如果输入条件规定了输入值的集合,或者是规
4、定了“必须如何”的条件,这时可确立一个有效等价类和一个无效等价类。例如,在例如,在PascalPascal语言中对变量标识符规定语言中对变量标识符规定为为“以字母打头的以字母打头的串串”。那么所有以。那么所有以字母打头的构成有效等价类,而不在此集字母打头的构成有效等价类,而不在此集合内(不以字母打头)的归于无效等价类。合内(不以字母打头)的归于无效等价类。4.2 4.2 等价类划分法等价类划分法 (3) (3) 如果输入条件是一个布尔量,则可以如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类。确定一个有效等价类和一个无效等价类。 (4) (4) 如果规定了输入数据的一组值,而
5、且如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理。程序要对每个输入值分别进行处理。这时这时可为可为 每一个输入值确立一个有效等价类,每一个输入值确立一个有效等价类,此外针对这组值确立一个无效等价类,它此外针对这组值确立一个无效等价类,它是所有不允许的输入值的集合。是所有不允许的输入值的集合。4.2 4.2 等价类划分法等价类划分法 例如,在教师上岗方案中规定对教授、副教授、讲师和助教分别计算分数,做相应的处理。因此可以确定4个有效等价类为教授、副教授、讲师和助教,一个无效等价类,它是所有不符合以上身分的人员的输入值的集合。4.2 4.2 等价类划分法等价类划分法 (5) 如果规
6、定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。 如:输入数据是1到100之间的整数4.2 4.2 等价类划分法等价类划分法 3 确定测试用例等价类划分的步骤:先考虑输入数据的数据类型(合法类型和非法类型)再考虑数据范围(合法类型中的合法区间和非法区间)确立了等价类后,建立等价类表,列出所有划分的等价类.4.2 4.2 等价类划分法等价类划分法根据划分的等价类,按以下原则选择测试用例: (1) 为每一个等价类规定一个唯一编号; (2) 设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆
7、盖为止; (3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。举例举例是否三角形的是否三角形的3 3条条边边a0a0b0b0c0c0a+bca+bcb+cab+caa+cba+cb(1)(1)(2)(2)(3)(3)(4)(4)(5)(5)(6)(6)a0a0b0b0c0c0a+b ca+b cb+c ab+c aa+c ba+c b(7)(7)(8)(8)(9)(9)(10)(10)(11)(11)(12)(12)等腰三角形等腰三角形? ?a=b & bca=b & bcb=c & cab=c & cac=a & abc=a & a
8、b(13)(13)(14)(14)(15)(15)ab & ab & bc &bc &caca(16)(16)等边三角形等边三角形? ?a=b a=b &b=c&c=a&b=c&c=a(17)(17)ababbcbccaca(18)(18)(19)(19)(20)(20) 三角形问题的等价类13,4,5(1)-(6)2340,1,21,0,21,2,0(7)(8)(9)5671,2,33,1,21,3,2(10)(11)(12)89103,3,43,4,43,4,3(1)-(6),(13)(1)-(6),(14)(1)-(6),(15)113,4,5(1)-(6),(16)123,3,3(1)
9、-(6),(17)1314153,4,43,4,33,3,4(1)-(6),(14),(18)(1)-(6),(15),(19)(1)-(6),(13),(20)练习练习用例1:桌面系统登录主事件流:当系统提示员工输入员工编号和口令时,用例开始。员工可以扫描卡片再按回车提交员工编号,然后通过键盘输入口令,并回车或点击确认按钮。系统就检查员工的号码和口令员工的号码和口令输入是否合法合法。如果是合法的,系统就显示员工的基本信息和可选操作,然后结束这个用例。可选事件流:如果员工输入了一个不合法的编号或口令,系统就显示错误消息,用户可以选择重新输入或取消,重新输入则回到主事件流,若取消则该用例结束。可
10、选事件流:如果员工员工输入的编号编号已过期过期或被禁用了,系统就显示提示消息,并记录该次登录事件,该用例结束。可选事件流:如果员工连续员工连续3 3次输入次输入不合法,则显示警告并锁定屏幕,进入等待管理员解锁用例。 假定编号范围为编号范围为1001999910019999的整数,口令为长度不小于的整数,口令为长度不小于6 6的的任意字符的组合任意字符的组合工资支付系统等价类测试设计工资支付系统等价类测试设计对编号和口令的判断是基于数据库中员工信息的,假定员工信息表简化如下: BH和KL必须满足的条件:Con1:1001BH9999整数Con2:6length(KL)Con3:BH和KL必须合法
11、(此处合法指数据库中有)Con4:BH必须没有过期Con5:BH和KL非法输入必须小于3次工资支付系统等价类测试设计工资支付系统等价类测试设计测试用例TC1=(“1003”,“softwaretesting”)可以覆盖有效等价类15。工资支付系统等价类测试设计工资支付系统等价类测试设计测试用测试用例标识例标识输入输入BHBH和和KLKL期望的输出期望的输出覆盖等覆盖等价类价类TC2TC21000.31000.3,softwaretestingsoftwaretesting提示提示“请输入请输入1001999910019999之间的整数之间的整数”6 6TC3TC310021002,提示提示“请
12、输入口令请输入口令”8 8TC4TC4,softwaretestingsoftwaretesting提示提示“请输入编号请输入编号”9 9TC5TC5999999,softwaretestingsoftwaretesting提示提示“请输入请输入1001999910019999之间的整数之间的整数”1010TC6TC61000010000,softwaretestingsoftwaretesting提示提示“请输入请输入1001999910019999之间的整数之间的整数”1111TC7TC710031003,abc12abc12提示提示“请输入长度大于等请输入长度大于等于于6 6的口令的口令
13、”1212TC8TC810211021,softwaretestingsoftwaretesting提示提示“无此编号无此编号”1313TC9TC910031003,softwaretestsoftwaretest提示提示“口令错误口令错误”1414TC10TC1010201020,zhaochong2000-01-18zhaochong2000-01-18提示提示“编号已过期编号已过期”15154.3 边界值分析方法 1 概述人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。边界值分析方法 比
14、如,在做三角形计算时,要输入三角形的三个边长:A、B和C。 我们应注意到这三个数值应当满足 A0、B0、C0、 ABC、ACB、BCA,才能构成三角形。但如果把六个不等式中的任何一个大于号“”错写成大于等于号“”,那就不能构成三角形。问题恰出现在容易被疏忽的边界附近。边界值分析方法边界值分析方法也是一种黑盒测试方法测试用例主要来自于等价类的边界.具有发现程序错误的能力.边界值分析方法边界值分析测试的基本原理:故障往往出故障往往出现在输入变量的边界值附近现在输入变量的边界值附近. .使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.边界值分
15、析方法 边界值分析利用输入变量的最小值(min)、略大于最小值(min+)、输入值域内的任意值(nom)、略小于最大值(max-)和最大值(max)来设计测试用例。边界值分析方法 2 边界值分析方法选择测试用例的原则 (1)若输入条件指定为以a和b为边界的范围,则测试用例应该包括a、b、略大于a和略小于b; (2)如果输入条件规定了一个取值范围,那么从范围的边界生成合法测试用并为恰好超出边界的输入值生成非法测试用例。 (3)若输入条件指定为一组值,则测试用例应当执行其中的最大值和最小值,以及略大于最小值和略小于最大值的值。 (4)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少
16、1,比最大个数多1的数创建测试用例。边界值分析方法 (5)指导原则1、2和3也适用于输出条件。例如,工程分析程序要求输出温度和压强的对照表,测试用例应该能够创建表项所允许的最大值和最小值的输出报告; (6)若内部程序数据结构有预定义的边界值(如:数组有100项),要在其边界处测试数据结构。 (7)如果程序的输入或输出是一个有序的集合 (例如顺序文件、线性列表、表格等),那么需要关注集合的第一个和最后一个元素。 边界值分析测试 3 边界值分析测试边界值分析是基于“单缺陷”假设:软件失效基本上是由单缺陷引起的,很少是由两个或者两个以上的故障引起的.在设计测试用例时,通常是使得其中一个变量的值取极值
17、,其余变量的值取正常值.边界值分析测试 假设函数F有两个变量x1,x2,两个变量的取值范围:a x1b, cx2 dabcdx2x1边界值分析测试 基于单缺陷假设,利用输入变量的,来设计测试用例.abcdx2x1边界值分析测试;边界值分析测试 对于一个含有n个变量的程序,只让其中一个变量取极值,让其余的变量取正常值,被保留的变量依次取min、min+、nom、max-、max值,对每个变量都重复进行。这样,对于一个有n个变量的程序,边界值分析测试程序会产生4n+1个测试用例。三角形问题的边界值分析测试用例设计 三角形问题: 要求三角形的三条边a,b,c都在1到100之内Test1Test2Te
18、st3Test4Test560606050506060605050126099100等腰三角形等腰三角形等边三角形等腰三角形不构成三角形 三角形问题的边界值分析测试用例设计Test6Test7Test8Test960605050129910060605050等腰三角形等腰三角形等腰三角形不构成三角形Test10Test11Test12Test1312991006060505060605050等腰三角形等腰三角形等腰三角形不构成三角形三角形NextDate函数的边界值分析测试用例Test1Test2Test3Test4Test5Test6Test7Test8Test9Test10Test11Te
19、st12Test1366666666612111215151515151230311515151519121913197520492050200120012001200120012001200120011912.6.161912.6.161913.6.161913.6.161975.6.161975.6.162049.6.162049.6.162050.6.162050.6.162001.6.22001.6.22001.6.32001.6.32001.7.12001.7.1输入日期超界输入日期超界2001.1.162001.1.162001.2.162001.2.162001.11.16200
20、1.11.162001.12.162001.12.16边界值分析的特点和局限性l对于一个对于一个n n变量函数,边界值分析会产生变量函数,边界值分析会产生4n4n1 1个测试用例。个测试用例。l边界值的取值取决于变量本身的性质。边界值的取值取决于变量本身的性质。l边界值分析对布尔变量没有什么意义。边界值分析对布尔变量没有什么意义。l边界值分析假设变量是完全独立的。边界值分析假设变量是完全独立的。 4 边界值分析的边界值分析的扩展除了考虑5个边界值外,还需要考虑采用一个略超过最大值max+以及略小于最小值min-的取值。即:abcdx2x1 健壮性测试的主要价值是:观察例外处理情况。三角形问题的
21、健壮性测试用例设计 考虑 max+,max,max-,nom,min+, min, min-。nNextDate函数的健壮性测试用例设计Test1Test1Test2Test2Test3Test3Test4Test4Test5Test5Test6Test6Test7Test7Test8Test8Test9Test9Test10Test10Test11Test11Test12Test12Test13Test136 66 66 66 66 66 66 66 66 66 66 66 66 61515151515151515151515151515-1-11 12 230303131323219111
22、911191219121913191319751975204920492050205020512051200120012001200120012001200120012001200120012001yearyear超出超出1912.6.161912.6.161913.6.161913.6.161975.6.161975.6.162049.6.162049.6.162050.6.162050.6.16yearyear超出超出dayday超出超出2001.6.22001.6.22001.6.32001.6.32001.7.12001.7.1输入日期超界输入日期超界dayday超出超出NextDat
23、e函数的健壮性测试用例设计Test14Test15Test16Test17Test18Test19-112111213151515151515200120012001200120012001monthmonth超出超出2001.1.162001.1.162001.2.162001.2.162001.11.162001.11.162001.12.162001.12.16monthmonth超出超出最坏情况测试 5 最坏情况测试 边界值分析采用可靠性理论中的单缺陷假设,如果不考虑这种假设,那么,应该关心当多个变量取极值时会出现什么情况。最坏情况测试 使用这种思想生成最坏情况的测试用例, 首先对每个
24、变量进行包含最小值min,略高于最小值min+,正常值nom,略低于最大值max-和最大值max五个元素集合的测试, 然后对这些集合进行笛卡儿积计算,以生成测试用例。最坏情况测试adcbx1x2最坏情况测试 最坏情况测试比边界值分析测试以及健壮性测试要彻底,边界值分析测试用例是最坏情况测试用例的真子集。 N变量函数的最坏情况测试,会产生5n个测试用例,而边界值分析只产生4n+1个测试用例健壮最坏情况测试 首先对每个变量进行包含略小于最小值min-,最小值min,略高于最小值min+,正常值nom,略低于最大值max-,最大值max,和略大于最大值max+,七个元素集合的测试, 然后对这些集合进
25、行笛卡儿积计算,以生成测试用例。健壮最坏情况测试adcbx1x2工资支付系统边界值测试设计 Con1和Con2是带有明显的边界条件的 变量变量minmin+nommax-maxmax+min-BH10011002120099989999100001000Length(KL)67125BH和KL必须满足的条件:Con1:1001BH9999整数Con2:6length(KL)Con3:BH和KL必须合法Con4:BH必须没有过期Con5:BH和KL非法输入必须小于3次工资支付系统边界值测试设计 测试用例标识测试用例标识BHBHKLKL预期输出预期输出TC11200Abc123提示“口令错误”TC
26、21200Abc1234提示“口令错误”TC31200softwaretest提示“口令错误”TC41001softwaretest提示“无此编号”TC51002softwaretest提示“口令错误”TC69998softwaretest提示“无此编号”TC79999softwaretest提示“无此编号”边界值分析测试用例:边界值分析测试用例:测试用例标识测试用例标识BHBHKLKL预期输出预期输出TC11200Abc123提示“口令错误”TC21200Abc1234提示“口令错误”TC31200softwaretest提示“口令错误”TC41001softwaretest提示“无此编号”
27、TC51002softwaretest提示“口令错误”TC69998softwaretest提示“无此编号”TC79999softwaretest提示“无此编号”TC81200Abc12提示“请输入长度大于等于6的口令”TC91000softwaretest提示“请输入1001-9999之间的整数”TC1010000softwaretest提示“请输入1001-9999之间的整数”健壮边界值分析测试用例健壮边界值分析测试用例4.4 决策表法 1 概述 在一个程序中,如果输入输出比较多,输入之在一个程序中,如果输入输出比较多,输入之间、输出之间相互制约的条件比较多,在这种间、输出之间相互制约的条
28、件比较多,在这种情况下使用决策表更合适,它可以清楚地表达情况下使用决策表更合适,它可以清楚地表达它们之间的各种复杂关系。它们之间的各种复杂关系。 决策表法是黑盒测试方法中最为严格、最具有决策表法是黑盒测试方法中最为严格、最具有逻辑性的测试方法逻辑性的测试方法4.4 决策表法 2 决策表:4.4 决策表法 决策表通常由四部分组成:条件桩动作桩条件项动作项规则 条件桩条件桩: : 列出问题的所有条件列出问题的所有条件 条件项:针对条件桩给出的条件列出所有条件项:针对条件桩给出的条件列出所有可能的取值可能的取值 动作桩:给出问题规定的可能采取的操作动作桩:给出问题规定的可能采取的操作 动作项:与条件
29、项紧密相关,指出在条件动作项:与条件项紧密相关,指出在条件项的各组取值情况下应采取的动作项的各组取值情况下应采取的动作 项中的每一列是一条项中的每一列是一条 规则规则4.4 决策表法规则指示在规则的条件部分中指示的条件环境下要采取什么行动.在上图的决策表中,如果条件1条件2为真,而条件3条件4为假,那么采取行动3.规则1中的条件1.2.3称为“不关心”条目.不关心条目解释有两种:条件无关或条件不适用.3 决策表的化简有n个条件的决策表,对应的规则将有2n条,当n非常大的时候,这是非常繁琐的。因此,应对决策表进行化简.决策表的化简包括两个方面: (1)合并如果一个条件项如果一个条件项( (表中某
30、列中的条件值表中某列中的条件值) )和另外一个条件项所和另外一个条件项所产生的动作是相同产生的动作是相同的的, ,且两个条件项对应的每一行的值只有且两个条件项对应的每一行的值只有一个是不同的一个是不同的, ,则可以将其合并则可以将其合并. .合并的合并的项除了不同值变成项除了不同值变成“不关心不关心”条目外条目外, ,其其余不变余不变3 决策表的化简 (2)包含 如果两个条件项的如果两个条件项的动作是相同的动作是相同的, ,对任意条对任意条件件1 1的值和条件的值和条件2 2中对应的值中对应的值, ,如果满足如果满足: : A.A.如果条件如果条件1 1的值是的值是T(F),T(F),则条件则
31、条件2 2中的值也是中的值也是T(F).T(F). B.B.如果条件如果条件1 1的值是的值是-(-(不关心不关心),),则条件则条件2 2中的值中的值是是T(F)-T(F)-称条件称条件1 1包含条件包含条件2 2条件条件2 2可以撤去可以撤去. . 重复重复A,BA,B就可以得到精简的决策表就可以得到精简的决策表. .3 决策表的化简8F-TF3 决策表的化简4.4 决策表法 构造决策表的步骤:(1)确定规则的个数(2)列出所有的条件桩和动作桩(3)填入条件项(4)填入动作项,得到初始的决策表(5)对初始的决策表化简4.4决策表法C1:abcC1:abc能否构成三角形能否构成三角形? ?C
32、2:a=b?C2:a=b?C3:a=c?C3:a=c?C4:b=c?C4:b=c?N N- - - -Y YY YY YY YY YY YY YN NY YY YN NY YY YY YN NN NY YN NY YY YY YN NY YN NY YN NN NY YY YN NN NN NA1:A1:非三角形非三角形A2:A2:一般三角形一般三角形A3:A3:等腰三角形等腰三角形A4:A4:等边三角形等边三角形A5:A5:不可能不可能 4 三角形问题的决策表用例设计该条件可以扩展成:该条件可以扩展成:a+bca+bcb+cab+cac+abc+ab4.4 决策表法C1:ab+c?C1:ab
33、+c?C2:ba+c?C2:ba+c?C3:ca+b?C3:ca+b?C4:a=b?C4:a=b?C5:a=c?C5:a=c?C6:b=c?C6:b=c?N N- - - - - -Y YN N- - - - -Y YY YN N- - - -Y YY YY YY YY YY YY YY YY YY YY YN NY YY YY YY YN NY YY YY YY YY YN NN NY YY YY YN NY YY YY YY YY YN NY YN NY YY YY YN NN NY YY YY YY YN NN NN NA1:A1:非三角形非三角形A2:A2:一般三角形一般三角形A3:A
34、3:等腰三角形等腰三角形A4:A4:等边三角形等边三角形A5:A5:不可能不可能n三角形问题的扩展决策表条件条件:a,b,c:a,b,c是否可以是否可以构成三角形构成三角形根据决策表测试用例编号编号a,b,ca,b,c期望输出期望输出DT1DT2DT3DT4DT5DT6DT7DT8DT9DT10DT114 1 21 4 21 2 45 5 5? ? ? ? ?2 2 3? ? ?2 3 23 2 23 4 5非三角形非三角形非三角形非三角形非三角形非三角形等边三角形等边三角形不可能不可能不可能不可能等腰三角形等腰三角形不可能不可能等腰三角形等腰三角形等腰三角形等腰三角形一般三角形一般三角形Ne
35、xtDate函数的决策表 5 NextDate函数的决策表涉及的操作:na1:不可能na2:day加1na3:day复位na4:month加1na5:month复位na6:year加1 M1:月:月有30天 M2:月:月有31天,12月除外 M3:月:月是12月 M4:月:月是2月 D1: day:1day 27 D2: day:day=28 D3: day:day=29 D4: day:day=30 D5: day:day=31 Y1: year:year是闰年 Y2: year:year不是闰年根据如下等价类: 建立条件:c1:month在Mi中(如M1,M2)c2:day在Di中c3:y
36、ear在Yi中c1: month在c2: day在c3: year在M1D1-M1D2-M1D3-M1D4-M1D5-M2D1-M2D2-M2D3-M2D4-M2D5-M3D1-a1: 不可能a2: day加1a3: day复位a4: month加1a5: month复位a6:year加1c1: month在c2: day在c3: year在M3D2-M3D3-M3D4-M3D4-M4D1-M4D2Y1M4D2Y2M4D3Y1M4D3Y2M4D4-M4D5-a1: 不可能a2: day加1a3: day复位a4: month加1a5: month复位a6:year加1c1: month在c2:
37、 day在c3: year在M1D1D3-M1D4-M1D5-M2D1D4-M2D5-M3D1D4-M3D5-a1: 不可能a2: day加1a3: day复位a4: month加1a5: month复位a6:year加1 化简决策表:c1: month在c2: day在c3: year在M4D1-M4D2Y1M4D2Y2M4D3Y1M4D3Y2M4D4-D5-a1: 不可能a2: day加1a3: day复位a4: month加1a5: month复位a6:year加1 Test1Test3Test4Test5Test6Test9Test10Test1114Test15Test16Test1
38、7Test18Test19Test20Test21228 16 20018 30 20049 31 20011 16 20041 31 200112 16 200412 31 20012 16 20042 28 20042 28 20012 29 20042 29 20012 30 200417/8/200117/8/200131/8/200431/8/2004不可能不可能17/1/200417/1/20041/2/20011/2/200117/12/200417/12/20041/1/20021/1/200217/2/200117/2/200129/2/200429/2/20041/3/20
39、011/3/20011/3/20041/3/2004不可能不可能不可能不可能 根据决策表设计测试用例根据决策表设计测试用例: :4.4 决策表法 6 决策表测试法的适用范围决策表测试法适用于具有以下特征的应用程序:决策表测试法适用于具有以下特征的应用程序:(1)if-then-else逻辑突出(2)输入变量之间存在逻辑关系(3)涉及输入变量子集的计算(4)输入和输出之间存在因果关系(5)很高的圈复杂度4.4 决策表法 适用于使用决策表设计测试用例的情况适用于使用决策表设计测试用例的情况: : (1)规格说明以决策表形式给出,或较容易转换为决策表. (2)条件的排列顺序不会也不应该影响执行的操作
40、 (3)规则的排列顺序不会也不应该影响执行的操作 (4)当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则. (5)如果某一规则的条件要执行多个操作任务,这些操作的执行顺序无关紧要.4.5 4.5 因果图法因果图法 1 概述等价类划分方法和边界值分析方法着重考虑输入条件,而不考虑输入条件的各种组合,也不考虑输入条件之间的相互制约的关系,但有时一些具体问题中的输入之间存在着相互依赖的关系,如:NextDate函数问题。4.5 4.5 因果图法因果图法 如果输入之间有关系,我们在测试时必须考虑输入条件的各种组合,那么可以考虑使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式
41、来设计测试用例,这就需要利用因果图。 因果图方法最终生成的就是决策表。它适合于检查程序输入条件的各种组合情况。4.5 4.5 因果图法因果图法使用因果图法设计测试用例时:(1)首先从的描述中,找出(输入条件)和(输出结果或者程序状态的改变),绘出。(2)然后通过转换为,最后为决策表中的每一列设计一个测试用例.4.5 4.5 因果图法因果图法 2 因果图中出现的基本符号原因原因结果结果n通常在因果图中用Ci表示原因,用Ei表示结果,各结点表示状态,可取值“0”或“1”。“0”表示某状态不出现,“1”表示某状态出现。4.5 4.5 因果图法因果图法 主要的原因和结果之间的关系有主要的原因和结果之间
42、的关系有: :c1e1c1e1c2e1c1c3Vc2e1c1V(a)恒等(b)非(c)或(d)与 恒等: 非: 或: 与: 4.5 4.5 因果图法因果图法 实际问题中,输入状态之间可能存在某些依赖关系,这种依赖关系被称为“约束”. 在因果图中使用特定的符号来表示这些约束关系:4.5 4.5 因果图法因果图法 约束关系说明:约束(异): a,b最多有一个可能为1,不能同时为1.abE异4.5 4.5 因果图法因果图法约束(或): a,b,c中至少有一个必须为1,不能同时为0.acI或b4.5 4.5 因果图法因果图法约束(惟一): a和b必须有一个且仅有一个为1abO唯一4.5 4.5 因果图
43、法因果图法约束(要求):a是1时,b必须是1,即a为1时,b不能为0abR要求4.5 4.5 因果图法因果图法约束:对输出条件的约束,若结果a为1,则结果b必须为0.ab强制M4.5 4.5 因果图法因果图法 3 用因果图生成测试用例的基本步骤(1)(1) 分析软件规格说明描述中,哪些是原因分析软件规格说明描述中,哪些是原因 ( (即输入条件即输入条件或输入条件的等价类或输入条件的等价类) ),哪些是结果,哪些是结果 ( (即输出条件即输出条件) ),并给,并给每个原因和结果赋予一个标识符。每个原因和结果赋予一个标识符。(2)(2) 分析软件规格说明描述中的语义,找出原因与结果之分析软件规格说
44、明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系间,原因与原因之间对应的是什么关系? ? 根据这些关系,根据这些关系,画出因果图。画出因果图。(3) (3) 由于语法或环境限制,有些原因与原因之间,原因与由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。在因果图上用一些记号标明约束或限制条件。(4) (4) 把因果图转换成决策表。把因果图转换成决策表。(5) (5) 把决策表的每一列拿出来作为依据,设计测试用例。把决策表的每一列拿出来作为依据
45、,设计测试用例。什么是因果关系?什么是因果关系? 拿破仑说: 失了一个钉子,坏了一只蹄铁; 坏了一只蹄铁,折了一匹战马; 折了一匹战马,伤了一位骑士; 伤了一位骑士,输了一场战斗; 输了一场战斗,亡了一个帝国。 这就是因果关系应用举例应用举例 某个软件的规格说明书中规定:第一个字符必须是A或B,第二个字符必须是一个数字,在此情况下进行文件的修改,但如果第一个字符不正确,则给出信息L;如果第二个字符不正确,则给出信息M.应用举例应用举例 分析问题,按照如下步骤进行:(1)根据软件规格说明书,列出原因和结果.(2)找出原因和结果之间的关系,原因和原因之间的约束关系,画出因果图.(3)将因果图转化为
46、决策表(4)根据决策表设计测试用例.应用举例应用举例 原因:C1:第一个字符是A;C2:第一个字符是B;C3:第二个字符是一个数字. 中间结果:11:第一个字符是A或B 结果:E1:修改文件;E2:给出信息L;(第一个字符不对给出信息L)E3:给出信息M;(第二个字符不对给出信息M)第一个字符必须是A或B,第二个字符必须是一个数字,在此情况下进行文件的修改,但如果第一个字符不正确,则给出信息L;如果第二个字符不正确,则给出信息M.带有带有E E约束的因果图约束的因果图 C1 C2 C3 11 E2 E1 E3 E将因果图转化为决策表将因果图转化为决策表123456C1C2C3111011100
47、10111010100100000E1E2E3测试用例A3A5AMA&B3B5BMB*C2X6CMD*设计测试用例设计测试用例 测试用例1: 输入数据:A3 预期输出:修改文件 测试用例2: 输入数据:AM 预期输出:给出信息M 测试用例3: 输入数据:B3 预期输出:修改文件 测试用例4: 输入数据:B* 预期输出:给出信息M 测试用例5: 输入数据:C2 预期输出:给出信息L 测试用例6: 输入数据:CM 预期输出:给出信息LM练习题练习题例如,一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下: 若投入5角钱或1元钱的硬币,按下橙汁或啤酒的按钮,则相应的饮料就送出来
48、。若售货机没有零钱找,则一个显示零钱找完的红灯亮,这时在投入1元硬币并按下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示零钱找完的红灯灭,在送出饮料的同时退还5角硬币。”橙汁橙汁啤酒啤酒练习题练习题练习题练习题练习题练习题(2) (2) 画出因果图。画出因果图。所有原因结点列在左边,所有原因结点列在左边,所有结果结点列在右边。所有结果结点列在右边。练习题练习题Test1Test2Test3Test4Test5Test6Test7Test8Test9Test10Test11Test12Test13Test14Test15Test161101011001110001011010101
49、101001001010001010100100101000001100010100100000100000123,2423,2423,2523,25.24242525.21,2221,2221,2221,22212121,2421,2421,2521,25212121212121使用因果图法的优点使用因果图法的优点o考虑了多个输入之间的相互组合、相互制约关考虑了多个输入之间的相互组合、相互制约关系;系;o能够帮助我们按一定步骤,高效率地选择测试能够帮助我们按一定步骤,高效率地选择测试用例,同时还能为我们指出,程序规格说明描用例,同时还能为我们指出,程序规格说明描述中存在着什么问题述中存在着什
50、么问题习题习题某软件的一个模块的需求规格说明书中描述:某软件的一个模块的需求规格说明书中描述:(1 1)年薪制员工:严重过失,扣年终风险金)年薪制员工:严重过失,扣年终风险金的的4%4%;过失,扣年终风险金的;过失,扣年终风险金的2%2%。(2 2)非年薪制员工:严重过失,扣当月薪资)非年薪制员工:严重过失,扣当月薪资的的8%8%;过失,扣当月薪资的;过失,扣当月薪资的4%4%。请绘制出因果图和决策表,并给出相应的测试请绘制出因果图和决策表,并给出相应的测试用例。用例。原因:C1. 年薪制员工 C2. 严重过失中间状态:11. 非年薪制员工 12. 过失结果:E1. 扣年终风险金的4% E2.
51、 扣年终风险金的2% E3. 扣当月薪资的8% E4. 扣当月薪资的4% 因果图因果图决策表决策表测试用例:测试用例1: 输入数据: 年薪制员工,严重过失 预期输出: 扣年终风险金的4% 测试用例2: 输入数据: 年薪制员工,过失 预期输出: 扣年终风险金的2% 测试用例3: 输入数据: 非年薪制员工,严重过失预期输出: 扣当月薪资的8% 测试用例4: 输入数据: 非年薪制员工,过失 预期输出: 扣当月薪资的4% 有一个处理单价为1元5角的盒装饮料的自动售货机软件,若投入1元5角的硬币,按下“可乐”“雪碧”或“红茶”按钮,相应的饮料就会送出来,若投入的是两圆硬币,在送出饮料的同时,退还5角硬币
52、。(1 1)分析原因及结果)分析原因及结果原因原因c1:c1:投入投入1 1元元5 5角硬币;角硬币;c2:c2:投入投入2 2元硬币;元硬币;c3:c3:按按“可乐可乐”按钮;按钮;c4:c4:按按“雪碧雪碧”按钮;按钮;c5:c5:按按“红茶红茶”按钮按钮; ;中间状态中间状态1111:已投币:已投币1212:已按钮:已按钮结果结果e1:e1:退还退还5 5角硬币;角硬币;e2:e2:送出送出“可乐可乐”饮料;饮料;e3:e3:送出送出“雪碧雪碧”饮料;饮料;e4:e4:送出送出“红茶红茶”饮料饮料; ;(2 2)画出因果图)画出因果图(3 3)决策表)决策表1 12 23 34 45 5
53、6 67 78 89 910101111c1:c1:投入投入1 1元元5 5角硬币角硬币c2:c2:投入投入2 2元硬币元硬币c3:c3:按按“可乐可乐”按钮按钮c4:c4:按按“雪碧雪碧”按钮按钮c5:c5:按按“红茶红茶”按钮按钮1 10 01 10 00 01 10 00 01 10 01 10 00 00 01 11 10 00 00 00 00 01 11 10 00 00 01 10 01 10 00 01 10 00 01 10 01 10 00 00 00 00 01 10 00 00 00 00 01 10 00 00 00 00 01 11111:已投币:已投币1212:已
54、按钮:已按钮1 11 11 11 11 11 11 10 01 11 11 11 11 11 11 10 00 01 10 01 10 01 1a1:a1:退还退还5 5角硬币角硬币a2:a2:送出送出“可乐可乐”饮料饮料a3:a3:送出送出“雪碧雪碧”饮料饮料a4:a4:送出送出“红茶红茶”饮料饮料(4 4)设计测试用例)设计测试用例用例用例编号编号测试用例测试用例预期输出预期输出1 1投入投入1 1元元5 5角,按角,按“可乐可乐”送出送出“可乐可乐”饮料饮料2 2投入投入1 1元元5 5角,按角,按“雪碧雪碧”送出送出“雪碧雪碧”饮料饮料3 3投入投入1 1元元5 5角,按角,按“红茶红
55、茶”送出送出“红茶红茶”饮料饮料4 4投入投入2 2元,按元,按“可乐可乐”找找5 5角,送出角,送出“可乐可乐”5 5投入投入2 2元,按元,按“雪碧雪碧”找找5 5角,送出角,送出“雪碧雪碧”6 6投入投入2 2元,按元,按“红茶红茶”找找5 5角,送出角,送出“红茶红茶”4.6 场景法 场景法的思想 场景法的步骤 举例基本原理 现在的软件几乎都是用事件触发来控制流程的,象GUI软件、游戏等。事件触发时的情景并形成了场景,而同一事件不同的触发顺序和处理结果就形成了事件流。这种在软件设计方面的思想可以引入到软件测试中,可以生动地描绘出事件触发时的情景,有利于设计测试用例,同时使测试用例更容易
56、理解和执行。 基本概念 1.基本流基本流 和 备选流备选流 在测试一个软件的时候,在场景法中,测试流程是软件功能按照正确的事件流实现的一条正确流程正确流程,那么我们把这个称为该软件的基本流; 出现故障或缺陷的过程,就用备选流备选流加以标注,这样,备选流就可以是从基本流来的,或是由备选流中引出的。分析 图中经过用例的每条路径都用基本流和备选流来表示,直黑线表示基本流直黑线表示基本流,是经过用例的最简单的路径。备选流用不同的色彩表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中(如备选流1和3);也可能起源于另一个备选流(如备选流2),或者终止用例而不再重新加入到某个流(
57、如备选流2和4)。 场景 场景 1: 基本流 场景 2: 基本流 备选流 1 场景 3: 基本流 备选流 1 备选流 2 场景 4: 基本流 备选流 3 场景 5: 基本流 备选流 3 备选流 1 场景 6: 基本流 备选流 3 备选流 1 备选流 2 场景 7: 基本流 备选流 4 场景 8: 基本流 备选流 3 备选流 4场景法设计测试用例的步骤 根据说明,描述出程序的基本流及各项备选流. 根据基本流和各项备选流生成不同的场景. 对每一个场景生成相应的测试用例. 对生成的所有测试用例重新复审,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值.例题:在线购物系统 在当当网网
58、上书店都订购过书籍,整个订购过程为:用户访问网站,进行书籍的选择,当选好自己心仪的书籍后进行订购,这时把所需图书放进购物车,等进行结帐的时候,用户需要登录自己注册的帐号,登录成功后,进行结帐并生成订单,整个购物过程结束,退出系统。 确定基本流和备选流基本流步骤1:用户到网站,书籍的选择,进行订购,把所需图书放进购物车;步骤2:进行结帐的时候,输入自己的帐号;步骤3:输入密码;步骤4:登录成功后,检查订购图书有库存,生成订单;步骤5:退出系统 备选流1帐号错误备选流2密码错误备选流3无选购书籍备选流x退出系统确定场景场景1-购物成功基本流场景2-帐号错误基本流备选流1场景3-密码错误基本流备选流
59、2场景4-无选购书籍基本流备选流3确定测试用例 对于每一个场景都需要确定测试用例。可以采用矩阵或决策表来确定和管理测试用例。 对于每个测试用例,存在一个测试用例ID、条件(或说明)、测试用例中涉及的所有数据元素(作为输入或已经存在于数据库中)以及预期结果。 测试用例IDID场景场景/ /条件条件帐号帐号 密码密码选购书选购书籍籍预期结果预期结果1场景1:购物成功VVV成功购物2场景2:帐号错误IVn/a提示帐号错误,返回基本流步骤23场景3:密码错误VIn/a提示密码错误,返回基本流步骤34场景4:无选购书籍VVI提示选购书籍,返回基本流步骤5IDID场景场景/ /条件条件帐号帐号密码密码选购
60、书籍选购书籍预期结果预期结果1 1场景场景1 1:购:购物成功物成功xuxu123456123456软件测试艺术软件测试艺术成功购物成功购物2 2场景场景2 2:帐:帐号错误号错误zhouzhou123456123456n/an/a提示帐号错误,返提示帐号错误,返回基本流步骤回基本流步骤2 23 3场景场景3 3:密:密码错误码错误xuxu123$%123$%n/an/a提示密码错误,返提示密码错误,返回基本流步骤回基本流步骤3 34 4场景场景4 4:无:无选购书籍选购书籍xuxu123456123456空空提示选购书籍,返提示选购书籍,返回基本流步骤回基本流步骤5 5例题:加油 使用加油卡
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教版八年级 体育与健康 第五章 气排球正面双手传球(课件)
- 2026年证券从业《证券市场基础知识》模拟测试卷
- 智能化养老服务体系建设的实施方案
- 2026年护士资格《基础护理学》冲刺押题试卷(附答案)
- 适老化社区环境提升设计方案
- 2026年经济专业技术中级民航运输经济综合模拟卷
- 企业经销商业务对接规范
- 绿色建筑材料选用与应用手册
- 2026年云原生环境中密钥存储的备份策略
- 建筑幕墙安装施工方案
- 基础会计教材电子版
- 美丽中国建设十五五规划讲解
- 2026广西柳州市城中区人民法院招录聘用工作人员3人(二)笔试参考题库及答案详解
- 2026年一元二次方程测试题含答案
- 《水利工程智慧感知与测量技术》课件-31.无人机水利应用案例
- D-二聚体升高诊治与管理专家共识
- 2026年山东省春季高考数学试卷(含答案解析)
- 上海市浦东新区2025-2026学年高一上学期期末考试英语试题
- 2026年入党培训考核测试题及答案
- 厂房照明灯具安装施工方案
- AQT3034-2022《化工过程安全管理导则》核心要点解读
评论
0/150
提交评论