试题详情

[说明] 逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由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分)

相关试题