欢迎来到天天文库
浏览记录
ID:40005361
大小:570.33 KB
页数:42页
时间:2019-07-17
《[计算机软件及应用]软件测试-白盒测试》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、白盒测试了解白盒测试的定义掌握白盒测试的常用方法教学目标:教学重点:教学难点:教学方法:多媒体教学课时:6课时白盒测试的覆盖测试法和路径测试法白盒测试案例应用白盒测试什么是白盒测试白盒测试的常用方法白盒测试案例运用一、什么是白盒测试1、白盒测试的定义白盒测试(White-boxTesting)也称作结构测试或逻辑驱动测试,它是知道产品的内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行。按照程序内部的结构测试程序,检验程序中的每条通路是否都能按预定要求正确工作,而不顾它的功能。白盒测试的主要方法有逻辑覆盖、基本路径测试等,主要用于软件
2、验证。一、什么是白盒测试2、为什么不采用穷举路径测试法穷举路径测试法无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序。穷举路径测试不能查出程序因为遗漏路径而出错。穷举路径测试发现不了一些与数据相关的错误。一、什么是白盒测试3、白盒测试方法遵循的原则确保一个模块中的所有独立路径至少被测试一次。所有逻辑值均需测试真(true)和假(false)两种情况。检查程序的内部数据结构,保证其结构的有效性。在取值上、下边界即可操作范围内运行所有循环。一、什么是白盒测试4、控制流图白盒测试是针对软件产品内部逻辑结构进行测试的,测试人员必须对测试中的软件有深入
3、的理解,包括其内部结构、各单元部分及之间的内在联系,还有程序运行原理等等。因而这是一项庞大并且复杂的工作。为了更加突出程序的内部结构,便于测试人员理解源代码,可以对程序流程图进行简化,生成控制流图(ControlFlowGraph)。简化后的控制流图是由节点和控制边组成的。一、什么是白盒测试4、控制流图控制流图的特点:具有唯一入口节点,即源节点,表示程序段的开始语句;具有唯一出口节点,即汇节点,表示程序段的结束语句;节点由带有标号的圆圈表示,表示一个或多个无分支的源程序语句;控制边由带箭头的直线或弧表示,代表控制流的方向。常见的控制流图如图3-1所示。包含条
4、件的节点被称为判断节点(也称谓词结点),由判断节点发出的边必须终止于某一个节点。由边和结点所限定的范围称为区域。图3-1常见的控制流图一、什么是白盒测试4、控制流图将一个典型的程序流程图转换成控制流图一、什么是白盒测试4、控制流图图3-2控制流图示例对于复合条件,可将其分解为多个单个条件,并映射成控制流图。一、什么是白盒测试4、控制流图控制流图的矩阵表示形式,其维数等于流图的结点数,矩阵元素对应于结点的边。若矩阵记为M,则M(4,1)=“d”。一、什么是白盒测试5、图矩阵流图对应的矩阵图结点12341a2b3c4d二、白盒测试的常用方法1、覆盖率测试白盒测试
5、技术的常见方法之一就是覆盖测试,它是利用程序的逻辑结构设计相应的测试用例。测试人员要深入了解被测程序的逻辑结构特点,完全掌握源代码的流程,才能设计出恰当的用例。根据不同的测试要求,覆盖测试可以分为语句覆盖、判断覆盖、条件覆盖、判断/条件覆盖、条件组合覆盖和路径覆盖。二、白盒测试的常用方法1、覆盖率测试下面是一段简单的C语言程序,作为公共程序段来说明五种覆盖测试的各自特点。程序3-1:1If(A>1&&B==0)then2X=X/A3If(A>2
6、
7、X>1)then4X=X+1逻辑运算符“&&”表示“与”的关系,逻辑运算符“
8、
9、”表示“或”的关系。其程序控制流
10、图如图3-3所示。二、白盒测试的常用方法1、覆盖率测试图3-3示例程序流程图及流图二、白盒测试的常用方法2、语句覆盖语句覆盖(StatementCoverage)是指设计若干个测试用例,程序运行时每个可执行语句至少被执行一次。在保证完成要求的情况下,测试用例的数目越少越好。以下是针对公共程序段设计的测试用例:测试用例A,B,X(A>1)and(B=0)(A=2)or(X>1)执行路径TestCase12,0,3TrueTrueace(BCEF)程序按路径a,c,e(流图上的路径BCEF或1-2-3-4-5)顺序执行,程序中的4个语句都被执行一次,符合语句覆盖
11、的要求。二、白盒测试的常用方法2、语句覆盖从表面上看,语句覆盖用例测试了程序中的每一个语句行,好像对程序覆盖得很全面,但实际上语句覆盖测试是最弱的逻辑覆盖方法。例如,第一个判断的逻辑运算符“&&”错误写成“
12、
13、”,或者第二个判断的逻辑运算符“
14、
15、”错误地写成“&&”,这时如果仍采用TestCase1测试用例则程序仍按流程图上的路径ace执行;当第二个条件语句中X>1误写成X>0时,上述的测试用例也不能发现这一错误。根据上述分析可知,语句覆盖测试只是表面上的覆盖程序流程,没有针对源程序各个语句间的内在关系,设计更为细致的测试用例。二、白盒测试的常用方法3、判断
16、覆盖判断覆盖(BranchCoverage)是指设计
此文档下载收益归作者所有