您好,欢迎访问三七文档
北华大学计算机科学技术学院实验报告课程名称软件测试技术与实践题目__白盒测试__指导教师郑慧实验日期__2016.3.29________专业软件工程学生姓名________王晗雪_____班级/学号软件13-223号成绩_________________白盒测试一、实验目的掌握白盒测试方法,并能够运用白盒测试方法设计测试用例。对测试用例进行优化设计;二、实验设备主流PC机一套,要求安装Windows操作系统和Office工具。三、实验题目:使用逻辑覆盖测试方法测试以下程序段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)分别以语句覆盖、判定覆盖、条件覆盖和基本路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。1、绘制出程序流程图,如图1;2、绘制控制流图,如图2;k=x*y-1;j=sqrt(k)(x==4)or(y5)j=x*y+10;j=j%3;结束开k=0,j=0;(x3)and(z10)TrueTrueFalseFalse图2题目1的控制流图3、设计测试用例:(1)语句覆盖:语句覆盖是设计足够的测试用例使程序中的每一条可执行语句至少执行一次。这题中,两个if语句的判定之后,只要确保使两个判定都为真,那么所有的执行语句就都可以执行了,即可达到语句覆盖的要求。所以设计的测试用例如下:x=4,y=6,z=8。这组测试用例的执行路径是1—2—3—4—5—6—7—8—9—10(2)判定覆盖:判定覆盖要求程序中每个判断的取真分支和取假分支至少经历一次。这题中,有两个判定语句,至少需要设计两组测试用例,才能分别覆盖两个if语句的真分支和假分支。所以设计的测试用例如下:用例1:x=4,y=6,z=8,其执行路径是1—2—3—4—5—6—7—8—9—10;用例2:x=3,y=5,z=8,其执行路径是1—2—3—6—7—9—10。(3)条件覆盖:条件覆盖要求每个判断中每个条件的可能取值至少要满足一次。这道题目中的条件有四个,分别如下:①x3;②z10;③x==4;④y5;设计用例时要使每个条件分别取真和取假。设计的测试用例如下表。测试用例编号测试数据覆盖条件执行路径1x=3,y=8,z=8①假②真③假④真1-2-3-6-7-8-9-102x=4,y=5,z=13①真②假③真④假1-2-3-6-7-8-9-10(4)判定/条件覆盖:判定/条件覆盖要求判断中每个条件的所有可能至少出现一次,并且每个判断本身的可能判定结果也至少出现一次。题目中的条件有四个,分别如下:①x3;②z10;③x==4;④y5;该程序中的分支有四个。所以设计的测试用例如下表所示:测试用例编号测试数据覆盖条件执行路径1x=4,y=8,z=8①真②真③真④真1-2-3-4-5-6-7-8-9-102x=3,y=5,z=13①假②假③假④假1-2-3-6-7-9-10(5)条件组合覆盖:条件组合覆盖要求每个判定的所有可能条件取值组合至少执行一次。这道题目中共有四个条件分别如下:①x3;②z10;③x==4;④y5;设定x3为真时,记作T1;为假时,即x≤3,记作F1;z10为真时,记作T2;为假时,即z≤10,记作F2;x==4为真时,记作T3;为假时,即x≠4,记作F3;y5为真时,记作T4;为假时,即y≤5,记作F4。条件组合如下表:编号具体条件取值覆盖条件判定取值1x3,z10T1,T2第一个判定:取真分支2x3,z≤10T1,F2第一个判定:取假分支3x≤3,z10F1,T2第一个判定:取假分支4x≤3,z≤10F1,F2第一个判定:取假分支5x==4,y5T3,T4第二个判定:取真分支6x==4,y≤5T3,F4第二个判定:取真分支7x≠4,y5F3,T4第二个判定:取真分支8x≠4,y≤5F3,F4第二个判定:取假分支设计的测试用例如下:测试用例编号测试数据覆盖条件执行路径1x=4,y=8,z=8T1,T2,T3,T41-2-3-4-5-6-7-8-9-102x=4,y=3,z=13T1,F2,T3,F41-2-3-6-7-8-9-103x=2,y=8,z=8F1,T2,F3,T41-2-3-6-7-8-9-104x=2,y=3,z=13F1,F2,F3,F41-2-3-6-7-9-10(6)路径覆盖:路径覆盖要求覆盖程序中所有可能的路径。这道题中可能的执行路径共有4条,所以需要设计4个测试用例:测试用例编号测试数据执行路径1x=4,y=8,z=81-2-3-4-5-6-7-8-9-102x=4,y=3,z=131-2-3-6-7-8-9-103x=6,y=2,z=81-2-3-4-5-6-7-9-104x=2,y=3,z=131-2-3-6-7-9-10测试用例设计表数据输入条件预期结果x=1,y=5,z=9TFFj=2x=4,y=6,z=11FTFj=34x=5,y=4,z=11FFTj=j%3四、实验思考题1)在实际的工作中,程序开发人员是否需要对自己的程序进行测试?作为程序开发人员,如何使自己的程序代码更易于理解、可读性强?(2)在进行测试设计时,如何考虑测试用例的充分性和减少测试用例的冗余性。在编写测试用例的时候,要充分熟悉需求,并且了解软件的架构设计,各个模块的设计。精心选择测试数据来达到对需求的一个较好的覆盖率。在实际测试过程中,会因为软件的特性,可能各个模块之间有关联,这时可以安排好测试用例的执行顺序,以达到测试数据的重用。这个需要一定经验积累。
本文标题:实验三
链接地址:https://www.777doc.com/doc-4735106 .html