51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 3438|回复: 8
打印 上一主题 下一主题

[软考] 【软件评测师系列-22】每日模拟下午题1及解析

[复制链接]
  • TA的每日心情
    奋斗
    7 天前
  • 签到天数: 1000 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2020-9-21 15:06:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    问答题1
    逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C 语言编写的程序,按要求回答问题。
    1. main()
    2. {
    3.         int i,n;                        //1
    4.         for(i=1;i<7;i++){                //2
    5.         n=0;
    6.                 if(!=1)                        //3
    7.                 n=n+1;                        //4
    8.                 if(n==5){                //5
    9.                 printf("Hello!");        //6
    10.                 }
    11.                 else{
    12.                 printf("No!");                //7
    13.                 }
    14.         }               
    15.         printf("GAME OVER!");                //8
    16. }
    复制代码
    问题1:(3分)请给出满足100%DC(判定覆盖)所需的逻辑条件。
    问题2:(8分)请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。
    问题3:(4分)请给出【问题2】中控制流图的线性无关路径。




    评论区留下你的答案及解题思路,后续我们来公布正确答案
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    7 天前
  • 签到天数: 1000 天

    连续签到: 1 天

    [LV.10]测试总司令

    3#
     楼主| 发表于 2020-9-21 19:15:56 | 只看该作者
    下午题难度略高,得有一定的基础功底,没事,后面会陆续公布解题思路和答案的。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    7 天前
  • 签到天数: 1000 天

    连续签到: 1 天

    [LV.10]测试总司令

    4#
     楼主| 发表于 2020-9-22 10:04:21 | 只看该作者
    问题1:
    1、i < 7
    2、i >= 7
    3、i != 1
    4、i == 1
    5、n == 5
    6、n != 5
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    7 天前
  • 签到天数: 1000 天

    连续签到: 1 天

    [LV.10]测试总司令

    5#
     楼主| 发表于 2020-9-22 10:05:00 | 只看该作者
    问题2:
    (1) 控制流图如下图所示:


    (2)、V(G)=3+1=4
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    7 天前
  • 签到天数: 1000 天

    连续签到: 1 天

    [LV.10]测试总司令

    6#
     楼主| 发表于 2020-9-22 10:05:55 | 只看该作者
    问题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…   
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    7 天前
  • 签到天数: 1000 天

    连续签到: 1 天

    [LV.10]测试总司令

    7#
     楼主| 发表于 2020-9-22 10:06:49 | 只看该作者
    问题1解析:
    本小题考查白盒测试中的判定覆盖法。
    判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得-次 “真”值和“假”值,从而使程序的每一个分支至少都通过一次。本题中程序一共有3个判定,所以满足判定覆盖一共就需要6个逻辑条件,这些条件详见上述答案。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    7 天前
  • 签到天数: 1000 天

    连续签到: 1 天

    [LV.10]测试总司令

    8#
     楼主| 发表于 2020-9-22 10:08:02 | 只看该作者
    问题2解析:
    本题考查白盒测试方法中的基本路径法。涉及到的知识点包括:根据代码绘制控制流图、计算环路复杂度。
    控制流图是描述程序控制流的一种图示方法。其基本符号有圆圈和箭线:圆圈为控制流图中的一个结点,表示一个或多个无分支的语句;带箭头的线段称为边或连接,表示控制流。基本结构如下所示:

    其中要特别注意的是,如果判断中的条件表达式是复合条件,即条件表达式是由一个或多个逻辑运算符连接的逻辑表达式,则需要改变复合条件的判断为一系列之单个条件的嵌套的判断。
    环路复杂度用来衡量一个程序模块所包含的判定结构的复杂程度。环路复杂度等于右图中的判定的节点个数加1。图中判定节点个数为3,所以V(G)=3+1=4。
    控制流程图的环路复杂性 V(G)一共有以下三种方法,但是最后一种最好用,不易出错。
    (1)控制流程图中的区域个数。
    (2)边数-结点数+2。
    (3)判定数+1。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    7 天前
  • 签到天数: 1000 天

    连续签到: 1 天

    [LV.10]测试总司令

    9#
     楼主| 发表于 2020-9-22 10:08:27 | 只看该作者
    问题3解析:
    本小题考查白盒测试用例设计方法之基本路径法。涉及到根据控制流图和环路复杂度给出线性无关路径。
    线性无关路径:指包含一组以前没有处理的语句或条件的路径。从控制流图上来看,一条线性无关路径是至少包含一条在其他线性无关路径中从未有过的边的路径。
    程序的环路复杂度等于线性无关路径的条数,所以本题中有4条线性无关路径。这4条路径组成了问题2中控制流图的一个基本路径集。只要设计出的测试用例能确保这些基本路径的执行,就可以使程序中的每个可执行语句至少执行一次,每个条件的取真和取假分支也能得到测试。需要注意的是,基本路径集不是唯一的,对于给定的控制流图,可以得到不同的基本路径集。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-24 09:48 , Processed in 0.070483 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表