本科实验报告
课程名称: 软件测试技术
实验项目: 软件测试技术实验
实验地点: 软件楼211
专业班级: 学号:
学生姓名:
指导教师: 兰方鹏
2015年 10 月 20 日
实验名称 | 实验一 白盒测试方法 | ||||||||
实验地点 | 软件楼211 | 实验时间 | 2015.10.15 | ||||||
一、实验目的和要求 | |||||||||
(1)熟练掌握白盒测试方法中的逻辑覆盖和路径测试覆盖方法。 (2)通过实验掌握逻辑覆盖测试的测试用例设计,掌握程序流图的绘制。 (3)运用所学理论,完成实验研究的基本训练过程。 | |||||||||
二、实验内容和原理 | |||||||||
实验内容:测试以下程序段 Void DoWork(int x , int y , int z) { int k = 0,j=0; if((x>0)&&(z<10)) { k = x * y-1; j = sqrt (k); } if((x==4)&&y>5)) j = x * y +10; j = j %3; } | |||||||||
三、主要仪器设备 | 笔记本电脑 | ||||||||
四、操作方法与实验步骤 | |||||||||
(1)画出程序的控制流图(用题中给出的语句编号表示) (2)分别以语句覆盖,判定覆盖,条件覆盖,判定条件覆盖,条件组合覆盖和路径覆盖和基本路径覆盖法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示) (3)编写完整的C语言程序(含输入和输出),使用你所设计的测试用例运行上述程序段。完整填写相应的测试用例表(语句覆盖用例表,判定覆盖用例表,条件覆盖用例表,判定条件覆盖用例表,条件组合覆盖用例表和路径覆盖和基本路径覆盖用例表) 说明: (1)测试用例表中的“覆盖标准”项指:语句覆盖,判定覆盖,条件覆盖,判定条件覆盖,条件组合覆盖和路径覆盖和基本路径覆盖 (2)测试用例表(样表)见表一 | |||||||||
五、实验数据记录和处理 | |||||||||
一、C语言程序 #include void main() { int x,y,z; int k=0,j=0; printf("Please input x y z\\n"); scanf("%d %d %d",&x,&y,&z); if((x>0)&&(z<10)) { k=x*y-1; j=sqrt(k); } if((x==4)||(y>5)) j=x*y+10; j=j%3; printf("%d,%d\\n",k,j); } 二、测试用例表 用例 编号 | 输入 (x , y , z) | 期望结果 (k , j) | 覆盖标准 | 覆盖路径 | 实际结果 | ||||
1 | (4,10,8) | (39,2) | 语句覆盖 | 12457 | (39,2) | ||||
2 | (2,5,5) (0,6,10) | (10,0)(0,1) | 判定 覆盖 | 124579 127 | (10,0) (0,1) | ||||
3 | (4,10,8) (0,3,15) | (39,2)(0,0) | 条件 覆盖 | 12457 1279 | (39,2) (0,0) | ||||
4 | (4,10,8) (0,3,15) | (39,2)(0,0) | 判定条 件覆盖 | 12457 1279 | (39,2) (0,0) | ||||
5 | (4,10,8) (3,8,10) (0,6,10)(0,3,15) | (39,2) (0,1) (0,1) (0,0) | 条件 组合 覆盖 | 12457 127 127 1279 | (39,2) (0,1) (0,1) (0,0) | ||||
6 | (0,3,15) (2,5,5) (4,10,8) | (0,0)(10,0)(39,2) | 基本 路径 覆盖 | 1279 124579 12457 | (0,0) (10,0) (39,2) |
六、实验结果与分析 | ||||
白盒测试方法主要有语句覆盖,分支覆盖,条件覆盖,判定条件覆盖,组合条件覆盖,路径覆盖和基本路径覆盖七种覆盖方法。各有优劣,一级比一级覆盖方法更准确,逻辑覆盖有五种,路径覆盖有两种。但是每一种覆盖方法都不能保证所有的分支都能覆盖。 | ||||
七、讨论、心得 | ||||
白盒测试方法主要有逻辑覆盖和路径覆盖,逻辑覆盖有语句覆盖,分支覆盖,条件覆盖,判定条件覆盖,组合条件覆盖,路径覆盖有路径覆盖和基本路径覆盖。通过这次白盒测试的实验,让我深刻的了解到了单元测试的重要性,通过白盒测试的各种覆盖方法使我们更加准确的认识程序流程图。 |