2016年东南大学软件测试白盒测试实验二

  • 格式:doc
  • 大小:45.51 KB
  • 文档页数:9

实用文档
软件测试基础与实践实验报告
实验名称:白盒测试实验二
实验地点:计算机软件楼
实验日期:2016.11.9
学生姓名:王鑫
学生学号:71114430
东南大学软件学院制
实用文档
一、实验目的
(1)巩固白盒测试知识,能熟练应用基本路径测试方法设计测试用例
(2)学习测试用例的书写
二、实验内容
(一)实验一: 基本路径测试技术实验
运用基本路径测试方法,分别对程序WeekB 中的方法IsCorrect()和getResult()进行测试。

要求:
(1) 画出程序流图。

(2) 计算环复杂度。

(3) 找到基本路径集合。

(4) 设计具体的测试用例。

方法IsCorrect()
1.画出程序流图
bool IsCorrect(int y,int m,int d)
{
if(y<1)
return false;
else
{
if(((y%4==0)&&(y_x0010_0!=0))||(y@0==0))
maxA[1]=29;
if(m<0||m>12)
return false;
else
{
if(d>maxA[m-1])
return false;
else
return true;
}
}
实用文档
78 end
2.计算环复杂度
V(G)=流图中的区域数量=8
3.找到基本路径集合
设计具体的测试用例4.
基本路径实际输出期望输出编号输入执行条件实用文档
条件判断编号6
3
3y 5x 5
3x
1
T P1
F T P2 F F
F T P3 F F F
T P4 F F F F F
F F F F F P5 F
T P6 F F T
T P7 F F T F
T
T T P8 T
F
方法getResult ()
1.画出程序流图
int getResult(int y,int m,int d)
{
long totalDays=0;
for(int i=1;i<y;i++)
{
if(((i%4==0)&&(i_x0010_0!=0))||(i@0==0)) totalDays+=366;
else
totalDays+=365;
}
if(((y%4==0)&&(y_x0010_0!=0))||(y@0==0)) maxA[1]=29;
else
maxA[1]=28;
for(int i=1;i<m;i++)
{
totalDays+=maxA[i-1];
}
totalDays+=(d-1);
maxA[1]=28;
实用文档
return (totalDays%7);
}
实用文档
Begi1,445,6,889,110,1115,16,113,118 en
2计算环复杂
V(G)=流图中的区域数量=9
实用文档
3.找到基本路径集合
设计具体的测试用例4.
编号条件判断
8y 8 4y 4
8x 4x
F P1 F
F F P2
T F P3
F T P4 F
T P5 T
F F F F P6
F T P7 F F
F F P8 F T F
F
T
T
P9 F
实用文档
三、实验体会
(1)没有测出缺陷,但实际上存在缺陷。

这说明动态白盒测试之路径测试并不能完全测出缺陷。

关键在于测试用例是否则测出缺陷。

不过比较实验一中WeekA.java中代码,有改进:
1.解决了year=0的问题
2.之前month=0会抱错,这次不会
3.对于错误输出,会输出“输入错误,请重新输入”,而不是也给出结果
(2)程序依然存在缺陷,如month取值为0,程序显示“X年X月X日是星期计算错
误”;day取值为0或者负数,程序依然显示“X年X月X日星期计算错误”。

而事实上应该显示“输入错误,请重新输入”。

改进:getResult()函数中,
if(((y%4==0)&&(y_x0010_0!=0))||(y@0==0))
maxA[1]=29;
else
maxA[1]=28;
可以删去,因为在IsCorrect()函数中已经判断过了。

(3)关键:1.做出正确有美观的流图。

“正确”保证了正确计算出环复杂度和设计出基
本路径集合,而“美观”保证了方便设计出正确测试用例。

2.设计出正确的基本路径集合,最好依照从上到下或者从下到上的遍历顺
序遍历流图。

3.对应基本路径集合中每条路径设计出正确测试用例。

难点:1.做出正确有美观的流图;
2.设计出正确的基本路径集合,不要过多,有些可以由集合中已经存在的路径线性表示。

3. 对应基本路径集合中每条路径设计出正确测试用例,有些路径可能不存在测试用例。