您好,欢迎访问三七文档
白盒测试实验报告班级:2011级5班学号:201100300212姓名:王桐日期:2014/4/8一、程序代码importjava.util.Scanner;publicclass日历{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubintYear,W;intMonth,Day;Scannerscan=newScanner(System.in);//System.out.print(Pleaseentertheyear);Year=scan.nextInt();//System.out.println(pleaseinputthemonth);Month=scan.nextInt();/*if(Month=0||Month=13){System.out.println(pleaseinputthemonthagain);Month=scan.nextInt();}*///System.out.println(pleaseinputtheday);Day=scan.nextInt();/*if(Day=0||Day=31){System.out.println(pleaseinputthedateagain);Day=scan.nextInt();}*///System.out.println(Y);inttemp=((Year-1)+(Year-1)/4-(Year-1)/100+(Year-1)/400)%7;W=temp%7+1;intcount=W;intday=0;for(intm=1;m=Month-1;m++)//iformonth;{if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){day=31;}elseif(m==4||m==6||m==9||m==11){day=30;}elseif(m==2){if((Year%4==0&&Year%100!=0)||(Year%100==0&&Year%400==0))day=29;elseday=28;}count+=day;}W=(count+Day-1)%7;System.out.println(Year+年+Month+月+Day+日+是星期);switch(W){case1:System.out.println(一);break;case2:System.out.println(二);break;case3:System.out.println(三);break;case4:System.out.println(四);break;case5:System.out.println(五);break;case6:System.out.println(六);break;case0:System.out.println(天);break;}}}二、程序流程图入口m=month-1NYm==1||m==3||m==5||m==7||m==8||m==10||m==12YCount+=31m==4||m==6||m==9||m==11NCount+=30Ym=2NYYear%4==0&&Year%100!=0)||(Year%100==0&&Year%400==0Count+=28Count+=29YNm++W=(count+Day-1)%7;1234567891011三、程序控制流图四、测试用例1.条件覆盖该程序的判定条件共有四个,分别是for循环中的三个月份判定,和闰年判定,所以为了满足条件覆盖即使每个条件的可能取值至少满足一次。所以可以取的测试输入用例:只要测试用例中的月输入12那么关于月份的判断都可以满足条件覆盖;问题的关键在于通过闰年条件的判断,即(Year%4==0&&Year%100!=0)||(Year%100==0&&Year%400==0)判断ayear%4==0byear%100!=0cyear%100==0dyear%400==0测试用例取值条件For内关于闰年路径2012121Ta,Tb,Fc,Fd7-8-9-112000121Ta,Fb,Tc,Td7-8-9-112013121Fa,Tb,Fc,Fd7-8-10-112.判定覆盖为了满足判定覆盖即使每个判断的取真分支和取假分支至少经历一次,即判断真假值均曾被满足。所以可以取的测试输入用例:关于for循环中月份的判断,为了使真假分支至少经历一次,那么月份的取值可以为4-12的值,而为了满足闰年的条件判定需要的测试用例如表格所示:1234591087616(Year%4==0&&Year%100!=0)||(Year%100==0&&Year%400==0)判断ayear%4==0byear%100!=0cyear%100==0dyear%400==0测试用例判定条件For内关于闰年路径201241T7-8-9-11201341F7-8-10-113.判定-条件覆盖判定-条件覆盖既要满足判定覆盖又要满足条件覆盖,那么相应的取值:关于for循环中月份的判断,为了使真假分支至少经历一次,同时使每个条件的可能取值至少满足一次月份可以取值为12,则关于判定-条件覆盖的测试输入用例为:测试用例取值条件判定条件For内关于闰年路径2012121Ta,Tb,Fc,FdT7-8-9-112013121Fa,Tb,Fc,FdF7-8-10-114.路径覆盖为了满足路径覆盖即覆盖程序中的所有可能的执行路径。为了覆盖for循环中关于月份判定的部分,月份取值可以为4,而关于闰年的判定,可以分别取不同取值来区分。关于路径覆盖的测试用例为:测试用例覆盖条件覆盖路径201241Ta,Tb,Fc,Fd1-2-4-11-1-2-5-7-8-9-11-1-2-4-11-1-2-5-6-11201341Fa,Tb,Fc,Fd1-2-4-11-1-2-5-7-8-10-11-1-2-4-11-1-2-5-6-11五、测试体会
本文标题:白盒测试实验报告
链接地址:https://www.777doc.com/doc-5748201 .html