试题二(共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; ∥1start=0;n=n_ranges;while(n1){ //2unsigned mid= start+ n/2;if(value ranges[mid].start_value){ //3n=mid-start; //4}else if(value=ranges[mid].start value+(int)(ranges[mid+1].orig_index-ranges[mid].orig_index){ //5unsigned new_start= mid+1; //6n=start+n-new_start,start = new_start;}else //7return (value - ranges[mid].start_value)+ ranges[mid],orig_index;}if(n0){ //8unsigned 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, 10return (value - ranges[start].start_value)+start_orig_index; //11}retum -1, //12} //13【问题1】(5分)请给出满足100%DC(判定覆盖)所需的逻辑条件。【问题2】 (7分)请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。【问题3】(3分)请给出【问题2】中控制流图的线性无关路径。
试题二(共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】中控制流图的线性无关路径。
暂无答案