3.20分析
实验二白盒测试分析报告
一、实验目的理解
本实验旨在让学生掌握白盒测试的核心概念和多种测试方法,包括语句覆盖、判定覆盖、条件覆盖等,并能将这些方法应用于实际程序测试中。
二、实验内容分析
实验分为两部分:
-
对实验一的1、3题使用逻辑覆盖法设计测试用例
-
对实验一的2、4题使用基本路径法设计测试用例
-
对一个特定程序(伪代码)采用判定覆盖和条件覆盖设计测试用例
三、伪代码程序分析
程序功能
该程序主要功能是:
-
找出各部门中最大的销售额值
-
找出销售额最大的部门
-
对该部门中满足条件(工资≥15000或职位为'M')的员工加薪100元,其他员工加薪200元
-
处理各种错误情况(如空表等)
关键逻辑点
-
初始检查:ESIZE ≤ 0 || DSIZE ≤ 0
-
第一个循环:找出最大销售额MAXSALES
-
第二个循环:找出销售额等于MAXSALES的部门
-
第三个循环:检查该部门的所有员工并进行加薪处理
四、测试用例设计(针对伪代码程序)
判定覆盖测试用例设计
用例编号 | 输入条件 | 预期结果 | 覆盖的判定 | ||
---|---|---|---|---|---|
TC1 | ESIZE=0, DSIZE=0 | ERRCODE=1 | if(ESIZE ≤ 0 | DSIZE ≤ 0) | |
TC2 | ESIZE=2, DSIZE=2, SALES=[1000,2000], EMPTAB=[(DEPT=1,SALARY=16000,JOB='E'), (DEPT=2,SALARY=14000,JOB='M')] | MAXSALES=2000, DEPT=2员工加薪100和200 | else分支 | ||
TC3 | ESIZE=2, DSIZE=2, SALES=[1000,1000], EMPTAB=[(DEPT=1,SALARY=16000,JOB='E')] | MAXSALES=1000, ERRCODE=2 | FOUND == false |
条件覆盖测试用例设计
用例编号 | 输入条件 | 预期结果 | 覆盖的条件 |
---|---|---|---|
TC4 | ESIZE=-1, DSIZE=5 | ERRCODE=1 | ESIZE ≤ 0为真, DSIZE ≤ 0为假 |
TC5 | ESIZE=5, DSIZE=-1 | ERRCODE=1 | ESIZE ≤ 0为假, DSIZE ≤ 0为真 |
TC6 | ESIZE=2, DSIZE=2, SALES=[1000,2000], EMPTAB=[(DEPT=2,SALARY=16000,JOB='E'), (DEPT=2,SALARY=14000,JOB='M')] | MAXSALES=2000, 两个员工分别加薪100和200 | SALARY(k) ≥ 15000为真/假, JOB(k)='M'为真/假 |
五、实验建议
-
流程图绘制:建议先为伪代码绘制详细的流程图,这将有助于更清晰地理解程序逻辑路径。
-
边界条件测试:增加对边界条件的测试,如:
-
ESIZE和DSIZE刚好等于0
-
销售额全部相同的情况
-
部门中没有员工的情况
-
-
路径覆盖补充:可以考虑增加路径覆盖的测试用例,确保程序中的所有路径都被执行过。
-
错误处理验证:特别注意ERRCODE==2的情况,确保错误处理逻辑正确。
-
数据验证:检查SALES数组和EMPTAB、DEPTTAB的索引是否从0开始(伪代码中循环从1开始,可能是笔误)。
六、实验体会预期
完成本实验后,预期可以:
-
深入理解白盒测试的各种方法及其差异
-
掌握如何根据程序逻辑设计有效的测试用例
-
认识到白盒测试在发现逻辑错误方面的价值
-
体会到测试用例设计需要兼顾全面性和效率
建议在实验过程中注意记录遇到的问题和解决方法,这对理解测试的难点和关键点非常有帮助。