阅读下列程序,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C 语言编写的程序,按要求回答问题。

题目
阅读下列程序,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C 语言编写的程序,按要求回答问题。
main( ){int i,n; //1for(i=1;i<5;i++){ //2n=0;  if(i!=1) //3 n=n+1; //4 if(i==3) //5 n=n+1; //6  if(n==3) //7  printf("Hello!"); //8 }} //9 问题1:(4分)请给出满足100%DC(判定覆盖)所需的逻辑条件。问题2:(6分)请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。问题3:(5分)请给出【问题2】中控制流图的线性无关路径。

参考答案和解析
答案:
解析:
问题1:
1、i < 52、i >= 53、i != 14、i == 15、i == 36、i != 37、n == 38、n != 3
问题2(1) 控制流图如下图所示:



(2)V(G)=4+1=5问题3:
(1) 1-2-9 (2) 1-2-3-5-7-2... (3) 1-2-3-5-7-8-2...(4) 1-2-3-4-5-7-2… (5) 1-2-3-5-6-7-2…
【解析】
问题1:判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得-次 “真”值和“假”值,从而使程序的每一个分支至少都通过一次。本题中程序一共有4个判定,所以满足判定覆盖一共就需要8个逻辑条件,这些条件详见上述答案。问题2:
本题考查白盒测试方法中的基本路径法。涉及到的知识点包括:根据代码绘制控制流图、计算环路复杂度。控制流图是描述程序控制流的一种图示方法。其基本符号有圆圈和箭线:圆圈为控制流图中的一个结点,表示一个或多个无分支的语句;带箭头的线段称为边或连接,表示控制流。基本结构如下所示:



其中要特别注意的是,如果判断中的条件表达式是复合条件,即条件表达式是由一个或多个逻辑运算符连接的逻辑表达式,则需要改变复合条件的判断为一系列之单个条件的嵌套的判断。环路复杂度用来衡量一个程序模块所包含的判定结构的复杂程度。环路复杂度等于右图中的判定的节点个数加1。图中判定节点个数为4,所以V(G)=4+1=5。控制流程图的环路复杂性 V(G)一共有以下三种方法,但是最后一种最好用,不易出错。(1)控制流程图中的区域个数。(2)边数-结点数+2。(3)判定数+1。问题3:本小题考查白盒测试用例设计方法之基本路径法。涉及到根据控制流图和环路复杂度给出线性无关路径。线性无关路径:指包含一组以前没有处理的语句或条件的路径。从控制流图上来看,一条线性无关路径是至少包含一条在其他线性无关路径中从未有过的边的路径。程序的环路复杂度等于线性无关路径的条数,所以本题中有5条线性无关路径。这5条路径组成了问题2中控制流图的一个基本路径集。只要设计出的测试用例能确保这些基本路径的执行,就可以使程序中的每个可执行语句至少执行一次,每个条件的取真和取假分支也能得到测试。需要注意的是,基本路径集不是唯一的,对于给定的控制流图,可以得到不同的基本路径集。

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

试题一(共20分)

阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。

【说明】

逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。

int XOR(char * filename, unsigned long key){

FILE* input = NULL,*output = NULL; //1

char *outfilename = NULL;

int len = strlen(filename);

unsigned charbuffer;

if( (filename[len-2] == ‘.’) && (filename[len-l]== ‘c’)){ //2,3

outfilename = new char[len+l]; //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,”&39;wbf”);

if( utput =NULL) { //8

cout<<"Error creating output file ”<< outfilename <<endl; //9

delete []outfilename;

outfilename =NULL;

return 1;

}

while(! feof(input) ){ //10

if( fread(&buffer,sizeof(unsigned char), 1,input) != 1 ){ //11

if( ! feof(input)){ //12

delete [] outfilename; //13

outfllename = NULL;

fclose(input);

fclose(output);

return 1;

}

}

else{ //14

buffer A= key;

fwrite(&buffer,sizeof(unsigned char), 1,output);

}

}

fclose(input);

fclose(output);

delete []outfllename;

return 0;

}

【问题1】(6分)

请给出满足100%DC (判定覆盖)所需的逻辑条件。

【问题2】(10分)

请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。

【问题3】(4分)

请给出问题2中控制流图的线性无关路径。


正确答案:

试题分析

【问题1

判定覆盖:设计足够的测试用例,使得程序中的每个判定至少都获得一次“真值”或“假值”,或者说使得程序中的每一个取“真“分支和取”假“分支至少都经历一次

逻辑条件为:

filename[len-2] == .’) && filename[len-l] == c’)真,假

input = NULL真,假

output = NULL真,假

! feofinput)真,假

fread&buffer,sizeofunsigned char, 1,input != 1真,假

! feofinput)真,假

【问题2

控制流图是描述程序控制流的一种图示方法。其基本符号有圆圈和箭线:圆圈为控制流图中的一个结点,表示一个或多个无分支的语句;带箭头的线段称为边或连接,表示控制流。基本结构如下所示:

控制流程图的环路复杂性 V(G)等于:

1)控制流程图中的区域个数。

2)边数-结点数+2

3)判定数+1

VG=8

【问题3

线性无关路径是指包括一组以前没有处理的语句或条件的一条路径。从控制流图来看,一条线性无关路径是至少包含有一条在其他线性无关路径中从未有过的边的路径:

1234678910

1235678910

125678910

12568910

1256810

12568101114

12568101112

12568101113

试题答案

【问题1

filename[len-2] == .’) && filename[len-l] == c’)真,假

input = NULL真,假

output = NULL真,假

! feofinput)真,假

fread&buffer,sizeofunsigned char, 1,input != 1真,假

! feofinput)真,假

【问题2

VG=8

【问题3

1234678910

1235678910

125678910

12568910

1256810

12568101114

12568101112

12568101113

或者其它符合要求的等价的路径组合


第2题:

阅读下面的说明,回答问题1~问题4,将解答填入答题纸对应的解答栏内。

[说明]

阅读以下说明,回答问题1~问题4,将解答填入答题纸对应的解答栏内。

windows Server 2003是一个多任务多用户的操作系统,能够以集中或分布的方式实现各种应用服务器角色,是目前应用比较广的操作系统之一。

Windows内置许多应用服务功能,将下表中(1)~(5)处空缺的服务器名称填写在答题纸对应的解答栏内。

(1)


正确答案:域名(DNS)服务器
域名(DNS)服务器

第3题:

试题一(15 分)

阅读下列说明,回答问题1 至问题3,将解答填入答题纸的对应栏内。

[说明]

基本路径法设计出的测试用例能够保证在测试中程序的每一条可执行语句至少执

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

void ReadPara( CString temp )

{

if ( temp == ">=" )

m_oper.SetCurSel( 0 );

else

{

if ( temp == ">" )

m_oper.SetCurSel( 1 );

else

{

if ( temp == "==" )

m_oper.SetCurSel( 2 );

else

{

if ( temp == "<=" )

m_oper.SetCurSel( 3 );

else

{

if ( temp == "<" )

m_oper.SetCurSel( 4 );

else

m_oper.SetCurSel( 5 );

}

}

}

}

return;

}

[问题1](6 分)

请画出以上代码的控制流图。

[问题2](3 分)

请计算上述控制流图的环路复杂度 V(G)。

[问题3](6 分)

请使用基本路径测试法为变量 temp 设计测试用例,使之满足基本路径覆盖要求。


正确答案:

第4题:

阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。

【说明】

逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现

程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。

【问题1] (6分)

请给出满足100%DC(判定覆盖)所需的逻辑条件。

【问题2] (10分)

请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。

【问题3](4分)

请给出问题2中控制流图的线性无关路径。


正确答案:
本题考查白盒测试技术的应用。
【问题1】
本问题考查白盒测试用例设计方法:判定覆盖法。
判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次
“真”值和“假”值,从而使程序的每一个分支至少都通过一次。本题中程序有6个判定,
所以满足判定覆盖一共需要12个逻辑条件。
【问题2】
本问题考查白盒测试用例设计方法:基本路径法。涉及的知识点包括:根据代码绘
制控制流图、计算环路复杂度。
控制流图是描述程序控制流的一种图示方式,它由节点和定向边构成。控制流图的
节点代表一个基本块,定向边代表控制流的方向。其中要特别注意的是,如果判断中的
条件表达式是复合条件,即条件表达式是由一个或多个逻辑运算符连接的逻辑表达式,
则需要改变复合条件的判断为一系列之单个条件的嵌套的判断。本题程序中,
if((filename[len-2]==’.’)&&(filename[len.1]=’c’))这条判断语句中的判定由两个条件
组成,因此在画控制流图的时候需要拆开成两条判断语句。程序的环路复杂度等于控制
流图中判定节点的个数加1,本题控制流图I中判定节点个数为7,所以V(G)=8。
【问题3】
本问题考查白盒测试用例设计方法:基本路径法。涉及的知识点包括:根据控制流
图和环路复杂度给出线性无关路径。
线性无关路径是指包含一组以前没有处理的语句或条件的路径。从控制流图上来
看,一条线性无关路径是至少包含一条在其他线性无关路径中从未有过的边的路径。程
序的环路复杂度等于线性无关路径的条数,所以本题中应该有8条线性无关路径。
参考答案

【问题2]
环路复杂度V(G)=8。

线性无关路径:
1.1-2-3-4-6-7-8-9-10-11-12-13-10......
2.1-2-5-6-7-8-9-10-11-12-13-10.....
3.1-2-3-5-6-7-8-9-10-11-12-13-10...
4.1-2-3-4-6-8-9-10-11-12-13-10...
5.1-2-3-4-6-7-8-10-11-12-13-10....
6.1-2-3-4-6-7-8-9-10-15
7.1-2-3-4-6-7-8-9-10-11-14-10.....
8.1-2-3-4-6-7-8-9-10-11-12-10....

第5题:

阅读以下说明,回答问题1~2,将解答填入对应的解答栏内。

[说明] 某程序的功能是输入三个正整数作为边长,判断三条边构成的三角形是否等边、等腰或是一般三角形。

通过该程序的算法用等价类设计测试用例,检查逻辑覆盖标准。


正确答案:(1)划分等价类并编号见下表: (2)为合理设计等价类测试用例对于表中对应的四个合理等价类用三个测试用例覆盖见下表: (3)为每—个不合理等价类设计一个侧试用例见下表:
(1)划分等价类并编号,见下表: (2)为合理设计等价类测试用例,对于表中对应的四个合理等价类,用三个测试用例覆盖,见下表: (3)为每—个不合理等价类设计一个侧试用例,见下表:

第6题:

论述题3:针对以下C语言程序,请按要求回答问题

下面是一个简单的C语言程序:

(1)画出该函数的程序流程图。

(2)设计测试用例,分别使函数的各种逻辑覆盖率尽量达到100%。如果认为该函数的某种逻辑覆盖率无法达到100%,需要说明原因。

(3)设计特殊的测试用例,说明各种逻辑覆盖之间的关系。


正确答案:问题1: 解答: 根据源程序易得流程图如图17-7所示。 问题2: 解答: 经过分析不难知上面这个程序包含: 1)五个语句:每行一个语句。 2)三个条件:a>0;b0;c>0 3)四个分支:有两个if语句每个if语句有两个分支。 4)六个条件组合:条件表达式(a>0)‖b0)共有两个条件a>0和b0故有四个条件组合;条件表达式(c>0)只有一个条件c>0故有两个条件组合。所以该程序共有六个条件组合。 5)四条路径:从程序的入口到出口的路径共有四条分别是: Path1: 1—2—3—5—6—8 Path2: 1—2—3—5—7—8 Path3: 1—2—4—5—6—8 Path4: 1—2—4—5—7—8 这个程序有三个输入:a、b、c其输入数据组合是非常大的。下面对该程序分别应用不同的逻辑覆盖准则设计测试用例。 1.语句覆盖 根据语句覆盖准则只需要采用两个输入数据组合:(abc)=(111)、(-111)便可以把该程序的所有五个语句执行一遍。 2.分支覆盖(判定覆盖) 根据分支覆盖准则只需要采用两个输入数据组合:(abc)=(11-1)、(-111)便可以把该程序的所有四个分支走遍。但未考虑b0的情况故不满足条件覆盖。说明满足分支覆盖的测试用例未必满足条件覆盖。 3.条件覆盖 根据条件覆盖准则只需要采用两个输入数据组合:(abc)=(11-1)、(-1-11)便可以把该程序的三个条件的真假情况都覆盖到。由于表达式(a>0)‖b0)的计算值都为真不会执行else语句即不满足分支覆盖和语句覆盖。说明满足条件覆盖的未必满足分支覆盖和语句覆盖。 4.条件组合覆盖 根据条件组合的覆盖准则只需要采用四个输入数据组合:(abc)=(1-11)、(111)、(-1 1-1)、(-1-1-1)便可以把该程序的六个条件组合情况覆盖到。但执行的路径数只有2个故不满足路径覆盖。说明满足条件组合的覆盖不一定满足路径覆盖。 5.路径覆盖 根据路径覆盖的准则由图17-7可见只需要采用四个输入数据组合:(abc)=(111)、(11 -1)、(-111)、(-11-1)便可以把该程序的所有四条路径都覆盖。路径覆盖是最强的覆盖准则。
问题1: 解答: 根据源程序易得流程图,如图17-7所示。 问题2: 解答: 经过分析不难知,上面这个程序包含: 1)五个语句:每行一个语句。 2)三个条件:a>0;b0;c>0 3)四个分支:有两个if语句,每个if语句有两个分支。 4)六个条件组合:条件表达式(a>0)‖b0)共有两个条件,a>0和b0,故有四个条件组合;条件表达式(c>0)只有一个条件c>0,故有两个条件组合。所以该程序共有六个条件组合。 5)四条路径:从程序的入口到出口的路径共有四条,分别是: Path1: 1—2—3—5—6—8 Path2: 1—2—3—5—7—8 Path3: 1—2—4—5—6—8 Path4: 1—2—4—5—7—8 这个程序有三个输入:a、b、c,其输入数据组合是非常大的。下面对该程序分别应用不同的逻辑覆盖准则,设计测试用例。 1.语句覆盖 根据语句覆盖准则,只需要采用两个输入数据组合:(a,b,c)=(1,1,1)、(-1,1,1),便可以把该程序的所有五个语句执行一遍。 2.分支覆盖(判定覆盖) 根据分支覆盖准则,只需要采用两个输入数据组合:(a,b,c)=(1,1,-1)、(-1,1,1),便可以把该程序的所有四个分支走遍。但未考虑b0的情况,故不满足条件覆盖。说明满足分支覆盖的测试用例未必满足条件覆盖。 3.条件覆盖 根据条件覆盖准则,只需要采用两个输入数据组合:(a,b,c)=(1,1,-1)、(-1,-1,1),便可以把该程序的三个条件的真假情况都覆盖到。由于表达式(a>0)‖b0)的计算值都为真,不会执行else语句,即不满足分支覆盖和语句覆盖。说明满足条件覆盖的未必满足分支覆盖和语句覆盖。 4.条件组合覆盖 根据条件组合的覆盖准则只需要采用四个输入数据组合:(a,b,c)=(1,-1,1)、(1,1,1)、(-1, 1,-1)、(-1,-1,-1),便可以把该程序的六个条件组合情况覆盖到。但执行的路径数只有2个,故不满足路径覆盖。说明满足条件组合的覆盖不一定满足路径覆盖。 5.路径覆盖 根据路径覆盖的准则,由图17-7可见,只需要采用四个输入数据组合:(a,b,c)=(1,1,1)、(1,1, -1)、(-1,1,1)、(-1,1,-1),便可以把该程序的所有四条路径都覆盖。路径覆盖是最强的覆盖准则。 解析:首先根据源程序画出程序流图比较容易,然后分析学过的所有的逻辑覆盖(如语句覆盖,分支覆盖,路径覆盖等),分析针对每种逻辑覆盖的标准来设计测试用例,最后通过设计测试用例来体现各种逻辑覆盖之间的关系。

第7题:

阅读下列说明,回答问题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的取值设计测试用例,使用例集满足基本路径覆盖标准。

请帮忙给出每个问题的正确答案和分析,谢谢!


问题 1 答案解析:逻辑判断语句: 1.n>1000 2.n2000 3.(q + g)=(s + b)
逻辑判断语句: 1.n>1000 2.n2000 3.(q + g)=(s + b)

问题 2 答案解析:按照DC和CC的定义分析逻辑条件。
按照DC和CC的定义分析逻辑条件。

问题 3 答案解析:可按以下步骤完成: 1.画控制流图。 2.计算V(G)=3。 3.找出线性独立路径。 4.按路径执行过程中的逻辑条件设计相应数据。
可按以下步骤完成: 1.画控制流图。 2.计算V(G)=3。 3.找出线性独立路径。 4.按路径执行过程中的逻辑条件设计相应数据。

第8题:

试题二(共15分)

阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。

【说明】

逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。

struct _ProtobufCIntRange{

int start_value;

unsigned orig_index;

};

typedef struct _ProtobufCIntRange ProtobufCIntRange;

int int_range_lookup (unsigned n_ranges, const ProtobufCIntRange *ranges, int value){

unsigned start,n; ∥1

start=0;

n=n_ranges;

while(n>1){ //2

unsigned mid= start+ n/2;

if(value< ranges[mid].start_value){ //3

n=mid-start; //4

}

else if(value>=ranges[mid].start value+

(int)(ranges[mid+1].orig_index-ranges[mid].orig_index){ //5

unsigned new_start= mid+1; //6

n=start+n-new_start,

start = new_start;

}

else //7

return (value - ranges[mid].start_value)+ ranges[mid],orig_index;

}

if(n>0){ //8

unsigned start_orig_index= ranges[start].orig_index;

unsigned range_size=ranges[start+1].orig_index - start_orig_index;

if (ranges[start].start_value<=value

&& value< (int)(ranges[start].start_value+ range_size》 //9, 10

return (value - ranges[start].start_value)+start_orig_index; //11

}

retum -1, //12

} //13

【问题1】(5分)

请给出满足100%DC(判定覆盖)所需的逻辑条件。

【问题2】 (7分)

请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。

【问题3】(3分)

请给出【问题2】中控制流图的线性无关路径。

第9题:

阅读以下关于软件测试的说明,回答司题l至问题3,将解答填入答题纸的对应

栏内。

【说明】

使用在汽车、飞机中的嵌入式软件, 日于直接影响人的生命及财产安全,测试要求

更为严格。语句覆盖、判定覆盖、条件覆盖和MC/DC覆盖是通常对这类软件的要求。

以下是一段C语言代码,请仔细阅读并回答相关问题:

【问题1】(6分)

请根据测试要求,简要说明语句覆盖、判定覆盖、条件覆盖和MC/DC覆盖的含义。

将答案填写在答题纸的对应栏中。

【问题2】(5分)

画出以上代码的流程图,将答案填写在答题纸的对应栏中。

【问题3】(4分)

请根据【说明】中的C语言代码,计算满足MC/DC覆盖要求的用例数量及条件取

值范围,将答案填写在答题纸的对应栏中.


正确答案:
试题三分析
本题考查嵌入式软件测试的基本知识.
语句覆盖要求设计足够多的测试用例,运行被测程序,使得程序中每条语句至少被
执行一次。定覆盖(分支覆盖)要求设计足够多的测试用例,运行被测程序,使得程序
中的每个判断的“真”和“假”都至少被执行一次。条件覆盖要求设计足够多的测试用
例,运行被测程序,使得判定中的每个条件获得各种可能的结果,即每个条件至少有一
次为真值,有一次为假值。MC/DC覆盖要求每个条件的取值都有覆盖,每个判定值都有
覆盖且每个条件都能独立影响判定结果,各覆盖率的含义如表2.5所示。

【问题2]
本问题考查程序流程图的画法。注意开始、结束的符号。
根据源代码,程序流程图如下。

【问题3]
本问题考查MC/DC覆盖率判定的综合运用。
MC/DC与代码中的逻辑运算有关。本题代码中的逻辑运算为x>0&&y>0。根据
MC/DC的定义,MC/DC覆盖要求每个条件的取值都有覆盖,每个判定值都有覆盖且每
个条件都能独立影响判定结果。对于a&&b这样的逻辑运算,真值表如下。

对测试用例1和测试用例2,条件a不变,因为条件b的不同而导致结果的不同,
因此条件b独立影响判定的结果。对测试用例2和测试用例3,因为条件b不变,条件a
的不同而导致结果的不同,因此条件a独立影响判定的结果。综合以上,对逻辑运算a&&
b应产生三个测试用例,包括:(True,False)、(True,True)、(False,True)。
所以本题用例数量:3个;条件取值范围:(x>0andy<=0)、(x<=0andy>0)及(x>0
andy>0)。
参考答案

【问题2]
【问题3]
用例数量:3个;
条件取值范围:
(x>0andy<=0)、(x<=0andy>0)及(x>0andy>0)

第10题:

阅读下列C程序,回答问题1至问题3,将解答填入答题纸的对应栏内。

【C程序】

【问题1】(6分)

请针对上述C程序给出满足100%DC(判定覆盖)所需的逻辑条件。

【问题2】(9分)

请画出上述程序的控制流图,并计算其环路复杂度V(G)。

【问题3】(5分)

请给出问题2中控制流图的线性无关路径。


正确答案:
参考答案:【问题1】:【问题2】:V(G)=11【问题3】:1、21、2、31、2、3、4、12、13、17、191、2、3、4、12、13、14、17、191、2、3、4、12、13、14、15、17、191、2、3、4、12、13、14、15、16、17、191、2、3、4、12、13、14、15、16、18、191、2、3、4、5、11、191、2、3、4、5、6、10、191、2、3、4、5、6、7、9、191、2、3、4、5、6、7、8、19试题分析:判断覆盖:设计足够的测试用例,使得程序中的每个判定至少都获得一次“真值”或“假值”,或者说使得程序中的每一个取“真”分支和取“假”分支至少经历一次,因此判定覆盖又称分支覆盖对于本题中判定的条件有:【问题2】控制流图是描述程序控制流的一种图示方法。其基本符号有圆圈和箭线:圆圈为控制流图中的一个结点,表示一个或多个无分支的语句;带箭头的线段称为边或连接,表示控制流。基本结构如下所示:控制流程图的环路复杂性V(G)等于:(1)控制流程图中的区域个数。(2)边数-结点数+2。(3)判定数+1。V(G)=11【问题3】线性无关路径是指包括一组以前没有处理的语句或条件的一条路径。从控制流图来看,一条线性无关路径是至少包含有一条在其他线性无关路径中从未有过的边的路径:1)1、22)1、2、33)1、2、3、4、12、13、17、194)1、2、3、4、12、13、14、17、195)1、2、3、4、12、13、14、15、17、196)1、2、3、4、12、13、14、15、16、17、197)1、2、3、4、12、13、14、15、16、18、198)1、2、3、4、5、11、199)1、2、3、4、5、6、10、1910)1、2、3、4、5、6、7、9、1911)1、2、3、4、5、6、7、8、19

更多相关问题