针对以下C语言程序段,对于(MaxNum,Type)的取值,至少需要(62)个测试用例能够满足判定覆盖的要求。while(MaxNum-->0){ if(10==Type) x=y* 2; else if(100==Type) x=y +10; else x=y-20;}A.5B.4C.3D.2

题目

针对以下C语言程序段,对于(MaxNum,Type)的取值,至少需要(62)个测试用例能够满足判定覆盖的要求。while(MaxNum-->0){ if(10==Type) x=y* 2; else if(100==Type) x=y +10; else x=y-20;}

A.5

B.4

C.3

D.2


相似考题
更多“针对以下C语言程序段,对于(MaxNum,Type)的取值,至少需要(62)个测试用例能够满足判定覆盖的要求。w ”相关问题
  • 第1题:

    论述题3:针对以下C语言程序,请按要求回答问题

    下面是一个简单的C语言程序:

    (1)画出该函数的程序流程图。

    (2)设计测试用例,分别使函数的各种逻辑覆盖率尽量达到100%。如果认为该函数的某种逻辑覆盖率无法达到100%,需要说明原因。

    (3)设计特殊的测试用例,说明各种逻辑覆盖之间的关系。


    正确答案:问题1: 解答: 根据源程序易得流程图如图17-7所示。 问题2: 解答: 经过分析不难知上面这个程序包含: 1)五个语句:每行一个语句。 2)三个条件:a>0;b0;c>0 3)四个分支:有两个if语句每个if语句有两个分支。 4)六个条件组合:条件表达式(a>0)‖b0)共有两个条件a>0和b0故有四个条件组合;条件表达式(c>0)只有一个条件c>0故有两个条件组合。所以该程序共有六个条件组合。 5)四条路径:从程序的入口到出口的路径共有四条分别是: Path1: 1—2—3—5—6—8 Path2: 1—2—3—5—7—8 Path3: 1—2—4—5—6—8 Path4: 1—2—4—5—7—8 这个程序有三个输入:a、b、c其输入数据组合是非常大的。下面对该程序分别应用不同的逻辑覆盖准则设计测试用例。 1.语句覆盖 根据语句覆盖准则只需要采用两个输入数据组合:(abc)=(111)、(-111)便可以把该程序的所有五个语句执行一遍。 2.分支覆盖(判定覆盖) 根据分支覆盖准则只需要采用两个输入数据组合:(abc)=(11-1)、(-111)便可以把该程序的所有四个分支走遍。但未考虑b0的情况故不满足条件覆盖。说明满足分支覆盖的测试用例未必满足条件覆盖。 3.条件覆盖 根据条件覆盖准则只需要采用两个输入数据组合:(abc)=(11-1)、(-1-11)便可以把该程序的三个条件的真假情况都覆盖到。由于表达式(a>0)‖b0)的计算值都为真不会执行else语句即不满足分支覆盖和语句覆盖。说明满足条件覆盖的未必满足分支覆盖和语句覆盖。 4.条件组合覆盖 根据条件组合的覆盖准则只需要采用四个输入数据组合:(abc)=(1-11)、(111)、(-1 1-1)、(-1-1-1)便可以把该程序的六个条件组合情况覆盖到。但执行的路径数只有2个故不满足路径覆盖。说明满足条件组合的覆盖不一定满足路径覆盖。 5.路径覆盖 根据路径覆盖的准则由图17-7可见只需要采用四个输入数据组合:(abc)=(111)、(11 -1)、(-111)、(-11-1)便可以把该程序的所有四条路径都覆盖。路径覆盖是最强的覆盖准则。
    问题1: 解答: 根据源程序易得流程图,如图17-7所示。 问题2: 解答: 经过分析不难知,上面这个程序包含: 1)五个语句:每行一个语句。 2)三个条件:a>0;b0;c>0 3)四个分支:有两个if语句,每个if语句有两个分支。 4)六个条件组合:条件表达式(a>0)‖b0)共有两个条件,a>0和b0,故有四个条件组合;条件表达式(c>0)只有一个条件c>0,故有两个条件组合。所以该程序共有六个条件组合。 5)四条路径:从程序的入口到出口的路径共有四条,分别是: Path1: 1—2—3—5—6—8 Path2: 1—2—3—5—7—8 Path3: 1—2—4—5—6—8 Path4: 1—2—4—5—7—8 这个程序有三个输入:a、b、c,其输入数据组合是非常大的。下面对该程序分别应用不同的逻辑覆盖准则,设计测试用例。 1.语句覆盖 根据语句覆盖准则,只需要采用两个输入数据组合:(a,b,c)=(1,1,1)、(-1,1,1),便可以把该程序的所有五个语句执行一遍。 2.分支覆盖(判定覆盖) 根据分支覆盖准则,只需要采用两个输入数据组合:(a,b,c)=(1,1,-1)、(-1,1,1),便可以把该程序的所有四个分支走遍。但未考虑b0的情况,故不满足条件覆盖。说明满足分支覆盖的测试用例未必满足条件覆盖。 3.条件覆盖 根据条件覆盖准则,只需要采用两个输入数据组合:(a,b,c)=(1,1,-1)、(-1,-1,1),便可以把该程序的三个条件的真假情况都覆盖到。由于表达式(a>0)‖b0)的计算值都为真,不会执行else语句,即不满足分支覆盖和语句覆盖。说明满足条件覆盖的未必满足分支覆盖和语句覆盖。 4.条件组合覆盖 根据条件组合的覆盖准则只需要采用四个输入数据组合:(a,b,c)=(1,-1,1)、(1,1,1)、(-1, 1,-1)、(-1,-1,-1),便可以把该程序的六个条件组合情况覆盖到。但执行的路径数只有2个,故不满足路径覆盖。说明满足条件组合的覆盖不一定满足路径覆盖。 5.路径覆盖 根据路径覆盖的准则,由图17-7可见,只需要采用四个输入数据组合:(a,b,c)=(1,1,1)、(1,1, -1)、(-1,1,1)、(-1,1,-1),便可以把该程序的所有四条路径都覆盖。路径覆盖是最强的覆盖准则。 解析:首先根据源程序画出程序流图比较容易,然后分析学过的所有的逻辑覆盖(如语句覆盖,分支覆盖,路径覆盖等),分析针对每种逻辑覆盖的标准来设计测试用例,最后通过设计测试用例来体现各种逻辑覆盖之间的关系。

  • 第2题:

    针对以下C语言程序段,假设sta[10]=-1,对于x的取值,需要______个测试用例能够满足分支覆盖的要求。

    int MathMine(int x)

    {

    int m=0;

    int i;

    for(i=x-1; i<=x+1; i++)

    {

    if (i<0) continue;

    if (i>31) break;

    if (sta[i]=-1) m++;

    }

    return m;

    }

    A.3

    B.4

    C.5

    D.6

    A.

    B.

    C.

    D.


    正确答案:A

  • 第3题:

    ● 针对以下C语言程序段,假设sta[10]= -1,对于x的取值,需要__个测试用例能够满足分支覆盖的要求。 int MathMine( int x ) { int m = 0; int i; for( i = x-1; i <= x + 1; i++ ) { if ( i < 0 ) continue; if ( i >31 ) break; if ( sta[i] == -1 ) m++; } return m; }

    A.3

    B.4

    C.5

    D.6


    正确答案:A
    分支覆盖要使得程序中的每一个分支都至少执行一次。本题比较特殊,在循环体中用到了continue与break,其中执行continue语句,则结束本次循环,也就是说执行continue后,其后面的循环体语句在本次循环中将不执行;而break语句结束的是本层循环,在本题中就结束了整个循环。在本题中要设计的用例如下:(1)使i<0成立,(2)使i<0不成立,而i>31成立(3)使i<0不成立,且i>31也不成立,而使sta[i]==-1成立。这样就实现了分支覆盖。参考答案A

  • 第4题:

    针对下列程序段,对于(A,B,C)的取值,以下(56)测试用例组合能够满足语句覆盖的要求。 IF((A+10)=2 OR(B-20)<3)THENC=0 IF((A+30)=10 AND(C-30)<0)THEN B=30

    A.(2,30,1)

    B.(-20,0,30)

    C.(30,20,30)

    D.(2,20,3)


    正确答案:D
    解析:本题考查白盒测试中测试用例的设计方法——语句覆盖法。语句覆盖法的概念如下。每一个可执行语句至少执行一次。此程序段中共有两个语句,如果A选择2,B选择20,C选择3,则两个语句都会被执行到。

  • 第5题:

    针对以下程序段,对于变量c的取值,至少需要(61)个测试用例才能够满足语句覆盖的要求。c=((u8_t*)q->payload)[i];switch(c){case SLIP_END: sio_send(SLIP_ESC,netif->state); sio_send(SLIP_ESC_END,netif->state); break;case SLIP_ESC: sio_send(SLIP_ESC,netif->state); sio_send(SLIP_ESC_ESC,netif->state); break;default: sio_send(c,netif->state); break; }

    A.4

    B.3

    C.2

    D.1


    正确答案:B
    解析:本题考查白盒测试中测试用例的设计方法——语句覆盖法。
      语句覆盖法的概念如下。
      每一个可执行语句至少执行一次。
      此程序段中开关语句共有三个分支,对于变量c的取值,需要三个测试用例能够满足语句覆盖的要求。

  • 第6题:

    针对下面的程序段,对于(MaxNum,Type)的取值,至少需要______个测试用例才能够满足判定覆盖的要求。

    Whjle(MaxNum-->0)

    {

    If(10==Type)x=y * 2;

    Else if(100==Type)x=y+20;

    }

    A) 5

    B) 4

    C) 3

    D) 2

    A.

    B.

    C.

    D.


    正确答案:C

  • 第7题:

    ● 针对以下 C 语言程序段,对于(MaxNum,Type)的取值,至少需要(62)个测试用例能够满足判定覆盖的要求。

    while ( MaxNum-- > 0 )

    {

    if ( 10 == Type )

    x = y * 2;

    else

    if ( 100 == Type )

    x = y + 10;

    else

    x = y - 20;

    }

    (62)A.5 B. 4 C. 3 D. 2


    正确答案:C

  • 第8题:

    多条件覆盖是一种逻辑覆盖,它的含义是设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次,满足多条件覆盖级别的测试用例也是满足(1)级别的:针对布尔表达式A&&(B||C)执行逻辑覆盖测试,测试用例至少需要(2)种组合才能满足多条件覆盖的要求。
    (1)____

    A.语句覆盖、判定覆盖、条件覆盖、条件判定组合覆盖
    B.判定覆盖、条件覆盖;条件判定组合覆盖、修正条件判定覆盖
    C.语句覆盖、判定覆盖、条件判定组合覆盖、修正条件判定覆盖
    D.路径覆盖、判定覆盖、条件覆盖、条件判定组合覆盖

    答案:A
    解析:
    试题(1)考查白盒测试用例设计法中逻辑覆盖法的基础知识。语句覆盖要求每条语句至少执行一次;判定覆盖也叫做分支覆盖,要求每一个判定获得每一种可能的结果至少一次;条件覆盖要求每一个判定语句中每个逻辑条件的可能值至少满足一次;条件判定组合覆盖要求判定中每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的结果(真假)也至少出现一次;多条件覆盖要求“每个判定中条件的各种可能组合都至少出现一次”。因此包含语句覆盖、判定覆盖、条件覆盖、条件判定组合覆盖,但是不包含修正条件判定覆盖。

  • 第9题:

    针对下列程序段,需要( )个测试用例才可以满足语句覆盖的要求。

    A.2
    B.3
    C.4
    D.5

    答案:C
    解析:
    本题考查白盒测试用例设计方法--语句覆盖法的概念。语句覆盖(Statement Coverage)的含义是:选择足够多的测试数据,使被测程序中的每条语句至少执行一次。

  • 第10题:

    ()是选择若干个测试用例,运行被测程序,使得程序中的每个可执行语句至少执行一次。

    • A、条件覆盖
    • B、组合覆盖
    • C、判定覆盖
    • D、语句覆盖

    正确答案:D

  • 第11题:

    单选题
    关于白盒法覆盖程度的论述中正确的是()。
    A

    语句覆盖:选择测试用例使程序中每条语句至少被执行一次

    B

    判定覆盖:选择测试用例使程序中每个判定至少都获得2次“真”值和一次“假”值

    C

    条件覆盖:选择测试用例使每个条件都满足

    D

    条件组合覆盖:将所有的判定条件的都组合起来执行


    正确答案: C
    解析: 暂无解析

  • 第12题:

    单选题
    有一组测试用例使得每一个被测试用例的分支覆盖至少被执行一次,它满足的覆盖标准()。
    A

    语句覆盖

    B

    判定覆盖

    C

    条件覆盖

    D

    路径覆盖


    正确答案: A
    解析: 暂无解析

  • 第13题:

    针对程序段:IP(A||B||C) THEN W=W/X,对于(A,B,C)的取值,(57)测试用例能够满足MCDC(修正条件逻辑判定)的要求。

    A.(F,T,T)(T,F,T)(T,F,F)(T,T,F)

    B.(T,F,F)(T,T,F)(F,T,T)(F,F,F)

    C.(T,F,F)(T,T,F)(F,T,T)(F,F,T)

    D.(T,F,F)(F,T,F)(F,F,T)(F,F,F)


    正确答案:D
    解析:本题考查MCDC用例设计,其要满足条件与判定覆盖,并且需要确定每个条件能够影响到包含的判定的结果。

  • 第14题:

    阅读下列流程图:当用判定覆盖法进行测试时,至少需要设计(35)个测试用例。A.2B.4

    阅读下列流程图:

    当用判定覆盖法进行测试时,至少需要设计(35)个测试用例。

    A.2

    B.4

    C.6

    D.8


    正确答案:B
    判定覆盖法是进行白盒测试中设计测试案例的一种方法,它要求设计的测试案例应使得程序中每个判断的取真分支和取假分支至少经历一次,所以判定覆盖也称谓分支覆盖。对于本题给定的被测程序,共包括如下三个判断。判断1:x!=0。判断2:x为0时,y是否为0。判断3:x不为0时,y是否为0。所以本题使用判定覆盖法设计的测试案例可为:x=0,y=0x=0,y=1x=1,y=0x=1,y=1

  • 第15题:

    试题(52)

    针对下列程序段,需要(52)个测试用例才可以满足语句覆盖的要求。

    (52)

    A.2

    B.3

    C.4

    D.5


    正确答案:C

  • 第16题:

    针对下列程序段,对于(A,B)的取值,以下(57)测试用例组合能够满足条件覆盖的要求。 IF((A-10)=20 AND(B+20)>10)THEN C=0 IP((A-30)<10 AND(B-30)<0)THEN B=30

    ①A=50 B=-10

    ②A=40 B=40

    ③A=30 B=10

    ④A=30 B=30

    A.①②

    B.③④

    C.①④

    D.②④


    正确答案:C
    解析:本题考查白盒测试中测试用例的设计方法——条件覆盖法。
      条件覆盖法的概念如下。
      每个判定中的每个条件的所有可能值至少满足一次。
      如果取A=50 B=-10和A=30 B=30两组数,语句段中的4个条件都会满足,这4个条件分别是:
      .(A-10)=20
      .(B+20)>10
      .(A-30)10
      .(B-30)0

  • 第17题:

    试题三(共 15分)

    阅读以下关于嵌入式软件测试用例设计的叙述,回答问题 1至问题 3,将答案填入答题纸的对应栏内。

    【说明】

    某程序段的流程如图 3-1所示,x、y是两个变量,K、J 表示一段程序执行体,表 3-1 所示为本题可供选择的四组测试用例组。

    【问题1】(3分)

    简答以下问题。

    (1)条件覆盖的含义是什么?

    (2)路径覆盖的含义是什么?

    【问题 2】(2分)

    在程序测试用例设计中,有语句覆盖、条件覆盖、判定覆盖(分支覆盖)和路径覆盖等。其中,____是最强的覆盖准则。

    请把以下 4个选项中正确的选项序号填入上述空白处。

    ①语句覆盖

    ②条件覆盖

    ③判定覆盖(分支覆盖)

    ④路径覆盖

    【问题 3】(10 分)

    为了对图 3-1 所示的程序段进行覆盖测试,必须适当地选取测试用例组。实现判定覆盖至少应采用的测试用例组是 (1)和 (2) ,实现条件覆盖至少应采用的测试用例组是 (3) ;实现路径覆盖至少应采用的测试用例组是 (4) 和 (5)。

    请把以下 8个选项中正确的选项序号填入上述空白处。

    ① 试用例组Ⅰ和Ⅱ

    ②测试用例组Ⅱ和Ⅲ

    ③测试用例组Ⅲ和Ⅳ

    ④测试用例组Ⅰ和Ⅳ

    ⑤测试用例组Ⅰ、Ⅱ和Ⅲ

    ⑥测试用例组Ⅱ、Ⅲ和Ⅳ

    ⑦测试用例组Ⅰ、Ⅲ和Ⅳ

    ⑧测试用例组Ⅰ、Ⅱ和Ⅳ


    正确答案:

    试题三(共15分)
    【问题1】(3分)
    (1)条件覆盖是指设计足够的测试用例,使得被测程序每一个判定中的每个条件的所有可能结果至少出现一次。
    (2)路径覆盖是指设计足够的测试用例,使得被测程序中每条路径至少执行一次。

    【问题2】(2分)
    (1)④(路径覆盖)

    【问题3】 (10分)
    (1)⑤
    (2)⑧
    (3)⑦
    (4)⑤
    (5)⑧
    其中,第(1)、(2)题的答案顺序可互换,第(4)、(5)题的答案顺序可互换。

  • 第18题:

    ● 针对下列程序段,对于(A,B,C)的取值,以下(56)测试用例组合能够满足语句覆盖的要求。

    IF ( ( A + 10 ) = 2 OR ( B -20 ) < 3 ) THEN C = 0 IF ( ( A+30 ) > 10 AND ( C - 30 ) < 0 ) THEN B = 30

    (56)

    A.(2,30,1)

    B.(-20,0,30)

    C.(-30,20,30)

    D.(2,20,3)


    正确答案:D

  • 第19题:

    针对程序段:IP(A||B||C.THEN W=W/X,对于(A,B,C.的取值,( )测试用例能够满足MCDC(修正条件逻辑判定)的要求。

    A.(F,T,T)(T,F,T)(T,F,F.(T,T,F.
    B.(T,F,F.(T,T,F.(F,T,T)(F,F,F.
    C.(T,F,F.(T,T,F.(F,T,T)(F,F,T)
    D.(T,F,F.(F,T,F.(F,F,T)(F,F,F.

    答案:D
    解析:
    本题考查MCDC用例设计,其要满足条件与判定覆盖,并且需要确定每个条件能够影响到包含的判定的结果。

  • 第20题:

    多条件覆盖是一种逻辑覆盖,它的含义是设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次,满足多条件覆盖级别的测试用例也是满足(1)级别的:针对布尔表达式A&&(B||C)执行逻辑覆盖测试,测试用例至少需要(2)种组合才能满足多条件覆盖的要求。(2)___

    A.6
    B.4
    C.8
    D.12

    答案:C
    解析:
    试题考查计算多条件覆盖的方法,题中的判定条件包含3个子条件,每个子条件有2种可能取值,测试用例为2×2×2=8个。

  • 第21题:

    有一组测试用例使得每一个被测试用例的分支覆盖至少被执行一次,它满足的覆盖标准()。

    • A、语句覆盖
    • B、判定覆盖
    • C、条件覆盖
    • D、路径覆盖

    正确答案:B

  • 第22题:

    关于白盒法覆盖程度的论述中正确的是()。

    • A、语句覆盖:选择测试用例使程序中每条语句至少被执行一次
    • B、判定覆盖:选择测试用例使程序中每个判定至少都获得2次“真”值和一次“假”值
    • C、条件覆盖:选择测试用例使每个条件都满足
    • D、条件组合覆盖:将所有的判定条件的都组合起来执行

    正确答案:A

  • 第23题:

    单选题
    ()是选择若干个测试用例,运行被测程序,使得程序中的每个可执行语句至少执行一次。
    A

    条件覆盖

    B

    组合覆盖

    C

    判定覆盖

    D

    语句覆盖


    正确答案: B
    解析: 暂无解析