第3章-软件测试用例的设计2——白盒测试.pptVIP

  • 44
  • 0
  • 约7.92千字
  • 约 58页
  • 2018-03-15 发布于河北
  • 举报

第3章-软件测试用例的设计2——白盒测试.ppt

第3章-软件测试用例的设计2——白盒测试

3.3白盒测试 什么是白盒测试呢? 白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。这一方法是把测试对象看作一个透明的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。 1: 路径测试 控制流图 控制流图主要由节点和边构成。 如何建立控制流图? 1)确定程序的程序流程图 2)程序流程图转化为控制流图 转换的原则如下: 控制流图中的每一个节点可以表示程序流程图中矩形框所表示的处理; 菱形表示的两个甚至多个出口判断; 多条流线相交的汇合点。 例: 1 if a or b 2 x 3 else 4 y 环形(圈)复杂度 定义:环形复杂度是一种为程序逻辑复杂性提供定量测度的软件度量,将该度量用于计算程序的基本的独立路径数目,为确保所有语句至少执行一次的测试数量的上界。 独立路径:路径中包含一条在定义之前未曾用到的边。 环形复杂度的计算方法 方法一:流图中区域的数量对应于环形的复杂性; 方法二:给定流图G的圈复杂度V(G),定义为V(G)=E-N+2,E是流图中边的数量,N是流图中结点的数量; 方法三:给定流图G的圈复杂度V(G),定义为V(G)=P+1,P是流图G中判定结点的数量。 路径测试方法应用举例 例: 第一步,画出程序的控制流图。 第二步,计算环形复杂度,并确定独立路径。 V(G)=E-N+2=11-9+2=4。 路径1: 4-14; 路径2:4-6-7-14; 路径3:4-6-8-10-13-4-14; 路径4:4-6-8-11-13-4-14。 第三步,导出测试用例 第四步,执行测试。 2:数据流测试 数据流测试的意义? 路径测试可以测试程序中所有的条件和语句块,但是,这也不能检测出程序中所有的错误。基于数据流的测试主要关注程序中数据的定义和使用,可以用于对基于控制流测试的补充。 1 定义/使用测试 首先要明确一个假设,数据流的假设还是和路径的假设一致,程序P的程序图(有向图)是一个单入口,单出口,并且不允许有从某个结点到其自身的边。 a、DEF(v,n),定义结点。 int x;x=y+z。 b、USE(v,n),使用结点 System.out.println(x)。 c、P-use,当一个变量被用在分支语句的条件表达式中(如if和while语句),则称为变量的P-use。 d、C-use,如果一个变量被用在赋值语句的表达式、输出语句中,被当作参数传递给调用函数,或被用在下标表达式中,则称为变量的C-use。其中,C表示“计算”。 y=x+1;function(x) e、定义使用路径(DU-path)开始节点是DEF(v,n),结束结点是USE(v,n)的路径。 f、定义清除路径(DC-path),当开始结点和结束结点中间没有其他的定义结点的时候为清除路径。 “程序片”测试 “程序片”测试 程序片也叫程序切片,是一种程序分析和理解技术。 程序片是确定或影响某个变量在程序某个点上的取值的一组程序语句。典型的程序分片算法有Weiser的基于数据流方程的算法,无定型分片算法,Bergeretti的基于信息流关系的算法,基于程序依赖图的图形可达性算法,基于波动图的算法,参数化程序分片算法,并行分片算法,面向对象的分层分片算法等。 定义1 给定一个程序P和P中的一个变量集合V,变量集合V在语句n上的一个片,记做S(V,n),是P中对V中的变量值做出贡献的所有语句集合。 定义2 给定一个程序P和一个给出语句及语句片段编号的程序图G(P),以及P 中的一个变量集合V,变量集合V在语句片段n上的一个片,记做S(V,n),是P中在n以前对V中的变量值作出贡献的所有语句片段编号的集合。 切片算法基本过程为: 1)寻找语句n的变量v所直接数据依赖或控制依赖的节点; 2)寻找这些新节点所直接数据依赖或控制依赖的节点; 3)一直重复下去,直到没有新节点加进来为止4)最后将这些节点按源程序的语句顺序排列,即为程序P的关于语句n的切片S。 程序分片的基本原则: 对所有的赋值定义节点建立片; 对谓词使用节点建立

文档评论(0)

1亿VIP精品文档

相关文档