白盒测试(一)

上传人:博****1 文档编号:490032383 上传时间:2022-10-27 格式:DOCX 页数:8 大小:131.52KB
返回 下载 相关 举报
白盒测试(一)_第1页
第1页 / 共8页
白盒测试(一)_第2页
第2页 / 共8页
白盒测试(一)_第3页
第3页 / 共8页
白盒测试(一)_第4页
第4页 / 共8页
白盒测试(一)_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《白盒测试(一)》由会员分享,可在线阅读,更多相关《白盒测试(一)(8页珍藏版)》请在金锄头文库上搜索。

1、XX 大学 软件质量控制和测试 实验(实习)报告实验(实习)名称 白盒测试(一)实验(实习)日期 2011-12-2 得分指导老师系专业 班级1姓名 学号一、实验目的理解白盒测试的基本方法,掌握语句覆盖、分支覆盖、条件覆盖、路径覆盖等代码覆盖测试策略,并能应用白盒测试技术设计测试用例二、实验内容1题目一:使用逻辑覆盖测试方法测试以下程序段(必做)void DoWork (int x,int y,int z)1 int k=0, j=0;2 if ( (x3)&(z5)8 j=x*y+10;9 j=j%3;10 说明:程序段中每行开头的数字(110)是对每条语句的编号。(1) 画出程序的控制流图

2、(用题中给出的语句编号表示)。(2) 分别以语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖方 法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。2题目二:折半查找(选做)请按要求对下面的java代码进行测试。代码的功能是:用折半查找法在元素呈升序排 列的数组中查找值为key的元素。public int binSearch ( int array, int key ) int mid, low, high;low = 0;high = array.length-1; while ( low = high ) mid = (low +high)/2;if

3、( key = = array mid )return mid;else if ( key 3 ; z 5 ; 设计用例时要使每个条件分别取真和取假。设计的测试用例如下表。测试用例编号测试数据覆盖条件执行路径1x=3,y=8,z=8假真假真1-2-3-6-7-8-9T02x=4,y=5,z=13真假真假1-2-3-6-7-8-9T04) 判定/条件覆盖: 判定/条件覆盖要求判断中每个条件的所有可能至少出现一次,并且每个判断本 身的可能判定结果也至少出现一次。题目中的条件有四个,分别如下: x 3 ; z 10 : x = = 4 : y5 ;该程序中的分支有四个 。所以设计的测试用例如下表所示

4、:测试用例编号测试数据覆盖条件执行路径1x=4,y=8,z=8真真真真1-2-3-4-5-6-7-8-9-102x=3,y=5,z=13假假假假1-2-3-6-7-9-105 ) 条件组合覆盖: 条件组合覆盖要求每个判定的所有可能条件取值组合至少执行一次。这道题目 中共有四个条件分别如下: x3 ; z 10 : x = = 4 : y5 ; 设定x3为真时,记作T1 ;为假时,即x W 3 ,记作F1 ; z 3 , z 3 , z W 10T1,F2第一个判定:取假分支3x W 3 , z 5T3,T4第二个判定:取真分支6x = = 4 , y W 5T3,F4第二个判定:取真分支7x

5、工 4 , y 5F3,T4第二个判定:取真分支8x 工 4 , y W 5F3,F4第二个判定:取假分支设计的测试用例如下:测试用例编号测试数据覆盖条件执行路径1x = 4 , y = 8 , z = 8T1,T2,T3,T41-2-3-4-5-6-7-8-9T02x = 4 , y = 3 , z = 13T1,F2,T3,F41-2-3-6-7-8-9T03x = 2 , y = 8 , z = 8F1,T2,F3,T41-2-3-6-7-8-9-104x = 2 , y = 3 , z = 13F1,F2,F3,F41-2-3-6-7-9-10(6) 路径覆盖: 路径覆盖要求覆盖程序中

6、所有可能的路径。这道题中可能的执行路径共有4 条,所以需要设计 4 个测试用例:测试用例编号测试数据执行路径1x = 4 , y = 8 , z = 81-2-3-4-5-6-7-8-9-102x = 4 , y = 3 , z = 131-2-3-6-7-8-9-103x = 6 , y = 2 , z = 81-2-3-4-5-6-7-9-104x = 2 , y = 3 , z = 131-2-3-6-7-9-10题目二:折半查找(选做)请按要求对下面的java代码进行测试。代码的功能是:用折半查找法在元素呈升序排 列的数组中查找值为key的元素。首先对代码进行编号,以便绘制控制流图。p

7、ublic int binSearch ( int array, int key ) 1 int mid, low, high;2 low = 0;3 high = array.length-1;4 while ( low = high ) 5 mid = (low +high)/2;6 if ( key = = array mid )7 return mid;8 else if ( key array mid )9 high = mid -1;10 else11 low = mid + 112 13 return -1;14 第1步:绘制给出代码段的程序流程图和控制流图;(1)根据程序源代码

8、,绘制出程序的程序流程图,如图3开始结束TrueFalse.key arraymidlow = highkey = = arraymidFalseFalseTrueTruemid = (low + high) / 2high = array.length - 1high = mid - 1low = mid + 1return midlow=0return -1图 3 题目 2 的程序流程图2)根据程序流程图,绘制出程序的控制流图,如图4:图 4 题目 2 的控制流图第2步:计算程序环路复杂度;程序的环路复杂性即McCabe复杂性度量,简单的定义为控制流图的区域数。从 程序的环路复杂性可导出程

9、序基本路径集合中的独立路径条数,这是确保程序中每个可 执行语句至少执行一次所必需的最少测试用例数。 通常环路复杂性可用以下三种方法求得。(1) 通过控制流图的边数和节点数计算。设E为控制流图的边数,N为控制流图的节 点数,则定义环路复杂性为V (G) = E -N + 2 ;该图中共有16条边, 14个节点,因此 E = 16 , N = 14 , V(G)=E-N+2=16-14+2 = 4 ,程序的环路复杂性为4。(2) 通过控制流图中判定节点数计算。若设P为控制流图中的判定节点数,则有 V(G) = P + 1该图中有3个判定节点,因此其环路复杂性为V(G)=P+1=3+1=4,所以该程

10、序的环 路复杂性为4。(3) 将环路复杂性定义为控制流图中的区域数。该控制流图中有4个区域:R1、R2、R3、R4,因此其环路复杂性为4。 第3步:找出独立路径;通过程序的控制流图导出基本路径集,列出程序的独立路径。PATH1: 1-2-3-4-13-14PATH2: 1-2-3-4-5-6-7-12-4-13-14PATH3: 1-2-3-4-5-6-8-9-12-4-13-14PATH4: 1-2-3-4-5-6-8-10-11-12-4-13-14 第4步:设计测试用例;根据程序结构和程序环路复杂性设计用例输入数据和预期结果,确保基本路径集中 的每一条路径的执行。用例编号路径输入数据预期输出1path1:arrayO = ;-11-2-3-4-13-14key = 12path2:array3 = 2,4,6;11-2-3-4-5-6-7-12-4-13-14key = 43path3:array4 = 2,4,6,8;01-2-3-4-5-6-8-9-12-4-13-14key = 24path4:array4 = 2,4,6,8;21-2-3-4-5-6-8-10-11-12-4-13-14key = 6四、实验心得1、

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号