本科实验报告课程名称:软件测试技术实验项目:软件测试技术实验实验地点:专业班级:学号:学生姓名:指导教师:谢红薇2015年10月16日实验名称实验1白盒测试方法实验地点实验室211实验时间2015.10.9一、实验目的和要求(1)熟练掌握白盒测试方法中的逻辑覆盖和路径测试覆盖方法。(2)通过实验掌握逻辑覆盖测试的测试用例设计,掌握程序流图的绘制。(3)运用所学理论,完成实验研究的基本训练过程二、实验内容和原理实验内容:测试以下程序段voidDoWork(intx,inty,intz){1intk=0,j=0;2if((x0)&&(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)编写完整的C程序(含输入和输出),使用你所设计的测试用例运行上述程序段。完整填写相应的测试用例表说明:(1)测试用例表中的“覆盖标准”项指:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖和基本路径覆盖。(2)测试用例表(样表)见表1用例编号输入期望结果覆盖标准覆盖路径实际结果五、实验数据记录和处理1.真假X0T1F1Z10T2F2X==4T3F3Y5T4F4对于x0&&z10真为M假为/M对于x==4||y5真的M假为/M测试用例:ID:1用例名称:语句覆盖测试项:程序的正确性环境要求:Windows7和java参考文档:软件规格说明书优先级:高层次:1依赖的测试用例:无步骤:1.依次输入xyz,值为4,6,12.路径为○1○2○4○5○7○8○9期望结果:j=1ID:2用例名称:判定覆盖测试项:程序的正确性环境要求:Windows7和java参考文档:软件规格说明书优先级:高层次:1依赖的测试用例:无步骤:3.依次输入xyz,值为4,6,14.路径为○1○2○4○5○7○8○9期望结果:j=1判定覆盖:输入x=4y=6z=1结果j=1路径○1○2○4○5○7○8○9x=-1y=1z=1j=0○1○2○7○9条件覆盖:条件T1.T2.T3.F4x=4y=1z=10结果j=2路径○1○2○7○8○9F1.T2.F3.T4x=0y=6z=1结果j=1路径○1○2○7○8○9条件/判定覆盖:条件T1.T2.T3.T4MNx=4y=6z=1结果j=1路径○1○2○4○5○7○8○9F1.F2.F3.F4/M/Nx=0y=0z=10j=0○1○2○7○9条件组合覆盖:组合:序号条件分支结果序号条件分支结果○1T1,T2M○2T1,F2/M○3F1,T2/M○4F1,F2/M○5T3,T4N○6T3,F4N○7F3,T4/N○8F3,F4/N组合序号输入条件预期结果路径○1○5x=4y=6z=1T1,T2,T3,T4J=1○1○2○4○5○7○8○9○1○8x=4y=1z=10T1,F2,T3,F4J=2○1○2○7○8○9○3○7x=0y=6z=1F1,T2,F3,T4J=1○1○2○7○8○9○4○8x=0y=0z=10F1,F2,F3,F4J=0○1○2○7○9路径覆盖:组合序号输入条件预期结果路径○1○5x=4y=6z=1T1,T2,T3,T4J=1○1○2○4○5○7○8○9○1○8x=10y=5z=1T1,T2,F3,F4J=1○1○2○4○5○7○9○4○7x=0y=6z=10F1,F2,F3,T4J=1○1○2○7○8○9○4○8x=0y=0z=10F1,F2,F3,F4J=0○1○2○7○9基本路径覆盖:(3条)输入条件预期结果路径x=10y=5z=1T1,T2,F3,F4J=1○1○2○4○5○7○9x=0y=6z=10F1,F2,F3,T4J=1○1○2○7○8○9x=0y=0z=10F1,F2,F3,F4J=0○1○2○7○9测试用例表用例编号输入期望结果覆盖标准覆盖路径实际结果3x=-1y=1z=1j=0判定覆盖○1○2○7○94x=4y=1z=10j=2条件覆盖○1○2○7○8○95x=0y=6z=1j=1条件覆盖○1○2○7○8○96X=4y=6z=1J=1条件/判断覆盖○1○2○4○5○7○8○97X=0y=0z=10J=0条件/判断覆盖○1○2○7○98x=4y=6z=1J=1条件组合覆盖○1○2○4○5○7○8○9程序代码:package白盒测试;importjava.util.Scanner;publicclasstest1{staticvoidDoWork(intx,inty,intz){intk=0;doublej=0;if((x0)&&(z10)){k=x*y-1;j=Math.sqrt(k);9x=4y=1z=10J=2条件组合覆盖○1○2○7○8○910x=0y=6z=1J=1条件组合覆盖○1○2○7○8○911x=0y=0z=10J=0条件组合覆盖○1○2○7○912x=4y=6z=1J=1路径覆盖○1○2○4○5○7○8○913x=10y=5z=1J=1路径覆盖○1○2○4○5○7○914x=0y=6z=10J=1路径覆盖○1○2○7○8○915x=0y=0z=10J=0路径覆盖○1○2○7○916x=10y=5z=1J=1基本路径覆盖○1○2○4○5○7○917x=0y=6z=10J=1基本路径覆盖○1○2○7○8○918x=0y=0z=10J=0基本路径覆盖○1○2○7○9}if((x==4)||(y5))j=x*y+10;j=j%3;System.out.println(j=+j);}publicstaticvoidmain(String[]args){intx,y,z;Scannersc=newScanner(System.in);System.out.print(请输入x:);x=sc.nextInt();System.out.print(请输入y:);y=sc.nextInt();System.out.print(请输入z:);z=sc.nextInt();DoWork(x,y,z);}}六、实验结果分析实验的预期结果与实际测试结果相同,测试了语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖和基本路径覆盖共七种测试方法方法,其中条件组合覆盖和判定条件覆盖较为覆盖面大。七、心得体会编写程序代码比较容易简单,设计测试用例的过程比较复杂。但是通过亲自的编写了解了各种覆盖的优缺点,如判定覆盖是针对分支而言,不关注内在条件,条件覆盖则是针对条件而言,不关注外部结果,判定条件覆盖虽然将两者优点结合,但是就覆盖的方面而言,条件组合覆盖比之前的都要强。我个人认为最强的覆盖是路径覆盖+条件组合覆盖,基本上能覆盖所有分支条件,但是用例的数量会呈指数增长,测试起来太麻烦。而基本路径覆盖则是一种新的测试,值得认真学习。实验名称实验2黑盒测试方法实验地点实验室211实验时间2015.10.9一、实验目的和要求(1)熟练掌握黑盒测试方法中的等价类测试方法和边界值测试方法。(2)通过实验掌握如何应用黑盒测试方法设计测试用例。(3)运用所学理论,完成实验研究的基本训练过程。二、实验内容和原理1.用你熟悉的方法编写一个判断三角形问题的程序。要求:输入代表三角形边长的三个证书,判断它们能否组成三角形。如果能够,则输出三角形是等边、等腰或一般三角形的识别信息;如果不能构成三角形,则输出相应提示信息。2.使用等价类方法和边界值方法设计测试用例。三、主要仪器设备笔记本计算机四、操作方法与实验步骤(1)先用等价类和边界值方法设计测试用例,然后用白盒法进行检验和补充(2)参考程序流程图和控制流图,编写源程序(3)使用等价类方法设计测试用例(4)输入设计好的测试用例,执行源程序,记录输出结果程序流程图程序流图等价类划分表测试用例表用例编号测试数据(A,B,C)等价类覆盖情况输出输入条件有效等价类无效等价类五、实验数据记录和处理测试用例:ID:15用例名称:一边为0测试项:正确判断是否三角形环境要求:Windows7和java参考文档:软件规格说明书优先级:高层次:1依赖的测试用例:无实际结果步骤:1.依次输入ABC,值为0,6,12.观察结果期望结果:输出不是三角形。ID:16用例名称:两边为0测试项:正确判断是否三角形环境要求:Windows7和java参考文档:软件规格说明书优先级:高层次:1实际结果依赖的测试用例:无步骤:1.依次输入ABC,值为0,0,12.观察结果期望结果:输出不是三角形。等价类划分表输入条件有效等价类无效等价类是否构成三角形1.两边之和大于第三边2.两边之和小于第三边3.两边之和等于第三边4.一边不是整数5.两边不是整数6.三边不是整数7.一边是负数8.两边是负数9.三边是负数10.三边为零测试用例表用例编号测试数据(A,B,C)等价类覆盖情况输出1A=5B=1C=222A=3B=2C=133A=1.1B=3C=444A=1.1B=1.2C=155A=1.1B=1.2C=1.366A=-1B=3C=577A=-1B=-3C=588A=-3B=-4C=-599A=0B=0C=01010A=6B=6C=51,11是否等腰三角形11.两边相等且三边不都相等12.任意两边不等是否等边三角形13.三边相等14.三边不都相等11A=6B=5C=41,1212A=6B=6C=61,1313A=6B=5C=41,14程序代码:package黑盒测试;importjava.util.Scanner;publicclassTest2{publicstaticvoidmain(String[]args){inta,b,c;Scannersc=newScanner(System.in);System.out.print(请输入A:);a=sc.nextInt();System.out.print(请输入B:);b=sc.nextInt();System.out.print(请输入C:);c=sc.nextInt();if(ab+c)if(ba+c)if(ca+b)if(a==b)if(b==c)System.out.print(是等边三角形);elseSystem.out.print(是等腰三角形);elseif(a==c)System.out.print(是等腰三角形);elseif(b==c)System.out.print(是等腰三角形);elseSystem.out.print(是不等边三角形);elseSystem.out.print(不是三角形);elseSystem.out.print(不是三角形);elseSystem.out.print(不是三角形);}}六、实验结果与分析输入边长有0或者有负数时,程序都能正确的给出结果,但是输入非整数时,会由于在编写代码时问题而出错。设置的变量值为整型变量,当输入其他类型的值时,程序就会出错。虽然实验内容要求的读入三个整数,但是我觉得也应该设置能读入小数,只需将变量值改为double即可。七、心得体会设计黑盒测试是从外部入手,从思考角度讲不如白盒来的规律,但是要比白盒测试更加的直观,从期望结果来编写测试用例,同时结合了程序流程图则可以更好地设计测试用例。实验名称实验三QTP自动化测试实验地点实验室211实验时间2015.10.12一、实验目的和要求(1)实验要求自带笔记本,安装QTP软件,独立完成实验内容,可以互相讨论。(2)实验目的了解QTP软件,熟悉QTP自动化测试原理;掌握QTP软件的脚本录制;掌握QTP检查点的插入,能够利用QTP软件进行功能测试(界面测试)和回归测试。二、实验内容和原理(1)