[说明] 逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
Struct_ProtobufCIntRange{
Int start_value;
Unsigned orig_index;
};
typedef struct_ProtobufCIntRange ProtobufCIntRange;
in tint_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
}
return -1; //12
} //13
5、[问题1] 请给出满足100%DC(判定覆盖)所需的逻辑条件。(6分)6、[问题2] 请画出上述程序的控制流图,并计算其控制流图的环路复杂度VG.。(6分)
7、[问题3] 请给出[问题2]中控制流图的线性无关路径。(4分)
相关试题
-
[说明] 逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。 Struct_ProtobufCIntRange{
-
阅读下列说明,回答问题。 【说明】 逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。 int XOR(char
-
阅读下列说明,回答问题。 【说明】 逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。 int XOR(char
-
逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。 int XOR(char * filename,unsigned l
-
逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。 阅读下列说明,回答问题。 【说明】 逻辑覆盖法是设计白盒