习题010401逻辑路径覆盖法是白盒测试用例的重要设计方法,其中语旬覆盖法是较为常用的方法,针对下面的语句段,采用语句覆盖法完成测试用例设计,测试用例见下表,对表中的空缺项(True或者False),正确的选择是()。语句段:if(A&&(B||C))x=1;elsex=0;用例表:用例1用例2ATRUEFALSEB①trueFALSECTRUE②trueA&&(B||C)③trueFALSEA.①TRUE②FALSE③TRUEB.①TRUE②FALSE③FALSEC.①FALSE②FALSE③TRUED.①TRUE②TRUE③FALSE0402针对以下程序段,对于(A,B,C)的取值,以下()测试用例能够满足语句覆盖的要求。IF((A+10)=2OR(B-20)3)THENC=0IF((A+30)10AND(C-30)0)THENB=30A.(2,30,1)B.(-20,0,30)C.(-30,20,30)D.(2,20,3)0403为以下程序段,设计足够的测试用例满足语句覆盖。if(x8&&y5){if(x16||y10)s1;}输入数据条件预期结果A=TRUE,B=TRUE,C=TRUETTx=1A=F,B=F,C=FFTx=0输入数据条件预期结果A=-8,B=20,C=30TTC=0,B=30A=-20,B=0,C=30TTC=0,B=30else{if(x0||y0)s2;elses3;0404针对下列程序段,需要()个测试用例才可以满足语句覆盖的要求。switch(value){case0:other=30;break;case1:other=50;break;case2:other=300;case3:other=other/value;break;default:other=other*value;}A.2B.3C.4D.5输入数据条件预期结果Value=0TFFFother=30Value=1FTFFother=50Value=3FFTFother=100Value=4FFFTother=other/40405对下面的个人所得税程序中,满足语句覆盖测试用例的是()。if(income800)tarrate=0elseif(income=1500)tarrate=0.05elseif(income2000)tarrate=0.08elsetarrate=0.1A.income=(800,1500,2000,2001)B.income=(800,801,1999,2000)C.income=(799,1499,2000,2001)D.income=(799,1500,1999,2000)输入数据条件预期结果Income=799TFFFtarrate=0Income=1500FTFFtarrate=0.05Income=1999FFTFtarrate=0.08Income=2000FFFTtarrate=0.10406阅读下列流程图:输入数据条件预期结果x=17,y=11TTTS1x=7,y=4FFTS2x=-7,y=4FFFS3当用判定覆盖法进行测试时,至少需要设计()个测试用例。A.2B.4C.6D.8输入数据条件预期结果x=0,y=0,d=0FTd=0X=0,y=2,FFd=d/2x=2,y=0TTd=d/2x=1,y=2TFd=d/(1*2)0407数据输入条件预期结果b=0,a=0TTresult=0b=0,a=-2TFresult=-1b=1,a=1FTTresult=-1b=1,a=-2FTFresult=1b=0,a=0FFTresult=1b=0,a=-2FFFresult=-10408针对下列C语言程序段,对于(MaxNum,Type),至少需要()个测试用例能够满足判定覆盖的要求。while(MaxNum--0){if(10==Type)x=y*2;elseif(100==Type)x=y+10;elsex=y-20;}A.5B.4C.3D.2数据输入条件预期结果type=10TFFx=y*2type=100FTFx=y+10type!=10&&type!=100FFTx=y-200409为以下程序段,设计足够的测试用例满足判定覆盖。if(x8&&y5){if(x16||y10)s1;}else{if(x0||y0)s2;elses3;0410针对程序段:IF((X10)AND(Y20))THENW=W/A,对于(X,Y)的取值,以下()组测试用例能够满足判定覆盖的要求。输入数据条件预期结果x=17,y=11TTTS1x=7,y=4FFTS2x=-7,y=4FFFS3A.(30,15)(40,10)B.(3,0)(30,30)C.(5,25)(10,20)D.(20,10)(1,100)输入数据条件预期结果x=11,y=19Tw=w/ax=9,y=21F无0411假设A,B为布尔变量,对于逻辑表达式(A&&B||C),需要()个测试用例才能完成判定覆盖(DC)。A.2B.3C.4D.5输入数据条件预期结果A=T,B=T,C=TTA=T,B=F,C=TFA=T,B=F,C=FF0412针对下列程序段,需要()个测试用例可以满足分支覆盖的要求。intIsLeap(intyear){if(year%4==0){if(year%100==0){if(year%400==0)leap=1;elseleap=0;}elseleap=1;}elseleap=0;returnleap;}A.3B.4C.6D.7输入数据条件预期结果year=400TTTleap=1year=100TTFleap=0year=16TFFleap=1year=6FFFleap=00413针对以下C语言程序段,假设sta[10]=-1,对于x的取值,需要()个测试用例能够满足分支覆盖的要求。intMathMine(intx){intm=0;inti;for(i=x-1;i=x+1;i++){if(i<0)continue;if(i31)break;if(sta[i]==-1)m++;}returnm;}A.3B.4C.5D.6输入数据条件预期结果x=00x=330x=1110414以下代码由C语言书写,在输入三个整数后,能够输出最大数和最小数。intmain(void){inta,b,c,max,min;printf(“inputthreenumber:”);scanf(“%d%d%d”,&a,&b,&c);if(ab)/*判断1*/{max=a;min=b;}else{max=b;min=a;}if(maxc)/*判断2*/max=c;elseif(minc)/*判断3*/min=c;printf(“max=%d\nmin=%d\n”,max,min);return0;}问题1:请画出该程序的控制流图,并分析该控制流图中有多少(4)条线性独立路径(V(G)的值)。问题2:为了用分支(判定)覆盖方法测试该程序,需要设计测试用例,使其能对该程序中的每个判断语句的各种分支情况全部进行过测试。对两组输入数据(1)a=3,b=5,c=7;(2)a=4,b=6,c=5,请分别写出程序中各个判断语句的执行结果(以T表示真,以F表示假),填入答题纸的相应栏中。问题3:上述两组测试数据是否实现该程序的分支(判定)覆盖?如果能,请说明理由。如果不能,请再增设一组输入数据,使其能实现分支(判定)覆盖。0415针对以下程序段,对于(A,B)的取值,以下()测试用例能够满足条件覆盖的要求。IF((A-10)=20OR(B+20)10)THENC=0IF((A-30)10AND(B-30)0)THENB=30①A=50B=-10②A=40B=40③A=30B=-10④A=30B=30A.①②B.③④C.①④D.②④输入数据条件预期结果A=41,B=-11FFFTNOA=30,B=30TTTFC=0,B=300416对下面的个人所得税程序中,满足条件覆盖测试用例的是()。if(income800)tarrate=0elseif(income=1500)tarrate=0.05elseif(income2000)tarrate=0.08elsetarrate=0.1A.income=(799,1500,1999,2001)B.income=(799,1501,2000,2001)C.income=(800,1500,2000,2001)D.income=(800,1499,2000,2001)数据输入条件预期结果income=799TFFFtarrate=0income=1500FTFFtarrate=0.05income=1999FFTFtarrate=0.08income=2001FFFTtarrate=0.10417针对程序段:if((x10)&&(y20))w=10/x;elsew=10*y;if((x==0)||(y0))w=20-x;elsew=20+y;对于(X,Y)的取值,请设计最少的测试用例能够满足条件覆盖的要求。输入数据条件预期结果x=0,y=20FFTTFTW=20x=20,y=0TTFFTFW=200418为以下所示的程序段设计一组测试用例,要求满足条件覆盖,并画出相应的程序流程图。voidDoWork(intx,inty,intz){intk=0,j=0;if((x3)&&(z10)){k=x*y-1;j=sqrt(k);//语句块1}if((x==4)||(y5)){j=x*y+10;}//语句块2j=j%3;//语句块3}数据输入条件预期结果x=1,y=5,z=9TFFj=2x=4,y=6,z=11FTFj=34x=5,y=4,z=11FFTj=j%30419输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。程序如下,请按要求设计测试用例。要求:1、画出控制流图;2、分析复杂性;3、设计满足条件覆盖的测试用例。4、给出基本路径并设计测试用例;#include”stdio.h”main(){charc;intletters=0,space=0,digit=0,other=0;printf(“请输入一行字符:\n”);while((c=getchar())!=’\n’){if(c=’a’&&c=’z’||c=’A’&&c=’Z’)letters++;elseif(c==’’)space++;elseif(c=’0’&&c=’9’)digit++;elseother++}printf(“其中:字母数=%d,空格数=%d,数字数=%d,其它字符数=%d\n”,letters,space,digit,other);}0420逻辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖,是设计白盒测试用例的主要方法之一。以下代码由C语言书写,请按要求回答问题。voidcal(intn){intg,s,b,q;if((n1000)&&(n2000)){g=n%10;s=n%100/10;b=n/100%10;q=n/1000;if((q+g)==(s+b)){printf(%-5d,n);}}printf(\n);return;}问题1:请找出程序中所有的逻辑判断语句。问题2:请分析并给出分别满足100%DC(判定覆盖)和100%CC(条件覆盖)时所需的125379100046811TtFFFTtTt逻辑条件。问题3:假设n的取值范围是0n3000,请用逻辑覆盖法为n的取值设计测试用例,使用例集满足基本路径覆盖标准。条件覆盖CC数据输入条件预期结果N=1212TTT1212N=20FWUN=1333TTFWUN=3000TFWU判定覆盖DC数据输入条件预期结果N=1212TT1212N=1333TFWUN=3000FWU0421针对以下程序段,对于(A,B)的取值,以下()测试用例能够满足判定/条件覆盖的要求。IF((A-10