软件测试将会机械化吗,软件测试 3白盒测试.ppt

本文介绍基本路径测试的方法,包括控制流图的构建、环形复杂度的计算、图矩阵的运用等关键技术。并通过具体实例展示了如何设计测试用例来覆盖所有独立路径。

软件测试 3白盒测试

图矩阵 导出控制流图和决定基本测试路径的过程均需要机械化,为了开发辅助基本路径测试的软件工具,称为图形矩阵(graph matrix)的数据结构很有用。 图矩阵是控制流图的矩阵表示形式。图矩阵是一个方形矩阵,其维数等于控制流图的节点数。矩阵中的每列和每行都对应于标识的节点,矩阵元素对应于节点间的边。 通常,控制流图中的结点用数字标识,边则用字母标识。如果在控制流图中从第 i 个结点到第 j 个结点有一个标识为 x 的边相连接,则在对应图矩阵的第 i 行第 j 列有一个非空的元素 x 。 * 图矩阵的连接权值  对每个矩阵项加入连接权值(link weight),图矩阵就可以用于在测试中评估程序的控制结构,连接权值为控制流提供了另外的信息。最简单情况下,连接权值是 1(存在连接)或0(不存在连接),但是,连接权值可以赋予更有趣的属性:   执行连接(边)的概率。   穿越连接的处理时间。   穿越连接时所需的内存。   穿越连接时所需的资源。 * 基本路径测试方法的例子1 void Sort ( int iRecordNum, int iType ) 1 { 2 int x=0; 3 int y=0; 4 while ( iRecordNum-- > 0 ) 5 { 6 If ( iType==0 ) 7x=y+2; 8 else 9 If ( iType==1 ) 10 x=y+10; 11 else 12 x=y+20; 13 } 14 } * 基本路径测试方法的例子1(续) 画出控制流图: 如右图所示 计算环形复杂度: 10(条边)- 8(个节点)+ 2 = 4 导出独立路径(用语句编号表示) 路径1:4→14 路径2:4→6→7→14 路径3:4→6→9→10→13→4→14 路径4:4→6→9→12→13→4→14 4 6 7 9 10 12 13 14 * 基本路径测试方法的例子1:设计测试用例 输入数据 预期输出 测试用例1 irecordnum = 0 itype = 0 x = 0 y = 0 测试用例2 irecordnum = 1 itype = 0 x = 2 y = 0 测试用例3 irecordnum = 1 itype = 1 x = 10 y = 0 测试用例4 irecordnum = 1 itype = 2 x = 20 y = 0 * 基本路径测试方法的例子1:图矩阵 * 连接权为“1”表示存在一个连接,在图中如果一行有两个或更多的元素“1”,则这行所代表的结点一定是一个判定结点,通过连接矩阵中有两个以上(包括两个)元素为“1”的个数,就可以得到确定该图圈复杂度的另一种算法。 复合逻辑  例如:   1 if a or b   2 x   3 else   4 y * 如果判断中的条件表达式是由一个或多个逻辑运算符 (OR, AND, NAND, NOR) 连接的复合条件表达式,则需要改为一系列只有单条件的嵌套的判断。   1 9 10 11 2 4 5 7 8 3 6 V(G) = 4 基本路径测试方法的例子2 流程图 * 1 2,3 8 7 6 9 4,5 10 11 基本路径测试方法的例子2: 控制流图 * 基本路径测试方法的例子2:环形复杂度 V(G)=4 1 2,3 7 8 6 9 4,5 10 11 Region 1 Region 2 Region 3 Region 4 * Path1: 1-2-3-6-7-9-10-1-11 基本路径测试方法的例子2:独立路径 Path2: 1-2-3-6-8-9-10-1-11 Path3: 1-2-3-4-5-10-1-11 Path4: 1-11 1 9 10 11 2 4 5 8 7 3 6 * 习题 1、使用基本路径测试方法,为以下程序段设计测试用例。 void Do (int X,int A,int B) { if ( (A>1)&&(B==0) ) X = X/A; if ( (A==2)||(X>1) ) X = X+1; } 要求: (1)画出相应的控制流图。 (2)计算环形复杂度。 (3)给出相应的图矩阵。 (4)找出程序的独立路径集合。 (5)设计测试用例。 * 循环测试方法 从本质上说,循环测试的目的就是检查循环结构的有效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值