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

最全题库2022-08-02  51

问题 逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由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   //7return (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, 10return (value - ranges[start].start_value)+start_orig_index; //11   }   retun -1,   //12}    //13【问题1】请给出满足100%DC(判定覆盖)所需的逻辑条件。【问题2】请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。【问题3】请给出【问题2】中控制流图的线性无关路径。

选项

答案

解析 【问题1】【问题2】控制流图环路复杂度V(G)=7【问题3】线性无关路径:1)1-2-3-4-2...2)1-2-3-5-6-2...3)1-2-3-5-7-134)1-2-8-9-10-11-135)1-2-8 9-10-12-136)1-2-8-9-12-137)1-2-8-12-13
转载请注明原文地址:https://www.tihaiku.com/congyezige/2418102.html

最新回复(0)