4月17日
实验项目名称:实验二
一、实验目的
1、 掌握白盒测试的基础知识;
2、 掌握白盒测试的检查内容及测试目的;
3、 掌握黑盒测试的几种基本测试方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖、路径覆盖。
二、实验要求
1、 复习有关内容,理解白盒测试;
2、 掌握语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖、路径覆盖,并能设计出测试用例;
3、 对具体软件,能分别使用相应的白盒测试方法设计测试用例,并实施测试、分析测试结果。
三、实验内容
l 对实验一1、3题使用逻辑覆盖法进行测试用例设计。
l 对实验一2、4题使用基本路径法进行测试用例设计。
l 5、
程序伪代码
注意: 1)参数表中EMPTAB 为职员表,DEPTTAB为部门表;
2 ) ESIZE为职员表长度,DSIZE为部门表长度;
3)ERRCODE为出错码
MAXSALERS = 0;
ERRCODE = 0;
if(ESIZE <= 0 || DSIZE <= 0)
ERRCODE = 1;
else
{
for(i = 1; i < DSIZE ; i++) //选出各部门中最大的销售额值
if(SALES[i] > MAXSALES)
MAXSALES = SALES[i];
for(j = 1; j < DSIZE; j++) //循环找出销售额最大的部门
if(SALES[j] == MAXSALES)
{
FOUND = false;
for(int k = 1; k < ESIZE ; k++) //检查销售额最大部门的所有人员
if(EMPTAB.DEPT(k) == DEPTTAB.DEPT(j))
{
FOUND = true;
if(SALARY(k) >= 15000.00 or JOB(k) = 'M') //满足条件的人员加工资
SALARY(k) = SALARY(k) + 100.00;
else
SALARY(k) = SALARY(k) + 200.00;
}
if(FOUND == false)
ERRCODE == 2;
}
}
采用判定覆盖、条件覆盖对该程序进行用例设计
四、实验结果:
(1) 基本路径法绘制出控制流图,逻辑覆盖法绘制出流程图
(2) 设计测试用列表
实验一第1题
流程图
测试用例表
| 
 逻辑覆盖法测试用例表  | 
||||
| 
 输入  | 
 覆盖路径  | 
 测试结果  | 
||
| 
 年  | 
 月  | 
 日  | 
||
| 
 A  | 
 2  | 
 1  | 
 1-2-3-4-5-17  | 
 输入日期无效  | 
| 
 1897  | 
 5  | 
 31  | 
 1-2-3-4-5-6-17  | 
 输入日期无效  | 
| 
 2051  | 
 13  | 
 29  | 
 1-2-3-4-5-6-7-17  | 
 输入日期无效  | 
| 
 2004  | 
 0  | 
 32  | 
 1-2-3-4-5-6-7-8-17  | 
 输入日期无效  | 
| 
 2004  | 
 2  | 
 30  | 
 1-2-3-4-5-6-7-8-9-17  | 
 输入日期无效  | 
| 
 2005  | 
 2  | 
 29  | 
 1-2-3-4-5-6-7-8-9-10-17  | 
 输入日期无效  | 
| 
 2005  | 
 5  | 
 32  | 
 1-2-3-4-5-6-7-8-9-10-11-17  | 
 输入日期无效  | 
| 
 2005  | 
 2  | 
 31  | 
 1-2-3-4-5-6-7-8-9-10-11-12-17  | 
 输入日期无效  | 
| 
 2004  | 
 3  | 
 29  | 
 1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16  | 
 星期一  | 
实验一第2题
控制流图
计算环复杂度V(G) = 4 + 1 = 5
测试用例表
| 
 基本路径法测试用例表  | 
|||
| 
 输入  | 
 测试路径  | 
 测试结果  | 
|
| 
 商品价格  | 
 顾客付款  | 
||
| 
 a  | 
 20  | 
 1-2-3-11  | 
 输入无效  | 
| 
 20  | 
 a  | 
 1-2-3-4-5-11  | 
 输入无效  | 
| 
 50  | 
 10  | 
 1-2-3-4-5-6-7-11  | 
 输入无效  | 
| 
 120  | 
 100  | 
 1-2-3-4-5-6-7-8-11  | 
 输入无效  | 
| 
 40  | 
 50  | 
 1-2-3-4-5-6-7-8-9-10  | 
 一张10元  | 
实验一第3题
流程图
测试用例表
| 
 逻辑覆盖法测试用例表  | 
|||
| 
 输入  | 
 覆盖路径  | 
 测试结果  | 
|
| 
 drink  | 
 currency  | 
||
| 
 a  | 
 a  | 
 1-2-3-4-5-14  | 
 输入无效  | 
| 
 啤酒  | 
 五角  | 
 1-2-3-4-6-7-14  | 
 啤酒被送出  | 
| 
 橙汁  | 
 五角  | 
 1-2-3-4-6-8-9-14  | 
 橙汁被送出  | 
| 
 啤酒  | 
 一元  | 
 1-2-3-4-6-8-10-11-14  | 
 啤酒被送出,找零五角  | 
| 
 橙汁  | 
 一元  | 
 1-2-3-4-6-8-10-12--13-14  | 
 橙汁被送出,找零五角  | 
实验一第4题
控制流图
环复杂度V(G) = 24 - 17 + 2 = 9
测试用例表
| 
 基本路径法测试用例表  | 
||||
| 
 输入  | 
 测试路径  | 
 测试结果  | 
||
| 
 目的地  | 
 舱位  | 
 航程时长  | 
||
| 
 a  | 
 商务舱  | 
 两小时以内  | 
 1-2-17  | 
 输入无效  | 
| 
 欧美  | 
 a  | 
 两小时以内  | 
 1-2-3-17  | 
 输入无效  | 
| 
 欧美  | 
 商务舱  | 
 a  | 
 1-2-3-4-17  | 
 输入无效  | 
| 
 欧美  | 
 商务舱  | 
 超过两小时  | 
 1-2-3-4-5-8-16  | 
 食物供应,播放电影  | 
| 
 欧美  | 
 商务舱  | 
 两小时以内  | 
 1-2-3-4-5-9-16  | 
 食物供应,播放电影  | 
| 
 非欧美  | 
 经济舱  | 
 两小时以内  | 
 1-2-3-4-6-10-16  | 
 食物供应  | 
| 
 非欧美  | 
 商务舱  | 
 两小时以内  | 
 1-2-3-4-6-11-16  | 
 食物供应,播放电影  | 
| 
 中国国内  | 
 商务舱  | 
 两小时以内  | 
 1-2-3-4-7-12-16  | 
 食物供应  | 
| 
 中国国内  | 
 经济舱  | 
 两小时以内  | 
 1-2-3-4-7-13-14-16  | 
 无服务  | 
实验二第5题
流程图
测试用例表
| 
 判定覆盖/条件覆盖  | 
|||||||
| 
 输入  | 
 测试路径  | 
 测试结果  | 
|||||
| 
 选择一  | 
 选择二  | 
 选择三  | 
 选择四  | 
 选择五  | 
 选择六  | 
||
| 
 T  | 
 T  | 
 T  | 
 T  | 
 T  | 
 T  | 
 1-2-3-4-5-6-7-8-9-10-11-12-13-14  | 
 ERRCOR=0  | 
| 
 F  | 
 -  | 
 -  | 
 -  | 
 -  | 
 -  | 
 1-2-3  | 
 ERRCOR=1  | 
| 
 T  | 
 F  | 
 T  | 
 T  | 
 T  | 
 T  | 
 1-2-3-4-5-6-7-8-9-10-11-12-15-14  | 
 ERRCOR=1  | 
| 
 T  | 
 T  | 
 F  | 
 T  | 
 T  | 
 T  | 
 1-2-3-4-5-6-7-6-7-8-9-10-11-12-13-14  | 
 ERRCOR=1  | 
| 
 T  | 
 T  | 
 T  | 
 F  | 
 T  | 
 T  | 
 1-2-3-4-5-6-7-8-9-10-9-10-11-12-13-14  | 
 ERRCOR=1  | 
| 
 T  | 
 T  | 
 T  | 
 T  | 
 F  | 
 T  | 
 1-2-3-4-5-6-7-8-9-16-17  | 
 ERRCOR=2  | 
| 
 T  | 
 T  | 
 T  | 
 T  | 
 T  | 
 F  | 
 1-2-3-4-5-6-7-8-9-10-11-12-15-14  | 
 ERRCOR=1  | 
五、实验体会:
1.遇到了哪些问题
在实验过程中在设计逻辑覆盖和基本路径法的测试用例时,对判定覆盖和条件覆盖的区别理解不够深入,导致初期设计的测试用例覆盖不全面。在绘制流程图和控制流图时,部分复杂程序(如实验二第5题)的逻辑分支较多,容易出现遗漏或错误连接的情况。
- 问题如何解决的
 
针对逻辑覆盖和基本路径法的问题,我重新复习了白盒测试的相关理论,特别是判定覆盖、条件覆盖和路径覆盖的定义和要求,通过与同学讨论和查阅教材,明确了各种覆盖方法的设计要点。绘制流程图和控制流图时,我采用了分步拆解的方法,先梳理程序的逻辑结构,再逐一绘制每个分支,确保不遗漏任何节点或路径。
3.收获
通过本次实验,我深入掌握了白盒测试的基础知识和方法,特别是逻辑覆盖法和基本路径法的实际应用。实验让我更加理解了测试用例设计的重要性,学会了如何通过系统化的方法确保程序逻辑的正确性。此外,绘制流程图和控制流图的过程提高了我的逻辑分析能力,计算环复杂度的练习让我对程序结构的复杂度有了更直观的认识。这次实验不仅提升了我的软件测试技能,还培养了我解决复杂问题的耐心和细致态度,为后续学习和实践奠定了坚实基础。
                    
                
                
            
        
浙公网安备 33010602011771号