1、广东海洋大学学生实验报告书
实验名称
实验四 白盒测试
课程名称
软件测试
成绩
学院(系)
软件学院
专业
软件工程
班级
学生姓名
学号
实验地点
实验日期
一、 实验目的:
1. 掌握白盒测试原理和测试方法
2. 使用白盒测试的逻辑测试和基本路径测试法设计测试用例
二、 实验内容:
1. 画出如下程序段的程序流程图,分别用最少的测试用例完成语句覆盖、判定覆盖、条件覆盖和路径覆盖的测试设计。
void test(int x, int y)
{
if (x>0 && y>10) y=y/x;
if(x
2、<-10 || y<0) y=-(y+x);
}
程序流程图如下所示:
语句覆盖每条语句至少执行一次。判定覆盖每个判定的每个分支至少执行一次。条件覆盖每个判定的每个条件应取到各种可能的值。路径覆盖使程序中每一条可能的路径至少执行一次。
由这个流程图可以看出,该程序模块有4条不同的路径:
P1:(a-c-e) P2:(a-c-d)
P3:(a-b-e) P4:(a-b-d)
将里面的判定条件和过程记录如下:
判定条件M={x>0 and y>10}
判定条件N={x<-10 or y<0}
1、 语句覆盖(P4)
测试用例输入
输
3、出
判定M的取值
判定N的取值
覆盖路径
T
T
P4(a-b-d)
经仔细琢磨,本程序无法实现语句覆盖。(原因不解释)
2、判定覆盖(P2 P3)
P2和p3可以作为测试用例。
测试用例输入
输出
判定M的取值
判定N的取值
覆盖路径
x=-1, y=0
y=1
F
T
P3(a-b-e)
x=1,y=11
y=11
T
F
P2:(a-c-d)
3、条件覆盖
对于M:x>0取真时T1,取假时F1;
y>10取真时T2,取假时F2;
对于N:x<-10取真时T3,取假时F3;
4、Y<0取真时T4,取假时F4。
条件:x>0,y>10
条件:x<-10,y<0
根据条件覆盖的基本思路,和这8个条件取值,组合测试用例如表所示:
测试用例输入
输出
取值条件
具体取值条件
覆盖路径
x=1,y=11
11
T1,T2,F3,F4
x>0,y>10
P1(a-c-e)
x=-11,y=-1
12
F1,F2,T3,T4
x<-10,y<0
P4(a-b-d)
4、路径覆盖
测试用例输入
输出
覆盖条件取值
覆盖路径
无符合值
T1,T2,T3,T4
P4(a-b-d)
x=1,y=11
11
5、
T1,T2,F3,F4
P3(a-b-e)
无符合值
T1,F2,T3,T4
P2(a-c-d)
无符合值
F1,F2,F3,F4
P1(a-c-e)
由上表可知,本程序无法实现路径覆盖。
2.画出如下程序段的程序流程图和控制流图,分析程序的环复杂度,并确定程序的独立路径和设计相应的测试用例。
void Test1( int n, int i )
1 {
2 int x=0;
3 int y=0;
4 while ( n-- > 0 )
5 {
6 if ( i==0 )
6、
7 x=y+2;
8 else
9 if ( i==1 )
10 y=y+10;
11 else
12 x=y+20;
13 }// while
14 }// Test1
程序流程图如下所示:
控制流图如下所示:
给定控制流图G的环形复杂度—V(G),定义为
V(G) = E-N+2
其中,E是控制流图中边的数量,N是控制流图中的节点数量。
所以根据控制流图可知环形复杂度为:
V(G) = E-N+2 = 11
7、 – 9 + 2 = 4
根据控制流图可知其独立路径有:
程序的独立路径集合有4种:
1: 1-2-9;
2:1-2-3-4-8-2-9;
3:1-2-3-5-7-8-2-9;
4:1-2-3-5-6-8-2-9;
接着使用边界值分析方法设计测试用例:
n
i
x
y
-1
0
0
0
0
0
0)
0
1
0
2
0
1
1
20
0
1
2
0
10
1
10
0
10
1
1000
0
10
三、 实验总结
这次的实验加深了对软件测试的“白盒测试原理”的了解,在设计软件测试代码的过程中通过网上搜索资料也从中学习到了很多周边的知识。在这次的实验过程中最重要的是了解到白盒测试的优缺点,及其在军工软件、航天航空软件、工业控制软件等等上的运用。
指导教师
日期
注:请用A4纸书写,不够另附纸。 第 页,共 页