niusouti.com

论述题3:针对以下C语言程序,请按要求回答问题下面是一个程序段(C语言),试设计基本路径测试的测试用例,设计出的测试用例要保证每一个基本独立路径至少要执行一次。函数说明:当i flag=0;返回i count+100当i flag=l;返回i count*10否则 返回 i count*20输入参数:int i count int i flag输出参数:int i retum程序代码如下:(1)画出该函数的控制流程图。(2)采用基本路径测试法设计一组测试用例,保证每个基本独立路径都至少执行一次。

题目

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

下面是一个程序段(C语言),试设计基本路径测试的测试用例,设计出的测试用例要保证每一个基本独立路径至少要执行一次。

函数说明:当i flag=0;返回i count+100

当i flag=l;返回i count*10

否则 返回 i count*20

输入参数:int i count int i flag

输出参数:int i retum

程序代码如下:

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

(2)采用基本路径测试法设计一组测试用例,保证每个基本独立路径都至少执行一次。


相似考题
更多“ 论述题3:针对以下C语言程序,请按要求回答问题下面是一个程序段(C语言),试设计基本路径测试的测试用例,设计出的测试用例要保证每一个基本独立路径至少要执行一次。函数说明:当i flag=0;返回i count+1”相关问题
  • 第1题:

    阅读下列说明,回答问题1至问题3。

    【说明】

    使用基本路径法设计出的测试用例能够保证程序的每一条可执行语句在测试过程中至少执行一次。以下代码由C语言书写,请按要求回答问题。

    int IsLeap(int year)

    {

    if(year% 4==0)

    {

    if((year % 100==0)

    {

    if( year % 400==0'

    leap=1;

    eIse

    leap=0;

    }

    else

    leap=1;

    else

    leap=0;

    return leap;

    }

    请画出以上代码的控制流图。

    请计算上述控制流图的V(G)。

    假设的取值范围是1000<year<2001,请使用基本路径测试法为变量year设计测试用例,使之满足基本路径覆盖的要求。

    请帮忙给出每个问题的正确答案和分析,谢谢!


    问题 1 答案解析:控制流图
    控制流图 解析:绘制模块控制流图。
    模块控制流图是与程序流程图相类似的由许多节点和连接节点的边组成的一种图形,其中一个节点代表一条语句或数条语句,边表示节点间的控制流向,它显示了一个函数的内部逻辑结构。

    问题 2 答案解析:V(G)=4
    V(G)=4 解析:计算控制流图的环路复杂性v(G)。
    V(G)=(区域数)=(判断结点数)+1

    问题 3 答案解析:用例1:year是1000~2000之间不能被4整除的整数如1001、1002、1003等。 用例2:year是1000~2000之间能被4整除但不能被100整除的整数如1004、 1008、1012、1016等。 用例3:year是1000~2000之间能被100整除但不能被400整除的整数如1100、 1300、1400、1500、1700、1800、1900。 用例4:yew是1000~2000之间能被400整除的整数如1200、1600、2000。
    用例1:year是1000~2000之间不能被4整除的整数,如1001、1002、1003等。 用例2:year是1000~2000之间能被4整除但不能被100整除的整数,如1004、 1008、1012、1016等。 用例3:year是1000~2000之间能被100整除但不能被400整除的整数,如1100、 1300、1400、1500、1700、1800、1900。 用例4:yew是1000~2000之间能被400整除的整数,如1200、1600、2000。 解析:采用基本路径测试法,满足基本路径覆盖的要求。
    在进行程序的基本路径测试时,从程序的环路复杂性,可导出程序基本路径集合中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必需的测试用例数目的上界。独立路径是指包括一组以前没有处理的语句或条件的一条路径。例如针对本题所对应的控制流图中,一组独立的路径如下。
    .path1:不能被4整除的整数
    .path2;被4整除但不能被100整除的整数.
    .path3:能被100整除但不能被400整除的整数
    .path4;能被400整除的整数
    路径path1、path2、path3和path4组成一个基本路径集。只要设计出的测试用例能够确保这些基本路径的执行,就可以使得程序中的每个可执行语句至少执行一次。

  • 第2题:

    逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
    getit( int m)
    {
    int i, k;
    k=sqrt(m);
    for ( i=2; i<=k; i++)
    if (m % i=0) break;
    if ( i>=k+1 )
    printf( "%d is a selected number\n", m);
    else
    printf( "%d is not a selected number\n", m );
    }
    7、请找出程序中所有的逻辑判断子语句。(5分)
    8、请将满足100%DC(判定覆盖)所需的逻辑条件填入下表。(8分)



    9、请画出上述程序的控制流图,并计算其控制流图的环路复杂度VG.。假设函数getit的参数m取值范围是150<m<160,请使用基本路径测试法设计测试用例,将参数m的取值填入下表,使之满足基本路径覆盖要求。(4分)



    答案:
    解析:
    7、
    本题考查对编程语言的理解,着重考查判断语句。
    程序中的逻辑判断子语句如下:
    i<=k
    m%i==0
    i>=k+1
    8、
    本题考查白盒测试用例设计方法:判定覆盖法。判定覆盖法又称为逻辑覆盖,是通过对程序逻辑结构的遍历实现程序的覆盖。



    9、
    本题考查白盒测试用例设计方法:基本路径法。涉及的知识点包括:根据代码绘制程序流图、计算环路复杂度以及设计测试用例。注意测试用例的数目本应和环路复杂度是一致的,但存在特殊情况。
    控制流图:



    环路复杂度:
    V(G)=4
    基本路径覆盖用例:

  • 第3题:

    【说明】逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C 语言编写的程序,按要求回答问题。 main( ){int i,n; //1for(i=1;i<7;i++){ //2n=0;  if(i!=1) //3 n=n+1; //4  if(n==5){ //5printf("Hello!"); //6 }else{ printf("No!"); //7}  }printf("GAME OVER!"); //8 } 问题1:(3分)请给出满足100%DC(判定覆盖)所需的逻辑条件。问题2:(8分)请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。问题3:(4分)请给出【问题2】中控制流图的线性无关路径。


    答案:
    解析:
    问题1:答案:1、i < 72、i >= 73、i != 14、i == 15、n == 56、n != 5
    问题2:答案:(1) 控制流图如下图所示:



    (2)、V(G)=3+1=4问题3:答案:(1) 1-2-8 (2) 1-2-3-5-6-2... (3) 1-2-3-4-5-6-2...(4) 1-2-3-5-7-2…
    【解析】
    问题1:解析:
    本小题考查白盒测试中的判定覆盖法。判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得-次 “真”值和“假”值,从而使程序的每一个分支至少都通过一次。本题中程序一共有3个判定,所以满足判定覆盖一共就需要6个逻辑条件,这些条件详见上述答案。问题2:解析:
    本题考查白盒测试方法中的基本路径法。涉及到的知识点包括:根据代码绘制控制流图、计算环路复杂度。控制流图是描述程序控制流的一种图示方法。其基本符号有圆圈和箭线:圆圈为控制流图中的一个结点,表示一个或多个无分支的语句;带箭头的线段称为边或连接,表示控制流。基本结构如下所示:



    其中要特别注意的是,如果判断中的条件表达式是复合条件,即条件表达式是由一个或多个逻辑运算符连接的逻辑表达式,则需要改变复合条件的判断为一系列之单个条件的嵌套的判断。环路复杂度用来衡量一个程序模块所包含的判定结构的复杂程度。环路复杂度等于右图中的判定的节点个数加1。图中判定节点个数为3,所以V(G)=3+1=4。控制流程图的环路复杂性 V(G)一共有以下三种方法,但是最后一种最好用,不易出错。(1)控制流程图中的区域个数。(2)边数-结点数+2。(3)判定数+1。问题3:解析:本小题考查白盒测试用例设计方法之基本路径法。涉及到根据控制流图和环路复杂度给出线性无关路径。线性无关路径:指包含一组以前没有处理的语句或条件的路径。从控制流图上来看,一条线性无关路径是至少包含一条在其他线性无关路径中从未有过的边的路径。程序的环路复杂度等于线性无关路径的条数,所以本题中有4条线性无关路径。这4条路径组成了问题2中控制流图的一个基本路径集。只要设计出的测试用例能确保这些基本路径的执行,就可以使程序中的每个可执行语句至少执行一次,每个条件的取真和取假分支也能得到测试。需要注意的是,基本路径集不是唯一的,对于给定的控制流图,可以得到不同的基本路径集。

  • 第4题:

    【说明】 使用基本路径法设计出的测试用例能够保证程序的每一条可执行语句在测试过程中至少执行一次。以下代码由C语言书写,请按要求回答问题。 int isLeap (int year) { if (year % 4 == 0) { if (year % 100 == 0) { if ( year % 400 == 0) leap = 1; else leap = 0; } else leap = 1; } else leap = 0; return leap; } 【问题1】(3分) 请画出以上代码的控制流图。

  • 第5题:

    阅读下列说明,回答问题l至问题3,将解答或相应的编号填入对应栏内。[说明] 逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。 getit( int m) { int i, k; k=sqrt(m); for ( i=2; i<=k; i++) if (m % i=0) break; if ( i>=k+1 ) printf( "%d is a selected number\n", m); else printf( "%d is not a selected number\n", m ); }10、请找出程序中所有的逻辑判断子语句。11、请将满足100%DC(判定覆盖)所需的逻辑条件填入下表。



    12、请画出上述程序的控制流图,并计算其控制流图的环路复杂度VG.。假设函数getit的参数m取值范围是150<m<160,请使用基本路径测试法设计测试用例,将参数m的取值填入下表,使之满足基本路径覆盖要求。



    答案:
    解析: