阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】 逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。 struct_ProtobufC

admin2013-01-19  25

问题 阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
    逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
    struct_ProtobufCIntRange  {
      int start_value;
      unsigned orig_index;
    },
    typedef struct _ProtobufCIntRange ProtobufCIntRange;
    int int_range_lookup(unsigned n_ranges,const ProtobufCIntRange*range8,int value){
      unsigned start,n;    //1
      start=0;
      n=n_ranges;
      while(n>1){            //2
         unsigned mid=start+n/2;
         if(value            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){                          //18
      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
请给出上题中控制流图的线性无关路径。

选项

答案线性无关路径: 1)1-2-3-4-2… 2)1-2-3-5-6-2… 3)1-2-3-5-7-13 4)1-2-8-9-10-11-13 5)1-2-8-9-10-12-13 6)1-2-8-9-12-13 7)1-2-8-12-13

解析 本题考查白盒测试方法中的基本路径法。涉及到的知识点包括根据控制流图和环路复杂度确定线性无关路径。
    线性无关路径是指包括一组以前没有处理的语句或条件的一条路径。从控制流图来看,一条线性无关路径是至少包含有一条在其他线性无关路径中从未有过的边的路径。对问题2中的控制流图,其线性无关路径的集合为:
    (1)1-2-3-4-2…
    (2)1-2-3-5-6-2…
    (3)1-2-3-5-7-13
    (4) 1-2-8-9-10-11-13
    (5)1-2-8-9-10-12-13
    (6)1-2-8-9-12-13
    (7)1-2-8-12-13
    这7条路径组成了问题2中控制流图的一个基本路径集。只要设计出的测试用例能确保这些基本路径的执行,就可以使程序中的每个可执行语句至少执行一次,每个条件的取真和取假分支也能得到测试。需要注意的是,基本路径集不是唯一的,对于给定的控制流图,可以得到不同的基本路径集。
转载请注明原文地址:https://jikaoti.com/ti/tFI7FFFM
0

最新回复(0)