《第3章(2)黑盒测试方法2-边界值分析法.ppt》由会员分享,可在线阅读,更多相关《第3章(2)黑盒测试方法2-边界值分析法.ppt(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件测试第3章 黑盒测试方法 边界值分析法目 录复习复习1边界值分析法概要边界值分析法概要23边界值分析法的思想边界值分析法的思想4边界值分析法设计测试用例边界值分析法设计测试用例5为什么使用边界值分析法为什么使用边界值分析法第一部分:复习第一部分:复习等价类划分法弱一般等价类测试强一般等价类测试弱健壮等价类测试强健壮等价类测试划分法划分法特点特点弱一般等价类测试弱一般等价类测试不考虑无效等价类,选取的测试用例只需覆盖到有效等不考虑无效等价类,选取的测试用例只需覆盖到有效等不考虑无效等价类,选取的测试用例只需覆盖到有效等不考虑无效等价类,选取的测试用例只需覆盖到有效等价类。价类。价类。价类。强
2、一般等价类测试强一般等价类测试不考虑无效等价类,选取测试用例时,要根据等价类笛不考虑无效等价类,选取测试用例时,要根据等价类笛不考虑无效等价类,选取测试用例时,要根据等价类笛不考虑无效等价类,选取测试用例时,要根据等价类笛卡儿积,各有效区间的组合都要覆盖到卡儿积,各有效区间的组合都要覆盖到卡儿积,各有效区间的组合都要覆盖到卡儿积,各有效区间的组合都要覆盖到弱健壮等价类测试弱健壮等价类测试基于单缺陷假设,考虑无效等价类,选取的测试用例要基于单缺陷假设,考虑无效等价类,选取的测试用例要基于单缺陷假设,考虑无效等价类,选取的测试用例要基于单缺陷假设,考虑无效等价类,选取的测试用例要覆盖每一个有效等价
3、类和无效等价类,但时不能同时覆覆盖每一个有效等价类和无效等价类,但时不能同时覆覆盖每一个有效等价类和无效等价类,但时不能同时覆覆盖每一个有效等价类和无效等价类,但时不能同时覆盖两个无效等价类。盖两个无效等价类。盖两个无效等价类。盖两个无效等价类。强健壮等价类测试强健壮等价类测试每个无效等价类和有效等价类的组合都要覆盖到,考虑每个无效等价类和有效等价类的组合都要覆盖到,考虑每个无效等价类和有效等价类的组合都要覆盖到,考虑每个无效等价类和有效等价类的组合都要覆盖到,考虑所有的有效和无效情况。所有的有效和无效情况。所有的有效和无效情况。所有的有效和无效情况。边界值分析法概要n边界值分析法就是边界值分
4、析法就是 对输入或输出的边界值进行测试的一种黑盒测试对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。其测试用例来自等价类的边界。为什么使用边界值分析法?n无数的测试实践表明,大量的故障往往发生在输入定义域或输出值域无数的测试实践表明,大量的故障往往发生在输入定义域或输出值域的边界上,而不是在其内部。因此,针对各种边界情况设计测试用例,的边界上,而不是在其内部。因此,针对各种边界情况设计测试用例,通常会取得很好的测试效果。通常会取得很好的测试效果。n例
5、如,一个循环条件为例如,一个循环条件为“”时,却错写成时,却错写成“”;计数器发生少计;计数器发生少计数一次。数一次。边界值分析测试的基本思想n故障往往出现在输入变量的边界值附近。例如,故障往往出现在输入变量的边界值附近。例如,一个循环条件为一个循环条件为“”时,却错写成时,却错写成“”;计数;计数器发生少计数一次。器发生少计数一次。n基于可靠性理论中称为基于可靠性理论中称为“单故障单故障”的假设,即有的假设,即有两个或两个以上故障同时出现而导致软件失效的两个或两个以上故障同时出现而导致软件失效的情况很少,也就是说软件失效基本上是由单故障情况很少,也就是说软件失效基本上是由单故障引起的。引起的
6、。怎样用边界值分析法设计测试用例?(1 1)首首先先确确定定边边界界情情况况。通通常常输输入入或或输输出出等等价价类类的的边边界界就就是是应应该该着着重重测测试的边界情况。试的边界情况。(2 2)选选取取正正好好等等于于、刚刚刚刚大大于于或或刚刚刚刚小小于于边边界界的的值值作作为为测测试试数数据据,而而不不是选取等价类中的典型值或任意值。是选取等价类中的典型值或任意值。边界值分析法设计测试用例假设有两个变量假设有两个变量x x和和y y的程序,的程序,x x、y y在下列范围内取值:在下列范围内取值:axbaxbcydcyd区间区间a,ba,b和和c,dc,d是是x x、y y的值域,程序的值
7、域,程序F F的输入定义域图所示,即带阴影的输入定义域图所示,即带阴影矩形中的任何点都是程序矩形中的任何点都是程序F F的有效输入。的有效输入。有两个变量x、y的程序的输入域有两个输入变量的程序F的边界值分析(标准性测试)测试用例:;标准性(一般性)测试对于一个含有对于一个含有n n个变量的程序,保留其中一个变量,让其余的变量取正常值,个变量的程序,保留其中一个变量,让其余的变量取正常值,被保留的变量依次取被保留的变量依次取minmin、min+min+、nomnom、max-max-、maxmax值,对每个变量都重复值,对每个变量都重复进行。这样,对于一个有进行。这样,对于一个有n n个变量
8、的程序,边界值分析测试程序会产生个变量的程序,边界值分析测试程序会产生4n+14n+1个测试用例。个测试用例。练习1:n有二元函数有二元函数f(x,y)f(x,y),其中,其中x1,12x1,12,y1,31y1,31。n则采用边界值分析法设计的测试用例是:则采用边界值分析法设计的测试用例是:n,健壮性测试n边界值分析测试的一种扩展,除了取边界值分析测试的一种扩展,除了取5 5个边界值外,还需要考虑采用个边界值外,还需要考虑采用一个略超过最大值一个略超过最大值(max+)(max+)及略小于最小值及略小于最小值(min-)(min-)的取值,检查超过极的取值,检查超过极限值时系统的情况限值时系
9、统的情况n健壮性测试最有意义的部分不是输入,而是预期的输出健壮性测试最有意义的部分不是输入,而是预期的输出健壮性测试n对于一个含有对于一个含有n n个变量的程序,保留其中一个变量,让其余的变量取个变量的程序,保留其中一个变量,让其余的变量取正常值,被保留的变量依次取正常值,被保留的变量依次取minmin、min+min+、min-,nommin-,nom、max-max-、max,max,max+max+值,对每个变量都重复进行。这样,对于一个有值,对每个变量都重复进行。这样,对于一个有n n个变量的程序,个变量的程序,边界值分析测试程序会产生边界值分析测试程序会产生6n+16n+1个测试用例
10、。个测试用例。有两个输入变量的程序F的边界值分析(弱健壮性测试)测试用例:;练习练习2 2:n有函数有函数f(x,y,z)f(x,y,z),其中,其中x1900,2100 x1900,2100,y1,12y1,12,z1,31z1,31的。请写出该函数采用边界值分析法设的。请写出该函数采用边界值分析法设计的测试用例。计的测试用例。n ,nNextDateNextDate函数包含三个变量函数包含三个变量monthmonth、dayday和和yearyear,函数的输出为输入,函数的输出为输入日期后一天的日期。日期后一天的日期。要求输入变量要求输入变量monthmonth、dayday和和year
11、year均为整数值,并且满均为整数值,并且满足下列条件:足下列条件:n 条件条件1 1 month 121 1 month 12n 条件条件2 1 day 312 1 day 31n 条件条件3 1912 year 20503 1912 year 2050问题:问题:NextDateNextDate函数函数NextDate函数的边界值分析测试用例测试用例测试用例monthmonthdaydayyearyear预期输出预期输出Test1Test1Test2Test2Test3Test3Test4Test4Test5Test5Test6Test6Test7Test76 66 66 66 66 66
12、 66 6151515151515151515151515151519111911191219121913191319751975204920492050205020512051yearyear超出超出1912,20501912,20501912.6.161912.6.161913.6.161913.6.161975.6.161975.6.162049.6.162049.6.162050.6.162050.6.16yearyear超出超出1912,20501912,2050测试用例测试用例monthmonthdaydayyearyear预期输出预期输出Test8Test8Test9Test9T
13、est10Test10Test11Test11Test12Test12Test13Test136 66 66 66 66 66 60 01 12 2303031313232200120012001200120012001200120012001200120012001dayday超出超出1,311,312001.6.22001.6.22001.6.32001.6.32001.7.12001.7.1输入日期超界输入日期超界dayday超出超出1,311,31测试用例测试用例monthmonthdaydayyearyear预期输出预期输出Test14Test14Test15Test15Test16
14、Test16Test17Test17Test18Test18Test19Test191 11 12 2111112121414151515151515151515151515200120012001200120012001200120012001200120012001monthmonth超出超出1,121,122001.1.162001.1.162001.2.162001.2.162001.11.162001.11.162001.12.162001.12.16monthmonth超出超出1,121,12常见的边界值n对对16-bit 16-bit 的整数而言的整数而言 32767 32767
15、 和和 -32768-32768 是边界是边界n屏幕上光标在最左上、最右下位置屏幕上光标在最左上、最右下位置n报表的第一行和最后一行报表的第一行和最后一行n数组元素的第一个和最后一个数组元素的第一个和最后一个n循环的第循环的第 0 0 次、第次、第 1 1 次和倒数第次和倒数第 2 2 次、最后一次次、最后一次边界值分析法的原则n1)1)如果输入条件规定了值的范围如果输入条件规定了值的范围,则应取刚达到这则应取刚达到这个范围的边界的值个范围的边界的值,以及刚刚超越这个范围边界的以及刚刚超越这个范围边界的值作为测试输入数据。值作为测试输入数据。n 例如,如果程序的规格说明中规定:例如,如果程序的
16、规格说明中规定:重量在重量在1010公公斤至斤至5050公斤范围内的邮件,其邮费计算公式为公斤范围内的邮件,其邮费计算公式为。作为测试用例,我们应取。作为测试用例,我们应取1010及及5050,还应取,还应取10.01,49.99,9.9910.01,49.99,9.99及及50.0150.01等等。边界值分析法的原则n2)2)如果输入条件规定了值的个数如果输入条件规定了值的个数,则用最大个数则用最大个数,最小个数最小个数,比最小个比最小个数少一数少一,比最大个数多一的数作为测试数据。比最大个数多一的数作为测试数据。n比如,一个输入文件应包括比如,一个输入文件应包括12551255个记录,则测
17、试用例可取个记录,则测试用例可取1 1和和255255,还应取还应取0 0及及256256等。等。边界值分析法的原则n3)3)将规则将规则1 1)和)和2 2)应用于输出条件,即设计测试)应用于输出条件,即设计测试用例使输出值达到边界值及其左右的值。用例使输出值达到边界值及其左右的值。n例如,某程序的规格说明要求计算出例如,某程序的规格说明要求计算出 每月保险金每月保险金扣除额为扣除额为0 0至至1165.251165.25元元,其测试用例可取,其测试用例可取0.000.00及及1165.241165.24、还可取一、还可取一0.010.01及及116511652626等。等。再如一程序属于情
18、报检索系统,要求每次再如一程序属于情报检索系统,要求每次 最最少显示少显示1 1条、最多显示条、最多显示4 4条情报摘要条情报摘要,这时我们应,这时我们应考虑的测试用例包括考虑的测试用例包括1 1和和4 4,还应包括,还应包括0 0和和5 5等。等。边界值分析法的原则4)4)如果程序的规格说明给出的输入域或输出域是有序集合如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集则应选取集合的第一个元素和最后一个元素作为测试用例。合的第一个元素和最后一个元素作为测试用例。5)5)如果程序中使用了一个内部数据结构如果程序中使用了一个内部数据结构,则应当选择这个内部数据结则应当选择这个内部数据结
19、构的边界上的值作为测试用例。构的边界上的值作为测试用例。6)6)分析规格说明分析规格说明,找出其它可能的边界条件。找出其它可能的边界条件。3、最坏情况测试n边界值分析采用可靠性理论中的单缺边界值分析采用可靠性理论中的单缺陷假设,如果不考虑这种假设,那么,陷假设,如果不考虑这种假设,那么,应该关心当多个变量取极值时会出现应该关心当多个变量取极值时会出现什么情况。什么情况。最坏情况测试n使用这种思想生成最坏情况的测试用使用这种思想生成最坏情况的测试用例,例,首先对每个变量进行包含最小值首先对每个变量进行包含最小值minmin,略高于最小值,略高于最小值min+min+,正常值,正常值nomnom,
20、略,略低于最大值低于最大值max-max-和最大值和最大值maxmax五个元素五个元素集合的测试,集合的测试,然后对这些集合进行笛卡儿积计算,然后对这些集合进行笛卡儿积计算,以生成测试用例。以生成测试用例。最坏情况测试adcbx1x2最坏情况测试n最坏情况测试比边界值分析测试以及最坏情况测试比边界值分析测试以及健壮性测试要彻底,边界值分析测试健壮性测试要彻底,边界值分析测试用例是最坏情况测试用例的真子集。用例是最坏情况测试用例的真子集。nN N变量函数的最坏情况测试,会产生变量函数的最坏情况测试,会产生5 5n n个测试用例,而边界值分析只产生个测试用例,而边界值分析只产生4n+14n+1个测
21、试用例个测试用例健壮最坏情况测试首先对每个变量进行包含略小于最首先对每个变量进行包含略小于最小值小值min-min-,最小值,最小值minmin,略高于最,略高于最小值小值min+min+,正常值,正常值nomnom,略低于最,略低于最大值大值max-,max-,最大值最大值max,max,和略大于最和略大于最大值大值max+,max+,七个元素集合的测试,七个元素集合的测试,然后对这些集合进行笛卡儿积计然后对这些集合进行笛卡儿积计算,以生成测试用例。算,以生成测试用例。健壮最坏情况测试adcbx1x2习题:n找零钱最佳组合找零钱最佳组合n 假设商店货品价格假设商店货品价格(R)(R)都不大于都不大于100100元元(且为整数),若顾客付款(且为整数),若顾客付款(P)(P)在在100100元内,现有元内,现有一个程序能在每位顾客付款后给出找零钱的最佳一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。组合(找给顾客货币张数最少)。假定此商店的假定此商店的货币面值只包括:货币面值只包括:5050元元(N50)(N50)、1010元元(N10)(N10)、5 5元元(N5)(N5)、1 1元元(N1)(N1)四种。四种。n 请结合等价类划分法和边界值分析法请结合等价类划分法和边界值分析法为上述程序设计为上述程序设计 出相应的测试用例。出相应的测试用例。