练习04

  • 格式:doc
  • 大小:378.50 KB
  • 文档页数:7

习题040401 逻辑路径覆盖法是白盒测试用例的重要设计方法,其中语旬覆盖法是较为常用的方法,针对下面的语句段,采用语句覆盖法完成测试用例设计,测试用例见下表,对表中的空缺项(True或者False),正确的选择是(06S60)。

语句段:if(A&&(B||C)) x=1;else x=0;用例表:A. ①TRUE ②FALSE ③TRUEB. ①TRUE ②FALSE ③FALSEC. ①FALSE ②FALSE ③TRUED. ①TRUE ②TRUE ③FALSE0402 针对以下程序段,对于(A,B,C)的取值,以下( )测试用例能够满足语句覆盖的要求。

IF((A+10)=2 OR (B-20)<3) THEN C=0IF((A+30)>10 AND (C-30)<0) THEN B=30A. (2,30,1)B.(-20,0,30)C. (-30,20,30)D. (2,20,3)0403 为以下程序段,设计足够的测试用例满足语句覆盖。

if (x>8&&y>5) {if(x>16||y>10) s1;}else {if (x>0||y>0) s2;else s3;0404 针对下列程序段,需要()个测试用例才可以满足语句覆盖的要求。

switch ( value ){case 0: other = 30; break;case 1: other = 50; break;case 2: other = 300;case 3: other = other / value; break;default: other = other * value;}A.2 B.3 C.4 D.50405 对下面的个人所得税程序中,满足语句覆盖测试用例的是( ) 。

if (income < 800) tarrate = 0else if (income <= 1500) tarrate = 0.05else if (income < 2000) tarrate = 0.08else tarrate = 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)0406 阅读下列流程图:当用判定覆盖法进行测试时,至少需要设计( ) 个测试用例。

A.2 B.4 C.6 D.804070408 针对下列C语言程序段,对于(MaxNum,Type),至少需要()个测试用例能够满足判定覆盖的要求。

while(MaxNum-->0){if(10==Type)x=y*2;elseif(100==Type)x=y+10;elsex=y-20;}A.5 B.4 C.3 D.20409 为以下程序段,设计足够的测试用例满足判定覆盖。

if (x>8&&y>5) {if(x>16||y>10) s1;}else {if (x>0||y>0) s2;else s3;0410 针对程序段:IF((X>10) AND (Y<20))THEN W=W/A , 对于(X,Y)的取值,以下( )组测试用例能够满足判定覆盖的要求。

A. (30,15) (40,10)B. (3,0) (30,30)C. (5,25) (10,20)D. (20,10) (1,100)0411 假设A, B 为布尔变量,对于逻辑表达式(A&&B||C),需要()个测试用例才能完成判定覆盖(DC) 。

A.2B.3C.4D.50412 针对下列程序段,需要()个测试用例可以满足分支覆盖的要求。

int IsLeap(int year) {if ( year % 4 == 0 ) {if ( year % 100 == 0 ) {if ( year % 400 == 0 ) leap = 1;else leap = 0; } else leap = 1; }else leap = 0;return leap; }A.3 B.4 C.6 D.70413 针对以下C 语言程序段,假设sta[10]= -1,对于x 的取值,需要( )个测试用例能够满足分支覆盖的要求。

int MathMine(int x) {int m=0;int i;for(i=x-1;i<=x+1;i++) {if(i<0) continue;if(i >31) break;if(sta[i]==-1) m++;}return m;}A.3B.4C.5D.60414 以下代码由C语言书写,在输入三个整数后,能够输出最大数和最小数。

int main(void) {int a,b,c,max,min;printf(“input three number: ”);scanf(“%d%d%d”,&a,&b,&c);if(a>b) /*判断1*/{ max=a; min=b; }else{ max=b; min=a; }if(max<c) /*判断2*/max=c;else if(min>c) /*判断3*/min=c;printf(“max=%d\nmin=%d\n ”,max,min);return 0; }问题1:请画出该程序的控制流图,并分析该控制流图中有多少条线性独立路径(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)=20 OR (B+20)>10) THEN C=0IF((A-30)<10 AND (B-30)<0) THEN B=30① A=50 B=-10 ② A=40 B=40③ A=30 B=-10 ④ A=30 B=30A. ①②B. ③④C. ①④D. ②④0416 对下面的个人所得税程序中,满足条件覆盖测试用例的是( )。

if (income < 800) tarrate = 0else if (income <= 1500) tarrate = 0.05else if (income < 2000) tarrate = 0.08else tarrate = 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)0417 针对程序段:if((x>10) && (y<20)) w=10/x;else w=10*y;if((x==0) || (y>0)) w=20-x;else w=20+y;对于(X,Y)的取值,请设计最少的测试用例能够满足条件覆盖的要求。

0418为以下所示的程序段设计一组测试用例,要求满足条件覆盖,并画出相应的程序流程图。

void DoWork (int x,int y,int z){ int k=0,j=0;if ( (x>3)&&(z<10) ){ k=x*y-1;j=sqrt(k); //语句块1}if ( (x==4)||(y>5) ){j=x*y+10;} //语句块2j=j%3; //语句块3 }0419 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

程序如下,请按要求设计测试用例。

要求:1、画出控制流图;2、分析复杂性;3、设计满足条件覆盖的测试用例。

4、给出基本路径并设计测试用例;#include”stdio.h”main(){ char c;int letters=0,space=0,digit=0,other=0;printf(“请输入一行字符:\n”);while((c=getchar())!=’\n’){if(c>=’a’&&c<=’z’||c>=’A’&&c<=’Z’)letters++;else if(c==’ ’)space++;else i f(c>=’0’&&c<=’9’)digit++;elseother++}printf(“其中:字母数=%d,空格数=%d ,数字数=%d ,其它字符数=%d\n”,letters,space,digit,other);}0420 逻辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖,是设计白盒测试用例的主要方法之一。

以下代码由C 语言书写,请按要求回答问题。

void cal( int n ){ int g, s, b, q;if ( ( n > 1000 ) && ( n < 2000 ) ){ 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(条件覆盖)时所需的逻辑条件。

⏹问题3:假设n 的取值范围是0 < n < 3000,请用逻辑覆盖法为n 的取值设计测试用例,使用例集满足基本路径覆盖标准。