实验报告
实验名称: 程序白盒测试实验
实验地点:湖南城市学院信息楼
实验日期:
指导老师:
学生班级:
学生姓名:
提交日期: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 要求: 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 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 步骤五:为各测试路径设计测试用例如下: 用例编号 路径 输入数据 预期输出 1 2 Path1:1-2-3-4-5-6-7-8-9 2、1、3 Path2:1-2-3-4-5-4-3-9 1、2、3 1、2、3 1、2、3 题目二: 步骤一:画出程序控制流图,其对应的控制流图如下图所示。 步骤二:按语句覆盖设计测试用例,经分析,只需设计一组测试用例即可。 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 Path1:1-2-3-4-5-6-8-10-12-4-13 2 Path2:1-2-3-4-5-6-8-10-11-12-4-13 3 Path3:1-2-3-4-5-6-8-9-12-4-13 4 Path4:1-2-3-4-5-6-7 预期输出 五、实验总结 1、白盒测试与程序内部结构相关,因此也称为结构测试或逻辑驱动测试。而在进行白盒测试时,测试者必须检查程序的内部结构,从程序的逻辑结构着手,得出测试数据。因此测试者需要了解程序结构的实现细节等知识,才能有效进行测试用例的设计工作。 2、白盒测试并不是简单地按照代码设计测试用例,而是需要根据不同的测试需求,结合不同的测试对象,使用合适的方法进行测试。而白盒测试的方法也很多,主要方法有逻辑覆盖测试、基本路径测试等。 3、通过这次实验,我了解到绘制程序流程图与控制流图之间的区别,并且能够通过控制流图来用各种方式设计测试用例。 因篇幅问题不能全部显示,请点此查看更多更全内容