实验4白盒测试(二)

  • 格式:doc
  • 大小:434.65 KB
  • 文档页数:6

南京信息工程大学 实验(实习)报告
实验(实习)名称实验四 白盒测试(二)日期 2015-5-31 得分 指导教师
系 计软院 专业 软工 年级 2013 班次 1 姓名 徐佳 学号20131344027

实验四 白盒测试(二)
一、 实验目的
理解白盒测试的基本方法,掌握
语句覆盖、判定覆盖、条件覆盖、判定/条件

覆盖、条件组合覆盖和路径覆盖
等代码覆盖测试策略,并能运用相应的方法设计
测试用例

二、 实验时间
2学时
三、 实验准备
主流PC 机一套,要求安装windows 操作系统和Office 工具及相应编程软
件;

四、 实验内容

1.
题目一:使用逻辑覆盖测试方法测试以下程序段
void DoWork (int x,int y,int z)
{
1 int k=0, j=0;
2 if ( (x>3)&&(z<10) )
3 {
4 k=x*y-1;
5 j=sqrt(k);
6 }
7 if((x==4)||(y>5))
8 j=x*y+10;
9 j=j%3;
10 }
说明:程序段中每行开头的数字(1~10)是对每条语句的编号。
(1)画出程序的控制流图(用题中给出的语句编号表示)。
(2)分别以语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆
盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。

2.
题目二:
请按要求对下面的java 代码进行测试。代码的功能是:用折半查找法在元素呈升序排
列的数组中查找值为key 的元素。
public 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 else
11 low = mid + 1
12 }
13 return -1;
14 }
(1) 画出此程序段的控制流图;
(2)试计算此程序段的McCabe 复杂性;
(3)用独立路径覆盖法给出测试路径;并为各测试路径设计测试用例。

五、 实验步骤
1. 基本流图
开始
int
k=0,j=0

x>3&&z<10
k=x*y-1
j=sqrt(k)

Y

x=4||y>5

j=x*y+10
j=j%3
结束

Y
N
M
N

2. 控制流程图
1
2
2a2b

38

9
4,5

6,7

3. 语句覆盖
CASE1(x=4,y=5,z=9)可以做到语句覆盖

4. 判定覆盖
CASE1:x=4,y=5,z=6可覆盖判断M的 Y 分支和判断N的 Y 分支
CASE2:x=2,y=3,z=4可覆盖判断M的 N 分支和判断N的 N 分支

5. 条件覆盖
设条件x>3取真记为T1,假记为F1
条件z<10取真记为T2,假记为F2
设条件x=4取真记为T3,假记为F3
条件y>5取真记为T4,假记为F4
CASE1:x=4,y=6,z=6可覆盖条件 T1,T2,T3,T4
CASE2:x=2,y=3,z=4可覆盖条件 F1,F2,F3,F4
6. 判定/条件覆盖
CASE1:x=4,y=6,z=6可覆盖条件T1,T2,T3,T4,可覆盖判断M的 Y 分支和判断N的 Y 分支
CASE2:x=2,y=3,z=4可覆盖条件F1,F2,F3,F4,可覆盖判断M的 N 分支和判断N的 N 分支

7. 条件组合覆盖
编号 覆盖条件取值 判定条件取值 具体条件取值
1 T1,T2 N取Y x>3,z<10
2 T1,F2 N取N x>3,z>=10
3 F1,T2 N取N x<=3,z<10
4 F1,F2 N取N x<=3,z>=10
5 T3,T4 M取Y x=4,y>5
6 T3,F4 M取Y x=4,y<=5
7 F3,T4 M取Y x!=4,y>5
8 F3,F4 M取N x!=4,y<=5
条件组合覆盖测试用例
测试用例 覆盖条件 覆盖判断 覆盖组合
x=4,y=6,z=6 T1,T2 T3,T4 N取Y M取Y 1 5
x=4,y=5,z=10 T1,F2 T3,F4 N取N M取Y 2 6
x=3,y=6,z=9 F1,T2 F3,T4 N取N M取Y 3 7
x=3,y=5,z=10 F1,F2 F3,F4 N取N M取N 4 8

8. 路径覆盖
开始

int
k=0,j=0

x>3&&z<10k=x*y-1j=sqrt(k)Y
x=4||y>5

j=x*y+10
j=j%3
结束

Y
2
N
M

N

1

3
4
5
6

测试用例 覆盖组合 覆盖
x=3,y=6,z=10 4 7 1-2-3
x=3,y=5,z=10 4 8 1-2-4
x=5,y=6,z=7 1 7 1-5-6
x=2,y=5,z=10 4 8 1-5-4

2.
(1)数据流图:
1
2
3
4
5
61314
7
8

910
11
12
(2)MAC复杂度为 3+1=4
(3)独立路径
PATH1:1-2-3-4-5-6-7-12-4-13-14
PATH2:1-2-3-4-5-6-8-9-12-4-13-14
PATH3:1-2-3-4-5-6-8-10-11-12-4-13-14
PATH4:1-2-3-4-13-14
用例编号 路径 输入数据 预期输出
1 PATH1 array[4]={1,2,3,4}; key = 2 1
2 PATH2 array[6]={2,3,6,8,13,15}; key = 15 5
3 PATH3 array[4]={2,4,6,8}; key = 2 0
4 PATH4 array[3]={1,2,3}; key = 4 -1