版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件测试
技术案例教程
第四章黑盒测试
2主要内容1.黑盒测试概念
2.等价类测试3.边界值分析法4.决策表5.因果图6.正交试验法7.错误推测法8.项目案例34.1黑盒测试概念
黑盒测试(Black-boxTesting)软件输入输出又叫功能测试,数据驱动测试或基于规格说明的测试。44.1黑盒测试概念
黑盒测试的目标黒盒测试试图发现以下类型的错误:功能错误或遗漏;接口错误;接口所使用的数据结构错误;行为或性能错误;初始化和终止错误54.1黑盒测试概念
黑盒测试过程需求说明产生被测程序测试结果输出比较64.1黑盒测试概念
黑盒测试方法黑盒测试的测试方法边界值分析等价类划分基于决策表的测试因果图正交试验错误推测
74.2等价类测试问题引入为保证软件产品的质量,我们需要进行完备的测试;但这是不现实的,因为:输入量太大输出结果太多软件实现途径太多等价类划分法是一种典型的黑盒测试方法,它完全不考虑程序的内部结构,只根据程序规格说明书对输入范围进行划分,把所有可能的输入数据,即程序输入域划分为若干个互不相交的子集,称为等价类,然后从每个等价类中选取少数具有代表性的数据作为测试用例,进行测试。84.2等价类测试等价类定义等价类是输入域的某个子集合,而所有的等价类的并集是整个输入域。在子集合中,各个输入数据对于揭露程序中的错误是等效的。等价类的特点完备性:整个输入域提供一种形式的完备性无冗余性:若互不相交则可保证一种形式的无冗余性有效等价类:对于程序的规格说明来说,是合理的、有意义的输入数据所构成的集合无效等价类:对于程序的规格说明来说,是不合理的、没有意义的输入数据所构成的集合94.2等价类测试确定等价类的原则(1)如果输入条件规定了取值范围或值的个数就可确定一个有效等价类和两个无效等价类例如:输入学生成绩,范围是0到100;104.2等价类测试确定等价类的原则(2)输入条件规定了输入值的集合或是规定了“必须如何”的条件,则可确定一个有效等价类和一个无效等价类例如:“标识符以字母开头”114.2等价类测试确定等价类的原则(3)如果输入条件是一个布尔量,则可以确立一个有效等价类和一个无效等价类。124.2等价类测试确定等价类的原则(4)如果规定了输入数据的一组值,且程序要对每一个输入值分别进行处理,要对每一个规定的输入值确立一个有效等价类,而对于这组值之外的所有值确立一个无效等价类。例:输入条件说明学历可为:专科、本科、硕士、博士四种之一。134.2等价类测试确定等价类的原则(5)如果规定了输入数据必须遵循的规则,可确定一个有效等价类和若干个无效等价类(从不同角度违反规则)。例如:用户名必须是字母144.2等价类测试确定等价类的原则(6)如已划分的等价类各元素在程序中的处理方式不同,则应将此等价类进一步划分成更小的等价类。例如:输入三条边,判断三角形的形状154.2等价类测试等价类测试用例设计(1)为每一个等价类规定一个唯一的编号。(2)设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。(3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。164.2等价类测试举例:三角形问题三角形问题是软件测试中最经典的一个例子。输入三个整数a、b和c分别作为三角形的3条边,通过程序判断由这3条边构成的三角形类型是:等边三角形、等腰三角形、一般三角形或非三角形(不能构成一个三角形)。174.2等价类测试分析问题中给出和隐含的对输入条件的要求:
条件1:整数条件2:三个数条件3:非零数
条件4:正数条件5:两边之和大于第三边条件6:等腰条件7:等边
184.2等价类测试如果a、b、c满足条件(1)~(4),则输出下列四种情况之一:如果不满足条件(5),则程序输出为“非三角形”。如果三条边相等即满足条件(7),则程序输出为“等边三角形”。如果只有两条边相等、即满足条件(6),则程序输出为“等腰三角形”。如果三条边都不相等,则程序输出为“一般三角形”。194.2等价类测试输入条件有效等价类编号无效等价类编号三个正整数正整数1一边为非正整数a为非正整数10b为非正整数11c为非正整数12两边为非正整数a,b为非正整数13a,c为非正整数14b,c为非正整数15三边均为非正整数16三个数2只输入一个数只给a17只给b18只给c19只输入两个数只给a,b20只给a,c21只给b,c22未输入数23三角形的等价类204.2等价类测试输入条件有效等价类编号无效等价类编号构成一般三角形a+b>c,且a≠b≠c3a+b<c24a+b=c25a+c>b,且a≠b≠c4a+c<b26a+c=b27b+c>a,且a≠b≠c5b+c<a28b+c=a29构成等腰三角形a=b,a≠c,且两边之和大于第三边6a=c,a≠b,且两边之和大于第三边7b=c,a≠b,且两边之和大于第三边8构成等边三角形a=b=c9三角形的等价类214.3边界值分析法1.边界值分析边界值分析(BoundaryValueAnalysis)边界值分析关注输入空间的边界,并从中标识测试用例。基本原理错误更可能出现在输入变量的极值附近。224.3边界值分析法常见的边界值举例对16-bit的整数而言32767和-32768是边界屏幕上光标在最左上、最右下位置报表的第一行和最后一行数组元素的第一个和最后一个C++语言中,intA[10]:A[0]…A[9]
循环的第0次、第1次和倒数第2次、最后一次234.3边界值分析法边界值分析的基本思想在最小值、略高于最小值、正常值、略低于最大值和最大值处取输入变量值表示方法min、min+、nom、max-、和max例如:涉及两个变量的函数x1,x2X1的取值x1min,x1min+,x1nom,x1max-,x1maxX2的取值x2min,x2min+,x2nom,x2max-,x2max244.3边界值分析法边界值分析的取值254.3边界值分析法边界值分析测试用例边界值分析获得测试用例的方法:使所有变量取正常值,只使一个变量取极值;对于一个n变量函数,边界值分析会产生4n+1个测试用例。264.3边界值分析法X1取值:x1min,x1min+,x1nom,x1max-,x1maxX2取值:x2min,x2min+,x2nom,x2max-,x2max两个变量函数的边界值分析测试用例
{<x1nom,x2min>,<x1nom,x2min+>,<x1nom,x2nom>,<x1nom,x2max->,<x1nom,x2max>,<x1min,x2nom>,<x1min+,x2nom>,<x1max-,x2nom>,<x1max,x2nom>}两个变量函数边界值分析测试用例274.3边界值分析法X2两个变量函数边界值分析测试用例284.3边界值分析法举例:三角形问题三角形问题描述三条边a,b,c取整数值,且各边的取值范围是:[1,200]边界值分析设计测试用例每条边的取值:1,2,100,199,200测试用例数目:4n+1三角形问题(n=3):用例数为13294.3边界值分析法练习:NextDate函数输入条件1≤月份≤121≤日期≤31假定1912≤年≤2050请用边界值分析设计测试用例304.3边界值分析法2.健壮性测试健壮性是指在异常情况下,软件还能正常运行的能力。健壮性有两层含义:容错能力恢复能力314.3边界值分析法健壮性测试的基本思想健壮性测试是边界值分析的一种简单扩展,除了使用五个边界值分析取值,还要采用:一个略超过最大值(max+)的取值一个略小于最小值(min-)的取值324.3边界值分析法X2两个变量函数的健壮性测试用例334.3边界值分析法3.最坏情况测试最坏情况测试的基本思想边界值测试分析采用了可靠性理论的单缺陷假设最坏情况测试拒绝这种假设,关心当多个变量取极值时会出现什么情况?344.3边界值分析法最坏情况测试用例设计方法对每一个变量首先进行包含最小值、略高于最小值、正常值、略低于最大值、最大值五个元素集合的测试,然后对这些集合进行笛卡尔积计算,以生成测试用例。一个变量个数为n的函数的最坏情况测试会产生5n个测试用例。354.3边界值分析法两变量函数的最坏情况测试用例X2364.3边界值分析法边界值分析法的测试运用
1.三角形问题的边界值分析测试用例设计
测试用例abc预期输出Test1Test2Test3Test4Test560606050506060605050126099100等腰三角形等腰三角形等边三角形等腰三角形非三角形Test6Test7Test8Test960605050129910060605050等腰三角形等腰三角形等腰三角形非三角形Test10Test11Test12Test1312991006060505060605050等腰三角形等腰三角形等腰三角形非三角形374.3边界值分析法2.加法器边界值测试用例设计
加法器程序计算两个1~100之间整数的和。对于加法器程序,根据输入要求可将输入空间划分为三个等价类,即1个有效等价类(1~100之间),两个无效等价类(<1,>100)。但这种等价类划分不是很完善,我们只考虑了输入数据的取值范围,而没有考虑输入数据的类型,我们认为输入应为整数,但用户输入什么都有可能。384.3边界值分析法边界值分析法的测试运用为此,我们可综合考虑输入数据的取值范围和类型划分等价类,其结果如下表所示。
加法器等价类编号输入条件所属类别编号输入条件所属类别11~100之间整数有效等价类5非数值(字母)无效等价类2<1整数无效等价类6非数值(特殊字符)无效等价类3>100整数无效等价类7非数值(空格)无效等价类4小数无效等价类8非数值(空白)无效等价类394.3边界值分析法
加法器边界测试用例测试用例输入数据预期输出加数1加数2和Test115051Test225052Test39950149Test410050150Test550151Test650252Test75099149Test850100150Test9050提示“请输入1~100间的整数”Test10500提示“请输入1~100间的整数”Test1110150提示“请输入1~100间的整数”Test1250101提示“请输入1~100间的整数”Test130.250提示“请输入1~100间的整数”404.3边界值分析法
加法器边界测试用例测试用例输入数据预期输出加数1加数2和Test14500.2提示“请输入1~100间的整数”Test15A50提示“请输入1~100间的整数”Test1650A提示“请输入1~100间的整数”Test17@50提示“请输入1~100间的整数”Test1850@提示“请输入1~100间的整数”Test19空格50提示“请输入1~100间的整数”Test2050空格提示“请输入1~100间的整数”Test2150提示“请输入1~100间的整数”Test2250提示“请输入1~100间的整数”414.4决策表1.决策表的原理决策表决策表(DecisionTable)是分析和表达多逻辑条件下执行不同操作的工具。在程序设计发展的初期,决策表被当作编写程序的辅助工具。424.4决策表2.决策表的组成条件桩(ConditionStub)列出问题的所有条件动作桩(ActionStub)列出可能采取的操作条件项(ConditionEntity)列出条件桩的取值动作项(ActionEntity)列出条件项各种取值下应该采取的动作434.4决策表决策表的组成444.4决策表规则任何一个条件组合的特定取值及其相应要执行的操作称为规则;在决策表中贯穿条件项和动作项的一列就是一条规则;决策表中列出多少组条件取值,也就有多少条规则,即条件项和动作项有多少列。454.4决策表决策表建立步骤①确定规则的个数;假如有n个条件,每个条件有两个取值(0,1),则有2n
种规则;②列出所有的条件桩和动作桩;③填入条件项;④填入动作项,得到初始决策表;⑤简化,合并相似规则(相同动作)。464.4决策表规则合并规则合并就是决策表的简化。有两条或多条规则具有相同的动作,并且其条件项之间存在着极为相似的关系,就可以将规则合并。474.4.1决策表(1)两条规则合并成一条条件项“—”表示与取值无关。484.4决策表条件项“—”在逻辑上包含其它的条件。(2)两条规则的进一步合并494.4决策表例:维修机器问题问题描述:“……对于功率大于50马力的机器,并且维修记录不全或已运行10年以上的机器,应给予优先的维修处理……”请建立决策表。504.4决策表例:维修机器问题(续)(1)列出所有的条件桩和动作桩条件桩C1:功率大于50马力吗?C2:维修记录不全吗?C3:运行超过10年吗?动作桩A1:进行优先处理A2:作其他处理514.4决策表例:维修机器问题(续)(2)确定规则个数输入条件个数:3;每个条件的取值:“是”或“否”;规则个数:2*2*2=8;
功率大于50马力吗维修记录不全吗运行超过10年吗524.4决策表例:维修机器问题(续)12345678条件功率大于50马力吗?YYYYNNNN维修记录不全吗?YYNNYYNN运行超过10年吗?YNYNYNYN动作进行优先处理作其他处理(3)填入条件项;利用集合的笛卡尔积计算条件项的取值534.4决策表例:维修机器问题(续)12345678条件功率大于50马力吗?YYYYNNNN维修记录不全吗?YYNNYYNN运行超过10年吗?YNYNYNYN动作进行优先处理
作其他处理
(4)填入动作项;1,2合并,5,7合并,6,8合并544.4决策表例:维修机器问题(续)(5)化简;(1)(2)(3)(4)(5)条件功率大于50马力吗?YYYNN维修记录不全吗?YNN——运行超过10年吗?—YNYN动作进行优先处理
作其他处理
554.5因果图1.因果图分析法前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系,相互组合等。考虑输入条件之间的相互组合,可能会产生一些新的情况。但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多。因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例。这就需要利用因果图(逻辑模型)。因果图分析法最终生成的是判定表,适合于检查程序输入条件的各种组合情况。564.5因果图2.因果图的基本符号
恒等c1e1e1=1c1=1e1=0c1=0非c1e1e1=0c1=1e1=1c1=0574.5因果图
或c1e1c2c3e1=1c1=1或c2=1或c3=1否则e1=0与e1c2e1=1c1=1且c2=1否则e1=0c1584.5因果图输入条件的约束594.5因果图输入条件的约束(续)604.5因果图3.利用因果图设计测试用例(1)分析程序规格说明的描述中,哪些是原因,哪些是结果原因常常是输入条件或是输入条件的等价类;结果是输出条件;(2)分析软件规格说明的语义,并将其表示成连接各个原因与各个结果的“因果图”(3)在因果图上使用若干个特殊的符号标明约束条件(4)把因果图转换成判定表(5)把判定表中每一列表示的情况写成测试用例614.5因果图举例:软件规格说明书第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改但如果第一列字符不正确,则给出信息L如果第二列字符不是数字,则给出信息M624.5因果图原因和结果原因
1------第一列字符是A;2------第一列字符是B;3------第二列字符是一数字结果
21------修改文件;22------给出信息L;23------给出信息M;634.5因果图具有约束的因果图11是中间节点;考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约644.5因果图根据因果图建立判定表图
12345678原因(条件)11111000021100110031010101011
111100动作(结果)22
00001121
10100023
010101654.5因果图把判定表的每一列拿出来作为依据,设计测试用例
12345678原因(条件)11111000021100110031010101011
111100动作(结果)22
00001121
10100023
010101测试用例
A6AaB9BPC5HY
A0A@B1B*H4E%664.6正交实验设计方法利用因果图来设计测试用例时,作为输入条件的原因与输出结果之间的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 资阳改装电梯施工方案(3篇)
- 迷宫游乐设备施工方案(3篇)
- 采暖管道施工方案6(3篇)
- 银行季度应急预案演练(3篇)
- 高层安全围护施工方案(3篇)
- 个人授权委托书的【六篇】
- 2025年宠物医院管理(收费管理)试题及答案
- 2025年冲压工(冲裁工艺)试题及答案
- 2025年测量误差修正方法(方法应用案例)试题及答案
- 马鞍山市花山区2025届四年级数学下学期期末模拟试题(含答案)
- 2020典型精密零件机械加工工艺分析实例
- 严重精神障碍家庭护理教育
- 2025年浙能集团招聘笔试参考题库含答案解析
- 137案例黑色三分钟生死一瞬间事故案例文字版
- GB/T 44148.3-2024承压设备用钢锻件、轧制或锻制钢棒第3部分:低温韧性镍钢
- 汽车起重机技术规格书
- (高清版)TDT 1055-2019 第三次全国国土调查技术规程
- 生产线员工培训课件
- 建设项目临时占用林地恢复技术规范
- 学前美术基础与创作(高职学前教育专业)全套教学课件
- 烽火网管系统介绍
评论
0/150
提交评论