网友您好, 请在下方输入框内输入要搜索的题目:
题目内容
(请给出正确答案)
【说明】逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C 语言编写的程序,按要求回答问题。
问题1:(4分)请给出满足100%DC(判定覆盖)所需的逻辑条件。
问题2:(8分)请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。问题3:(3分)请给出【问题2】中控制流图的线性无关路径。
问题1:(4分)请给出满足100%DC(判定覆盖)所需的逻辑条件。
问题2:(8分)请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。问题3:(3分)请给出【问题2】中控制流图的线性无关路径。
参考答案
参考解析
解析:问题1:
1、*p == ’r’2、*p != ’r’3、*p >= ’0’&& *p <= ’9’4、*p < ’0’|| *p > ’9’5、*p == ’f’6、*p != ’f’7、m != fmode + sizeof(fmode)8、m == fmode + sizeof(fmode)
问题2:
(1) 控制流图如下图所示:
(2)、V(G)=5+1=6问题3:
(1) 1-2-4-5-6-10-11-2... (2) 1-2-3-4-5-6-10-11-2... (3) 1-2-4-7-8-10-11-2...(4) 1-2-4-5-7-8-10-11-2… (5) 1-2-4-7-9-10-11-12(6) 1-2-4-5-7-9-10-11-12
【解析】
问题1:
本小题考查白盒测试中的判定覆盖法。判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得-次 “真”值和“假”值,从而使程序的每一个分支至少都通过一次。本题中程序一共有4个判定,所以满足判定覆盖一共就需要8个逻辑条件,这些条件详见上述答案。问题2:
解析:本题考查白盒测试方法中的基本路径法。涉及到的知识点包括:根据代码绘制控制流图、计算环路复杂度。控制流图是描述程序控制流的一种图示方法。其基本符号有圆圈和箭线:圆圈为控制流图中的一个结点,表示一个或多个无分支的语句;带箭头的线段称为边或连接,表示控制流。基本结构如下所示:
其中要特别注意的是,如果判断中的条件表达式是复合条件,即条件表达式是由一个或多个逻辑运算符连接的逻辑表达式,则需要改变复合条件的判断为一系列之单个条件的嵌套的判断。环路复杂度用来衡量一个程序模块所包含的判定结构的复杂程度。环路复杂度等于右图中的判定的节点个数加1。图中判定节点个数为5,所以V(G)=5+1=6。控制流程图的环路复杂性 V(G)一共有以下三种方法,但是最后一种最好用,不易出错。(1)控制流程图中的区域个数。(2)边数-结点数+2。(3)判定数+1。问题3:
本小题考查白盒测试用例设计方法之基本路径法。涉及到根据控制流图和环路复杂度给出线性无关路径。线性无关路径:指包含一组以前没有处理的语句或条件的路径。从控制流图上来看,一条线性无关路径是至少包含一条在其他线性无关路径中从未有过的边的路径。程序的环路复杂度等于线性无关路径的条数,所以本题中有6条线性无关路径。这6条路径组成了问题2中控制流图的一个基本路径集。只要设计出的测试用例能确保这些基本路径的执行,就可以使程序中的每个可执行语句至少执行一次,每个条件的取真和取假分支也能得到测试。需要注意的是,基本路径集不是唯一的,对于给定的控制流图,可以得到不同的基本路径集。
1、*p == ’r’2、*p != ’r’3、*p >= ’0’&& *p <= ’9’4、*p < ’0’|| *p > ’9’5、*p == ’f’6、*p != ’f’7、m != fmode + sizeof(fmode)8、m == fmode + sizeof(fmode)
问题2:
(1) 控制流图如下图所示:
(2)、V(G)=5+1=6问题3:
(1) 1-2-4-5-6-10-11-2... (2) 1-2-3-4-5-6-10-11-2... (3) 1-2-4-7-8-10-11-2...(4) 1-2-4-5-7-8-10-11-2… (5) 1-2-4-7-9-10-11-12(6) 1-2-4-5-7-9-10-11-12
【解析】
问题1:
本小题考查白盒测试中的判定覆盖法。判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得-次 “真”值和“假”值,从而使程序的每一个分支至少都通过一次。本题中程序一共有4个判定,所以满足判定覆盖一共就需要8个逻辑条件,这些条件详见上述答案。问题2:
解析:本题考查白盒测试方法中的基本路径法。涉及到的知识点包括:根据代码绘制控制流图、计算环路复杂度。控制流图是描述程序控制流的一种图示方法。其基本符号有圆圈和箭线:圆圈为控制流图中的一个结点,表示一个或多个无分支的语句;带箭头的线段称为边或连接,表示控制流。基本结构如下所示:
其中要特别注意的是,如果判断中的条件表达式是复合条件,即条件表达式是由一个或多个逻辑运算符连接的逻辑表达式,则需要改变复合条件的判断为一系列之单个条件的嵌套的判断。环路复杂度用来衡量一个程序模块所包含的判定结构的复杂程度。环路复杂度等于右图中的判定的节点个数加1。图中判定节点个数为5,所以V(G)=5+1=6。控制流程图的环路复杂性 V(G)一共有以下三种方法,但是最后一种最好用,不易出错。(1)控制流程图中的区域个数。(2)边数-结点数+2。(3)判定数+1。问题3:
本小题考查白盒测试用例设计方法之基本路径法。涉及到根据控制流图和环路复杂度给出线性无关路径。线性无关路径:指包含一组以前没有处理的语句或条件的路径。从控制流图上来看,一条线性无关路径是至少包含一条在其他线性无关路径中从未有过的边的路径。程序的环路复杂度等于线性无关路径的条数,所以本题中有6条线性无关路径。这6条路径组成了问题2中控制流图的一个基本路径集。只要设计出的测试用例能确保这些基本路径的执行,就可以使程序中的每个可执行语句至少执行一次,每个条件的取真和取假分支也能得到测试。需要注意的是,基本路径集不是唯一的,对于给定的控制流图,可以得到不同的基本路径集。
更多 “【说明】逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C 语言编写的程序,按要求回答问题。 问题1:(4分)请给出满足100%DC(判定覆盖)所需的逻辑条件。 问题2:(8分)请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。问题3:(3分)请给出【问题2】中控制流图的线性无关路径。” 相关考题
考题
论述题3:针对以下C语言程序,请按要求回答问题下面是一个简单的C语言程序:(1)画出该函数的程序流程图。(2)设计测试用例,分别使函数的各种逻辑覆盖率尽量达到100%。如果认为该函数的某种逻辑覆盖率无法达到100%,需要说明原因。(3)设计特殊的测试用例,说明各种逻辑覆盖之间的关系。
考题
阅读下列说明,回答问题1至问题3,将解答填入的对应栏内。[说明]逻辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖,是设计白盒测试用例的主要方法之。以下代码由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;}请找出程序中所有的逻辑判断语句。请分析并给出分别满足100%DC(判定覆盖)和100%CC(条件覆盖)时所需的逻辑条件。假设n的取值范围是0<n<3000,请用逻辑覆盖法为n的取值设计测试用例,使用例集满足基本路径覆盖标准。请帮忙给出每个问题的正确答案和分析,谢谢!
考题
● 白盒测试也被称为结构测试。将软件看成透明的白盒,根据程序的内部结构和逻辑来设计测试用例,对程序的路径和过程进行测试,检查是否满足设计的需要。下列( )不是白盒测试设计技术。( )A.条件覆盖 B.基本路径测试C.语句覆盖 D.边界值分析
考题
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。【问题1] (6分)请给出满足100%DC(判定覆盖)所需的逻辑条件。【问题2] (10分)请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。【问题3](4分)请给出问题2中控制流图的线性无关路径。
考题
逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
getit( int m)
{
int i, k;
k=sqrt(m);
for ( i=2; i<=k; i++)
if (m % i=0) break;
if ( i>=k+1 )
printf( "%d is a selected number\n", m);
else
printf( "%d is not a selected number\n", m );
}
7、请找出程序中所有的逻辑判断子语句。(5分)
8、请将满足100%DC(判定覆盖)所需的逻辑条件填入下表。(8分)
9、请画出上述程序的控制流图,并计算其控制流图的环路复杂度VG.。假设函数getit的参数m取值范围是150<m<160,请使用基本路径测试法设计测试用例,将参数m的取值填入下表,使之满足基本路径覆盖要求。(4分)
考题
阅读下列C程序,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C 语言编写的程序,按要求回答问题。
问题1:(6分) 请针对上述C程序,给出满足100%DC(判定覆盖)所需的逻辑条件。
问题2:(7分)请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。
问题3:(3分)请给出【问题2】中控制流图的线性无关路径。
考题
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
逻辑覆盖法是设计白盒测试用例的主要方法之一,它通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
gz_open (const char*mode) { char*p= (char*)mode; //1 char fmode[4]; char*m=fmode; char smode= '\0'; charlevel='\0\'; intstrategy=0; do { if (*p=='r') //2 smode -'r'; //3 if (*p>='O' //6 } else if (*p=='f') { //7 strategy=1; //8 }else { //9 *m++=*p; } *p++; //10 }while (m!=fmode+sizeof (fmode)); //11 }
1、请给出满足100%DC(判定覆盖)所需的逻辑条件。
2、请画出上述程序的控制流图,并计算其控制流图的环路复杂度VG.。
3、假设函数gz_open的参数mode是由26个小写字母'a'-'z'、数字'0'-'9'以及空格组成的字符串,请使用基本路径测试法构造1个测试用例,使之覆盖所有基本路径。
考题
阅读下列Java程序,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由Java语言编写的程序,按要求回答问题。
问题1:(2分) 请简述基本路径测试法的概念。
问题2:(8分)请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。
问题3:(3分)请给出【问题2】中控制流图的线性无关路径。
考题
阅读下列程序,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C 语言编写的程序,按要求回答问题。
问题1:(5分)请给出满足100%DC(判定覆盖)所需的逻辑条件。
问题2:(7分)请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。
问题3:(3分)请给出【问题2】中控制流图的线性无关路径。
考题
阅读下列程序,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C 语言编写的程序,按要求回答问题。
main( ){int i,n; //1for(i=1;i
考题
逻辑覆盖法是设计白盒测试用例的主要方法之一,它通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
gz_open (const char*mode)
{
char*p= (char*)mode; //1
char fmode[4];
char*m=fmode;
char smode= '\0';
char level='\0\';
int strategy=0;
do {
if (*p=='r') //2
smode - 'r'; //3
if (*p>='O' //6
} else if (*p=='f') { //7
strategy=1; //8
}else { //9
*m++=*p;
}
*p++; //10
}while (m!=fmode+sizeof (fmode)); //11
} //12
3、请给出满足100%DC(判定覆盖)所需的逻辑条件。(6分)
4、请画出上述程序的控制流图,并计算其控制流图的环路复杂度VG.。(6分)
5、假设函数gz_open的参数mode是由26个小写字母'a'-'z'、数字'0'-'9'以及空格组成的字符串,请使用基本路径测试法构造1个测试用例,使之覆盖所有基本路径。(6分)
考题
逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
int XOR(char * filename,unsigned long key){ FILE * input = NULL , *output =NULL; //i char * outfilename = NULL; int len = strlen(filename); unsigned char buffer; if( (filename[len-2] == '.') //4 strcpy(outfilename, filename); outfilename[len-2] = '\0'; } else{ //5 outfilename = new char[len+5]; strcpy(outfilename, filename); strncat(outfilename,".c",2); } input =fopen(filename,"rb"); if( input == NULL) { //6 cout << "Error opening file " << filename << endl; //7 delete [] outfilename; outfilename = NULL; return 1; } output =fopen(outfilename,"wb"); if( output == NULL ) { //8 cout << "Error creating output file " << outfilename << endl; //9 delete [] outfilename; outfilename = NULL; return 1; } while( ! feof(input) ) { //10 if(fread( //13 outfilename = NULL; fclose(input); fclose(output); return 1; } } else{ //14 buffer ^= key; fwrite( } } fclose(input); //15 fclose(output); delete [] outfilename; return 0; }
请给出满足100%DC(判定覆盖)所需的逻辑条件。
考题
阅读下列说明,回答问题1至问题3,将解答填入的对应栏内。[说明]逻辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖,是设计白盒测试用例的主要方法之。以下代码由C浯言书写,请按要求回答问题。voidcal(intn){intg,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;}13、 [问题1](3分)请找出程序中所有的逻辑判断语句。14、 [问题2](6分)请分析并给出分别满足100%DC(判定覆盖)和100%CC(条件覆盖)时所需的逻辑条件。15、 [问题3](6分)假设n的取值范围是0<n<3000,请用逻辑覆盖法为n的取值设计测试用例,使用例集满足基本路径覆盖标准。
考题
阅读下列说明,回答问题l至问题3,将解答或相应的编号填入对应栏内。[说明] 逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。 getit( int m) { int i, k; k=sqrt(m); for ( i=2; i<=k; i++) if (m % i=0) break; if ( i>=k+1 ) printf( "%d is a selected number\n", m); else printf( "%d is not a selected number\n", m ); }10、请找出程序中所有的逻辑判断子语句。11、请将满足100%DC(判定覆盖)所需的逻辑条件填入下表。
12、请画出上述程序的控制流图,并计算其控制流图的环路复杂度VG.。假设函数getit的参数m取值范围是150<m<160,请使用基本路径测试法设计测试用例,将参数m的取值填入下表,使之满足基本路径覆盖要求。
考题
【说明】逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C 语言编写的程序,按要求回答问题。 main( ){int i,n; //1for(i=1;i
考题
阅读下列说明,回答问题。
【说明】
逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
int XOR(char * filename,unsigned long key){ FILE * input = NULL , *output =NULL; //i char * outfilename = NULL; int len = strlen(filename); unsigned char buffer; if( (filename[len-2] == '.') //4 strcpy(outfilename, filename); outfilename[len-2] = '\0'; } else{ //5 outfilename = new char[len+5]; strcpy(outfilename, filename); strncat(outfilename,".c",2); } input =fopen(filename,"rb"); if( input == NULL) { //6 cout << "Error opening file " << filename << endl; //7 delete [] outfilename; outfilename = NULL; return 1; } output =fopen(outfilename,"wb"); if( output == NULL ) { //8 cout << "Error creating output file " << outfilename << endl; //9 delete [] outfilename; outfilename = NULL; return 1; } while( ! feof(input) ) { //10 if(fread( //13 outfilename = NULL; fclose(input); fclose(output); return 1; } } else{ //14 buffer ^= key; fwrite( } } fclose(input); //15 fclose(output); delete [] outfilename; return 0; }
请画出上述程序的控制流图,并计算其控制流图的环路复杂度VG.
考题
逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
阅读下列说明,回答问题。 【说明】 逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。 int XOR(char * filename, unsignedlong key){ FILE * input = NULL , *output =NULL; //i char * outfilename = NULL; int len = strlen(filename); unsigned char buffer; if( (filename[len-2] == '.') //4 strcpy(outfilename, filename); outfilename[len-2] = '\0'; } else{ //5 outfilename = new char[len+5]; strcpy(outfilename, filename); strncat(outfilename,".c",2); } input =fopen(filename,"rb"); if( input == NULL) { //6 cout << "Error opening file " << filename << endl; //7 delete [] outfilename; outfilename = NULL; return 1; } output =fopen(outfilename,"wb"); if( output == NULL ) { //8 cout << "Error creating output file " << outfilename << endl; //9 delete [] outfilename; outfilename = NULL; return 1; } while( ! feof(input) ) { //10 if(fread( //13 outfilename = NULL; fclose(input); fclose(output); return 1; } } else{ //14 buffer ^= key; fwrite( } } fclose(input); //15 fclose(output); delete [] outfilename; return 0; }
请给出问题2中控制流图的线性无关路径。
考题
阅读下列说明,回答问题。 【说明】 逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。 int XOR(char * filename, unsigned long key){ FILE * input = NULL , *output = NULL; //1 char * outfilename = NULL; int len = strlen(filename); unsigned char buffer; if( (filename[len-2] == '.') //4 strcpy(outfilename, filename); outfilename[len-2] = '\0'; } else{ //5 outfilename = new char[len+5]; strcpy(outfilename, filename); strncat(outfilename,".c",2); } input = fopen(filename,"rb"); if( input == NULL) { //6 cout << "Error opening file " << filename << endl; //7 delete [] outfilename; outfilename = NULL; return 1; } output = fopen(outfilename,"wb"); if( output == NULL ) { //8 cout << "Error creating output file " << outfilename << endl; //9 delete [] outfilename; outfilename = NULL; return 1; } while( ! feof(input) ) { //10 if( fread( //13 outfilename = NULL; fclose(input); fclose(output); return 1; } } else{ //14 buffer ^= key; fwrite( } } fclose(input); //15 fclose(output); delete [] outfilename; return 0; }4.1、请给出满足100%DC(判定覆盖)所需的逻辑条件。(3分)4.2、请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。(7分)4.3、请给出问题2中控制流图的线性无关路径。(5分)
考题
逻辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖,以下描述正确的是()A、语句覆盖的覆盖程度最弱B、采用条件判定组合覆盖的方法可以发现程序中全部的逻辑运算错误C、条件覆盖包含判定覆盖D、条件覆盖又称为分支覆盖
考题
单选题逻辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖,以下描述正确的是()A
语句覆盖的覆盖程度最弱B
采用条件判定组合覆盖的方法可以发现程序中全部的逻辑运算错误C
条件覆盖包含判定覆盖D
条件覆盖又称为分支覆盖
考题
单选题在动态测试过程中,测试人员利用程序内部的逻辑结构及有关信息,设计和选择测试用例,对程序所有逻辑路径及过程进行测试的方法属于()。A
白盒法B
黑盒法C
条件覆盖法D
经验推测法
热门标签
最新试卷