题目

阅读下列说明,回答下列问题。
[说明] 逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由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
    }
    return -1;                                               //12
}  //13
5、[问题1] 请给出满足100%DC(判定覆盖)所需的逻辑条件。(6分)6、[问题2] 请画出上述程序的控制流图,并计算其控制流图的环路复杂度VG.。(6分)
7、[问题3] 请给出[问题2]中控制流图的线性无关路径。(4分)

作答
本题暂不支持做答,请点击“解析“以对比解题思路
答案/解析
查看试卷及答案