Testing 什么是分支机构覆盖范围?

Testing 什么是分支机构覆盖范围?,testing,flowchart,Testing,Flowchart,我正在准备ISTQB考试,我遇到了这个问题 对于下面给出的代码片段,哪个答案正确表示 报表和分支机构覆盖范围所需的最低测试 Discount rate=1; Fare = 1000; If ((person == “senior citizen”) and (“travel month = January”)) Bonuspoints = 100+Bonuspoints If (class==”first”) discountRate = .5; Fare = fare * discountRa

我正在准备ISTQB考试,我遇到了这个问题

对于下面给出的代码片段,哪个答案正确表示 报表和分支机构覆盖范围所需的最低测试

Discount rate=1;
Fare = 1000;
If ((person == “senior citizen”) and (“travel month = January”))
Bonuspoints = 100+Bonuspoints
If (class==”first”)
discountRate = .5;
Fare = fare * discountRate;
  • a。报表覆盖率=1,分支覆盖率=2
  • b。报表覆盖率=2,分支覆盖率=2
  • c。报表覆盖率=1,分支覆盖率=3
  • d。报表覆盖率=2,分支覆盖率=4
答案是A

但是我的答案是C,原因是我画的流程图如下

  • 从头到尾直截了当

  • 第一个“如果”为假

  • 第二个“如果”的第二个为假

  • 我的问题是:

  • 我们是否应该为“假”条件“明确”地画一条边,如果它本身没有给出问题
  • 这里的分行覆盖率是多少

  • 我认为你的图表/流程图不正确

    对我来说,两个IF语句都将始终运行,这更有意义。第一条IF语句中的“False”结果将意味着代码随后将执行第二条IF语句

    测试1将涵盖积极情景。你的两个IF语句都是真的,这意味着你的有条件语句的所有积极结果都将被完全传递

    测试2将为第一个IF语句提供False,然后为第二个IF语句提供False,该语句涵盖了该分支的所有负面结果。

    用于计算语句覆盖率 找出覆盖所有节点的最短路径数。
    在此流程图中,我定义了如下节点和边:

  • 1、2、3等为节点
  • A、 B、C等是边
  • 使用路径
    1A-2B-3C-4D-5G-6G-7H
    ,所有节点1,2,3。。。第7条包括在内。
    因此,语句覆盖率将为1,因为这里不需要其他路径来覆盖所有节点

    计算分支覆盖率的步骤 找出确保覆盖所有边缘的最小路径数

    对于路径
    1A-2B-3C-4D-5G-6G-7H
    ,我们在该流程图中涵盖了1个侧边(I,J剩余)

    因为那条路将是

    1A-2B-3I-5J  
    1A-2B-3C-4D-5G-6G-7H 
    
    通过结合上述两条路径,我们可以确保通过所有路径,因此正确答案是:-

    a。报表覆盖率=1,分支覆盖率=2

    流程图:-


    据我所知,代码中的条件范围与浮点数表中的条件范围不一致。您是否可以通过缩进等方式使其更加明确,请参见此处: