文档库

最新最全的文档下载
当前位置:文档库 > 白盒测试

白盒测试

实验报告

实验名称:程序白盒测试实验

实验地点:湖南城市学院信息楼403 实验日期: 2012-5-7 指导老师:王科

学生班级:

学生姓名:

提交日期: 2012-5-14

白盒测试

一、实验目的

1、理解白盒测试的基本方法,并能够用白盒测试技术设计测试用例。

2、掌握驱动模块和桩模块,以及运用掌握编程语言开发桩模块。

二、实验准备

1、主流PC机一套,要求安装windows操作系统、Virtul Studio6.0、java 等工具;

2、理解白盒测试方法以及单元测试相关方面知识;

3、熟悉上述方法测试用例设计的理论。

三、实验内容

题目一:

void main()

{

int arr[ ]={1,10,7,5,28,14,13,98}

int arr1[ ]=bubbleSort(int arr[ ])

for( int i=0;i

{

system.ou.println(arr[i])

}

要求:

a.大家用c编程语言,实现bubbleSort(int arr[ ])

b.请用基路径法设计测试用例。

题目二:使用逻辑覆盖方法测试下面程序段

int 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 return j;

11 }

说明:程序段前面数字代表程序语句的标号

1、画出程序的控制流图(用题中给出的语句编号表示)。

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、试计算此程序段的McCabe 复杂性;

2、用基本路径覆盖法给出测试路径;

3、为各测试路径设计测试用例。

四、实验步骤

题目一:

步骤一:写出bubbleSort(int arr[])的C语言源代码。

void bubbleSort(int arr[])

1 {

2 int temp,i,j;

3 for(i=0; i

4 for(j=i+1; j

5 if(arr[i] > arr[j])

6 {

7 temp = arr[i]; arr[i] = arr[j]; arr[j] = temp;

8 }

9 }

步骤二:画出控制流图,bubbleSort(int arr[])对应的控制流图如下图所示。

白盒测试

步骤三:计算圈复杂度。通过公式V(G)=E-N+2来计算,本例中E=11,N=9。

故:V(G)=11-9+2=4。

步骤四:找出独立路径。

Path1:1-2-3-4-5-6-7-8-9

Path2:1-2-3-4-5-4-3-9

白盒测试

题目二:

步骤一:画出程序控制流图,其对应的控制流图如下图所示。

白盒测试

步骤二:按语句覆盖设计测试用例,经分析,只需设计一组测试用例即可。

X=4,Y=6,Z=7.

其执行路径是:1-2-3-4-5-6-7-8-9-10

步骤三:按判定覆盖设计测试用例,经分析,只需设计二组测试用例即可。

X=4,Y=6,Z=7.

其执行路径是:1-2-3-4-5-6-7-8-9-10

X=2,Y=3,Z=4.

其执行路径是:1-2-6-7-9-10

步骤四:按条件覆盖设计测试用例,经分析,只需设计二组测试用例即可。

X=4,Y=5,Z=12.

其执行路径是:1-2-6-7-9-10

X=2,Y=6,Z=8.

其执行路径是:1-2-6-7-8-9-10

步骤四:按判定-条件覆盖设计测试用例,经分析,只需设计二组测试用例即可。

X=4,Y=6,Z=7.

其执行路径是:1-2-3-4-5-6-7-8-9-10

X=2,Y=2,Z=12.

其执行路径是:1-2-6-7-9-10

步骤五:按组合覆盖设计测试用例,经分析,只需设计四组测试用例即可。

X=4,Y=6,Z=7.

其执行路径是:1-2-3-4-5-6-7-8-9-10

X=4,Y=2,Z=12.

其执行路径是:1-2-6-7-8-9-10

X=2,Y=6,Z=7.

其执行路径是:1-2-6-7-8-9-10

X=2,Y=2,Z=12.

其执行路径是:1-2-6-7-9-10

步骤六:按路径覆盖设计测试用例,经分析,只需设计四组测试用例即可。

X=4,Y=6,Z=7.

其执行路径是:1-2-3-4-5-6-7-8-9-10

X=4,Y=6,Z=12.

其执行路径是:1-2-6-7-8-9-10

X=6,Y=2,Z=7.

其执行路径是:1-2-3-4-5-6-7-9-10

X=2,Y=2,Z=12.

其执行路径是:1-2-6-7-9-10

题目三:

步骤一:绘制代码段的控制流图,其对应的控制流图如下图所示。

白盒测试

步骤二:根据控制流图计算程序的McCabe 复杂度。

V(G)=E-N+2=13-11+2=4.

步骤三:找出程序段的独立路径。经分析,可得4条独立路径。

Path1:1-2-3-4-5-6-8-10-12-4-13

Path2:1-2-3-4-5-6-8-10-11-12-4-13

Path3:1-2-3-4-5-6-8-9-12-4-13

Path4:1-2-3-4-5-6-7

白盒测试

五、实验总结

1、白盒测试与程序内部结构相关,因此也称为结构测试或逻辑驱动测试。而在

进行白盒测试时,测试者必须检查程序的内部结构,从程序的逻辑结构着手,得出测试数据。因此测试者需要了解程序结构的实现细节等知识,才能有效进行测试用例的设计工作。

2、白盒测试并不是简单地按照代码设计测试用例,而是需要根据不同的测试需

求,结合不同的测试对象,使用合适的方法进行测试。而白盒测试的方法也很多,主要方法有逻辑覆盖测试、基本路径测试等。

3、通过这次实验,我了解到绘制程序流程图与控制流图之间的区别,并且能够

通过控制流图来用各种方式设计测试用例。