2016年东南大学软件测试白盒测试实验二
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实用文档
软件测试基础与实践实验报告
实验名称:白盒测试实验二
实验地点:计算机软件楼
实验日期: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 { 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 { 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. 对应基本路径集合中每条路径设计出正确测试用例,有些路径可能不存在测试用例。