《软件质量保证与测试》实验报告实验一白盒测试技术(实验日期:12(2)11(3)班9月22日-9月29日)(实验日期:12(1)班9月23日-9月30日)一、实验目的1.熟练掌握白盒法测试的逻辑覆盖法,并能进行实际程序测试;2.掌握分支覆盖和测试流的测试方法,并能进行实际程序测试;3.对测试用例进行优化。二、实验内容一)使用逻辑覆盖测试方法测试以下程序段voidDoWork(intx,inty,intz){1intk=0,j=0;2if((x1)&&(y==0)){3k=x*y-1;4j=sqrt(k);5}6if((x==2)||(z1)){7j=x*y+10;8j=j%3;9}10}说明:程序段每行开头的数字(1~10)是对每条语句的编号。(1)画出程序的控制流程图(图自己完成,下图仅供参考)。(2)分别以语句覆盖、判定覆盖、条件覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。语句覆盖:选用的测试用例是:case1x=2y=0z=3执行路径是:ace判定覆盖:选用的测试用例是:case1x=2y=0z=3case2x=1y=0z=1可分别执行路径ace和abd条件覆盖:选用的测试用例是:case1x=2y=0z=3case2x=1y=0z=1case3x=2y=1z=1可分别执行路径ace、abd和abe路径覆盖:选用的测试用例是:case1x=2y=0z=3case2x=1y=0z=1case3x=2y=1z=1case4x=3y=0z=1可分别执行路径ace、abd、acd和abe二)三角形问题在三角形计算中,要求输入三角型的三个边长:A、B和C。当三边不可能构成三角形时提示错误,可构成三角形时计算三角形周长。若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等边三角形”。画出程序流程图、控制流程图,找出基本测试路径,编写测试用例。程序代码及画图自己完成。测试用例abc测试路径预期输出Test1101010根据图写出路径等边三角形Test210105根据图写出路径等腰三角形Test3345根据图写出路径一般三角形Test4412根据图写出路径非三角形三、讨论与总结实验二黑盒测试技术(实验日期:12(2)11(3)班9月29日-10月10日)(实验日期:12(1)班9月30日-10月10日)一、实验目的1.熟悉掌握黑盒的等价划分法进行实际程序测试;2.掌握黑盒测试的边界值分析法并能进行实际程序测试;3.掌握黑盒测试的因果图法并能进行实际程序测试;4.掌握黑盒测试的场景法和决策表法并能进行实际程序测试;5.对测试用例进行优化。二、实验内容一)电话号码问题城市的电话号码由两部分组成。这两部分的名称和内容分别是:地区码:以0开头的三位或者四位数字(包括0);电话号码:以非0、非1开头的七位或者八位数字。假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。首先:划分等价类并编号输入数据有效等价类无效等价类地区码1.以0开头的3位数串2.以0开头的4位数串3.以0开头的含有非数字字符的串4.以0开头的小于3位的数串5.以0开头的大于4位的数串6.以非0开头的数串电话号码7.以非0、非1开头的7位数串8.以非0、非1开头的8位数串9.以0开头的数串10.以1开头的数串11.以非0、非1开头的含有非法字符7或者8位数串12.以非0、非1开头的小于7位数串以非0、非1开头的大于8位数串其次:为有效等价类设计测试用例测试数据期望结果覆盖范围01023145678显示有效输入1、80232234567显示有效输入1、705546863670显示有效输入2、7085123145678显示有效输入2、8最后:为每一个无效等价类至少设计一个测试用例测试数据期望结果覆盖范围0a3423456789显示无效输入30523456789显示无效输入40123423456789显示无效输入5234123456789显示无效输入602801234567显示无效输入902812345678显示无效输入10028qw123456显示无效输入11028623456显示无效输入12028886234569显示无效输入13二)找零钱最佳组合假设商店货品价格(R)皆不大于100元(且为整数),若顾客付款在100元内(P),求找给顾客最少货币个(张)数?假定此商店的货币面值只包括:50元(N50)、10元(N10)、5元(N5)、1元(N1)四种。结合等价类划分法和边界值分析法为上述程序设计出相应的测试用例。1.分析输入的情形货品价格:R100、0R=100、R=0顾客付款:P100、R=P=100、PR2.分析输出情形N50=1、N50=01=N10=4、N10=0N5=1、N5=01=N1=4、N1=03.分析规格中每一决策点的情形,以RR1,RR2,RR3表示计算要找50,10,5元货币数时的剩余金额。R100、R=0、P100、PRRR1=50、RR2=10、RR3=54.由上述的输入/输出条件组合出可能的情形。1)R1002)R=03)0R=100,P1004)0R=100,PR5)0R=100,R=P=100,RR=506)0R=100,R=P=100,RR=497)0R=100,R=P=100,RR=108)0R=100,R=P=100,RR=99)0R=100,R=P=100,RR=510)0R=100,R=P=100,RR=411)0R=100,R=P=100,RR=112)0R=100,R=P=100,RR=05.设计测试用例1)货品价格=101货品价格非法!2)货品价格=0货品价格非法!3)货品价格=-1货品价格非法!4)货品价格=100,付款金额=101付款金额非法!5)货品价格=100,付款金额=99欠1元!6)货品价格=50,付款金额=100N50=1,N10=0,N5=0,N1=07)货品价格=51,付款金额=100N50=0,N10=4,N5=1,N1=48)货品价格=90,付款金额=100N50=0,N10=1,N5=0,N1=09)货品价格=91,付款金额=100N50=0,N10=0,N5=1,N1=410)货品价格=95,付款金额=100N50=0,N10=0,N5=1,N1=011)货品价格=96,付款金额=100N50=0,N10=0,N5=0,N1=412)货品价格=99,付款金额=100N50=0,N10=0,N5=0,N1=113)货品价格=100,付款金额=100N50=0,N10=0,N5=0,N1=0三、讨论与总结实验三单元测试(实验日期:12(2)11(3)班10月10日-10月13日)(实验日期:12(1)班10月10日-10月14日)一、实验目的1.熟练掌握面向对象单元测试驱动程序和桩程序的编写。2.了解Junit4安装过程,进行安装实验。3.掌握Junit4的使用方法。4.能够使用Junit4进行单元测试。二、实验内容有一数据处理小系统,框架结构如图:对下面给出的部分单元进行面向对象单元测试驱动框架的设计及单元测试。RootModule.java,DataQuery.java,DataCalculated.java,IsPrimes.java,PerfectNumber.java,Factorial.java,DataSum.java第一题:(Factorial.java)//求阶乘模块publicclassFactorial{publiclongnumFactorial(intargs){longjc;for(inti=1;i=args;i++){jc=1;jc+=i;}returnjc;}}驱动模块:publicclassDrive1{publicstaticvoidmain(String[]args){Scannerin=newScanner(System.in);Factorialqjc=newFactorial();System.out.println(您需要求的阶乘N为:);主模块(RootModule)ava)数据查询(DataQuery)数据计算(DataCalculated)查素数(IsPrimes)查完全数(PerfectNumber)求阶乘(Factorial)求数据和(DataSum)inty=in.nextInt();System.out.println(您所求+y+的阶乘为:+qjc.numFactorial(y));}}求阶乘模块中:jc=1;语句位置有错和jc+=i;语句应改为jc*=i;第二题:DataCalculated.java//数值计算模块importjava.util.Scanner;publicclassDataCalculated{publicDataCalculated(){System.out.println(请输入您的选择:1--求阶乘,2--求数据和);Scannerin=newScanner(System.in);intx=in.nextInt();switch(x){case1:{System.out.println(您需要求的阶乘N为:);inty=in.nextInt();Factorialqjc=newFactorial();System.out.println(您所求+y+的阶乘为:+qjc.numFactorial(y));break;}case2:{DataSumdataSum1=newDataSum(100);System.out.println(1--100的和为:+dataSum1.dataSum(100));break;}}}}编写相应的桩模块及驱动模块进行单元测试驱动模块:publicclassDrive1{publicstaticvoidmain(String[]args){newDataCalculated();}}求阶乘桩模块:publicclassStake1{publicvoidspeak(){System.out.println(本桩模块为求阶乘!);}}求和桩模块:publicclassStake1{publicvoidspeak(){System.out.println(本桩模块为求和!);}}三、讨论与总结实验四集成测试(实验日期:12(2)11(3)班10月13日)(实验日期:12(1)班10月14日)一、实验目的1.掌握集成测试策略;2.掌握集成测试的方法;二、实验内容使用单元测试完成的模块按下图结构进行自顶向下集成测试方法和自底向上集成测试方法进行集成测试。(要求:根据集成测试原理分别设计驱动程序d和桩模块s测试用例,根据设计的测试用例进行测试。)三、讨论与总结RootModuleDataCcalculatedFactorialDataQueryIsPrimesDataSumPerfectNumber实验五系统测试(实验日期:12(2)11(3)班10月20日)(实验日期:12(1)班10月21日)一、实验目的1.能够运用黑盒测试方法设计测试用例。2.了解系统测试软件;3.熟悉掌握测试案例设计方法。二、实验内容例题:聊天软件的系统测试选择聊天软件的2~3个重要的功能进行测试。建议系统测试进行浏览器兼容性测试、分辨率配置测试和功能测试。功能测试的内容包括登录、联系人列表、两人对话。(要求:自己选择相关系统,根据黑盒测试方法设计测试用例,主要考虑等价类和边界值方法。根据设计的测试用例进行测试。)三、讨论与总结