什么是临界资源(critical resource)?请用100字以内的文字简要说明。 【问题5】 【C代码3】中x,y是两个已定义的整型变量。对该程序段进行覆盖测试时,必须适当地选取测试用例。如表5-10所示给出了可供选择的4组测试用例。若要实现

admin2009-02-15  37

问题 什么是临界资源(critical resource)?请用100字以内的文字简要说明。
【问题5】    【C代码3】中x,y是两个已定义的整型变量。对该程序段进行覆盖测试时,必须适当地选取测试用例。如表5-10所示给出了可供选择的4组测试用例。若要实现语句覆盖,则至少应采用的测试用例是(2);若要实现条件覆盖,则至少应采用的测试用例是(3);若要实现路径覆盖,则至少应采用的测试用例是(4)或(5)。    【C代码3】    int a:=0;    if  (x==O && y>2)    a:=1    /*A语句*/    else    {  if  (x<1 || y==1)       else            a:=2    /*B语句*/    }

【(2)~(5)空缺处供选择的答案】    A.Ⅰ和Ⅱ组     B.Ⅱ和Ⅲ组     
C.Ⅲ和Ⅳ组     D.Ⅰ和Ⅳ组     
E.Ⅰ、Ⅱ和Ⅲ组    F.Ⅱ、Ⅲ和Ⅳ组G.Ⅰ、Ⅲ和Ⅳ组    H.Ⅰ、Ⅱ和Ⅳ组

选项

答案(2)A或(Ⅰ和Ⅱ组) (3)G或(Ⅰ、Ⅲ和Ⅳ组) (4)E或(Ⅰ、Ⅱ和Ⅲ组) (5)H或(Ⅰ、Ⅱ和Ⅳ组)

解析 这是一道要求读者掌握软件测试过程中覆盖测试基本常识的分析题。本题的解答思路如下。
    1)覆盖测试是一种白盒测试方法,通常应用在软件测试的早期,即单元测试阶段。其基本思路是以程序的内部结构为基础来设计测试用例,以覆盖尽可能多的程序内部逻辑结构,发现其中的错误和问题。测试人员必须事先拥有被测程序的规格说明书和程序清单。
    2)在白盒测试用例设计中,有语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖等几种常见的覆盖测试策略,这些策略的相关描述如表5-15所示。

    3)【C代码3】程序段的程序流程图如图5-13所示。
  
4)结合表5-15中给出的语句覆盖测试策略的描述,选择足够多的测试用例数据,使被测程序中每条语句都至少执行1次。对于本案例的程序段,可选择测试用例Ⅰ(x=0,y=3),满足“(x=0)and(y>2)|”的判断条件,使A语句被执行1次;可选择测试用例Ⅱ(x=1,y=2),不满足“(x<1)or(y=1)”的判断条件,使B语句被执行1次。因此(2)空缺处应选择选项A(即Ⅰ和Ⅱ组测试用例)。
5)结合表5-15中给出的判定覆盖测试策略的描述,选择足够多的测试用例数据,使得程序中每个判定都获得1次“真”值和“假”值,或者说使程序中每1个取“真”分支和取“假”分支都至少通过1次。对于本案例的程序段,可选择测试用例Ⅰ(x=0,y=3),使判断条件(x=0)and(y>2)的“真”分支执行1次;可选择测试用例Ⅱ(x=1,y=2),使判断条件(x<1)or(y=1)的“假”分支执行1次;可选择测试用例Ⅲ(x=-1,y=2)或选择测试用例Ⅳ(x=3,y=1),使判断条件(x<1)or(y=1)的“真”分支执行1次。
6)条件覆盖测试策略的本质是:构造一组测试用例数据,使被测程序中每一个判定语句的每个逻辑条件的可能取值至少满足1次。对于本案例的程序段要实施条件覆盖测试,可选择测试用例Ⅰ(x=0,y=3),以同时满足判断条件(x=0)and(y>2)中x=0和y>2的取值条件;可选择测试用例Ⅲ(x=-1,y=2),满足判断条件(x<1)or(y=1)中x<1的取值条件;可选择测试用例Ⅳ(x=3,y=1),满足判断条件(x<1)or(y=1)中y=1的取值条件。因此(3)空缺处应选择选项G(即Ⅰ、Ⅲ和Ⅳ组测试用例)。
7)结合表5-15中给出的判定/条件覆盖测试策略的描述,构造一组测试用例数据,使得判定中的每个逻辑条件取得各种可能的值,并且使得每个判定取得各种可能的判定结果。结合以上第6)点的分析结论可知,对于本案例的程序段,选择测试用例Ⅰ(x=0,y=3),同时满足判断条件(x=0)and(y>2)中x=0和y>2的取值条件,且使得该判断条件的“真”分支执行1次。 选择测试用例Ⅱ(x=1,y=2),使判断条件(x=0)and(y>2)的“假”分支执行1次;同时不满足(x<1)or(y=1)的取值条件,且使判断条件(x<1)or(y=1)的“假”分支执行1次。 选择测试用例Ⅲ(x=-1,y=2),满足判断条件(x<1)or(y=1)中x<1的取值条件,且使得使该判断条件的“真”分支执行1次,使判断条件(x=0)and(y>2)的“假”分支执行1次。 也可选择测试用例Ⅳ(x=3,y=1),满足判断条件(x<1)or(y=1)中y=1的取值条件,且使得使该判断条件的“真”分支执行1次,使判断条件(x=0)and(y>2)的“假”分支执行1次。
8)对于条件组合覆盖测试策略,其含义是选择足够多的测试用例数据,使被测程序中每个判定中逻辑条件的各种组合都至少出现1次。对于本案例的程序段,要实现条件组合覆盖测试工作所需的测试用例如表5-16所示。
   
   9)结合表5-15中给出的路径覆盖测试策略的描述,选择足够多的测试用例数据,使被测程序中每一条可能的路径至少执行1次。对于本案例的程序段主要有3条路径:执行判断条件(x=0)and(y>2)“真”分支的路径;执行判断条件(x=0)and(y>2)“真”分支的路径;执行判断条件(x=0)and(y>2)“假”分支的路径。
   选择测试用例Ⅰ(x=0,y=3),同时满足判断条件(x=0)and(y>2)中x=0和y>2的取值条件,使得该判断条件的“真”分支路径被执行1次。
   选择测试用例Ⅱ(x=1,y=2),同时不满足判断条件(x<1)or(y=1)中x<1和y=1的取值条件,使得该判断条件的“假”分支路径被执行1次。
   选择测试用例Ⅲ(x=-1,y=2),满足判断条件(x<1)or(y=1)中x<1的取值条件,或者选择测试用例Ⅳ(x=3,y=1),满足判断条件(x<1)or(y=1)中y=1的取值条件,使得使该判断条件的“真”分支路径被执行1次。
   由以上分析可知,(4)、(5)空缺处可分别填入选项E(即Ⅰ、Ⅱ和Ⅲ组测试用例)和选项H(即Ⅰ、Ⅱ和Ⅳ组测试用例)。
转载请注明原文地址:https://kaotiyun.com/show/IIjZ777K
0

相关试题推荐
最新回复(0)