计算机科学与工程学院《软件测试》实验报告专业班级08双特01实验地点J503学生学号0705060314指导教师胡宏银学生姓名罗玲实验时间2011-11-15实验项目实验二结构性测试(白盒测试)实验类别操作性()验证性()设计性(√)综合性(√)其它()实验目的及要求实验目的:1、掌握结构性测试技术,并能应用结构性测试技术设计测试用例。2、掌握对测试用例进行优化设计方法。实验要求:1、根据题目要求编写测试用例。2、实验结果要求给出两套测试用例集测试效果比较;计算测试用例的分支覆盖率、条件覆盖率和语句覆盖率等测试管理指标。成绩评定表类别评分标准分值得分合计上机表现积极出勤、遵守纪律主动完成实验设计任务30分程序代码比较规范、基本正确功能达到实验要求30分实验报告及时递交、填写规范内容完整、体现收获40分说明:评阅教师:日期:2010年月日实验内容一、实验原理白盒测试又称结构测试、逻辑驱动测试或基于程序的测试。它一般用来分析程序的内部结构。它依赖于对程序细节的严密验证,针对特定条件和循环设计测试用例,对程序的逻辑路径进行测试。是基于一个应用代码的内部逻辑知识,测试覆盖全部代码、分支、路径和条件的。结构测试特点(1)可以构成测试数据使特定程序部分得到测试(2)有一定的充分性度量手段(3)可获得较多工具支持(4)通常只用于单元测试二、实验内容1.题目一:使用逻辑覆盖测试方法测试以下程序段voidDoWork(intx,inty,intz){1intk=0,j=0;2if((x3)&&(z10))3{4k=x*y-1;5j=sqrt(k);6}7if((x==4)||(y5))8j=x*y+10;9j=j%3;10}说明:程序段中每行开头的数字(1~10)是对每条语句的编号。(1)画出程序的控制流图(用题中给出的语句编号表示)。(2)分别以语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。2.题目二:三角形问题在三角形计算中,要求输入三角型的三个边长:A、B和C。当三边不可能构成三角形时提示错误,可构成三角形时计算三角形周长。若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等边三角形”。画出程序流程图、控制流程图、计算圈复杂度V(g),找出基本测试路径。三、实验说明1、根据题目要求编写测试用例。2、实验结果要求给出两套测试用例集测试效果比较;计算测试用例的分支覆盖率、条件覆盖率和语句覆盖率等测试管理指标。四、实验步骤(1)题目一:使用逻辑覆盖测试方法测试以下程序段首先根据给出的语句编号画出程序的流程图,程序流程图如4-1所示:图4-1程序的控制流图其次,简化控制流图,如图4-2所示:图4-2简化的控制流图语句覆盖测试用例测试用例x,z,y执行路径测试用例14,6,9e0e2e3e4e6e7e8Intk=0,j=0;x0&&z10x==4||y5k=x*y-1;J=sqar(k);j=x*y+10;YNYj=j%3;N25478e1e49e2e8e3e5e6e7e0测试用例20,5,9e0e1e5e8语句覆盖率—已执行的可执行语句占程序中可执行语句总数的百分比判定覆盖测试用例测试用例x,z,yx0&&z10x==4||y5执行路径测试用例14,6,9TTe0e2e3e4e6e7e8测试用例20,10,5FFe0e1e5e8条件覆盖测试用例测试用例x,z,yx0z10x==4y5执行路径测试用例14,6,9TTTTe0e2e3e4e6e7e8测试用例20,10,5FFFFe0e1e5e8判定/条件覆盖测试用例测试用例x,z,yx0z10x==4y5x0&&z10x==4||y5执行路径测试用例14,6,9TTTTTTe0e2e3e4e6e7e8测试用例20,10,5FFFFFFe0e1e5e8组合覆盖测试用例测试用例x,z,yx0,z10x==4,y5执行路径测试用例14,9,6TTe0e2e3e4e6e7e8测试用例24,9,5TFe0e2e3e4e5e8测试用例34,10,6FTe0e1e6e7e8测试用例40,10,5FFe0e1e5e8路径覆盖测试用例测试用例x,z,yx0&&z10x==4||y5执行路径测试用例14,9,6TTe0e2e3e4e6e7e8测试用例23,9,5TFe0e2e3e4e5e8测试用例34,10,6FTe0e1e6e7e8测试用例40,10,5FFe0e1e5e8(二)题目二:三角形问题首先根据题目旨意画出程序流程图,如下图4-3所示:图4-3三角形问题程序流程图其次根据题目旨意画出控制流程图,如下图4-4所示:不能构成三角形此三角形为不等边三角形输入三条边:A,B,CA=0||B=0||C=0||A+BC||A+CB||B+CAA==B&&A==C&&B==C此三角形为等边三角形A==B||A==C||B==C此三角形为等腰三角形三角形的周长为:A+B+CTFTFTF图4-4三角形问题控制流程图环形复杂度V(G)=边数-节点数+2即环形复杂度V(G)=8-6+2=4路径覆盖的测试用例测试用例A,B,C执行路径测试用例1-1,2,2e0e6e7e9测试用例22,2,2e0e1e5e8e9测试用例32,2,3e0e1e2e4e8e9测试用例45,3,4e0e1e2e3e8e9五、实验结果从问题一中的结果来看,测试用例在满足分支覆盖的同时,还满足了语句覆盖,因此分支覆盖要比语句覆盖更强。实验总结从这次实验中,我学习到了许多知识,白盒测试在软件测试中占有相当一部e0e1e2e3e4e5e6e7e8e9分的比重,在白盒测试中,有许多测试准则,基于本实验所用到的方法,主要是控制流的覆盖方法,而控制流和程序是一一对应的,而且控制流图更容易使人们理解程序,通过自己描述的流程图,让我对编程也有了进一步的了解,这次的实验没有涉及循环的概念,我们可知循环的控制流图的测试更为复杂,因为考虑到循环的执行次数,这使得路径的数目会急剧增加,因此,一般在使用的过程中,要限制循环的次数。通过这次实验,我学会测试用例的编写,相信自己通过不断的努力,会对白盒测试有更深的认识。