什么是分支机构覆盖?

时间:2017-04-23 12:19:36

标签: 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 * discountRate;
     
      
  • 一个。报表覆盖率= 1,分支覆盖率= 2
  •   
  • 湾报表覆盖率= 2,分支覆盖率= 2
  •   
  • ℃。报表覆盖率= 1,分支覆盖率= 3
  •   
  • d。报表覆盖率= 2,分行覆盖率= 4
  •   

答案是 A

但我的回答是 C ,原因是我在下面给出的流程图。

  1. 从头到尾直接前进

  2. 第一个'if'

  3. 的错误
  4. 第二个错误,第二个'如果'

  5. Flow chart

    我的问题是:

    1. 我们是否应该'明确'为'假'条件画一条边,如果没有问题本身。
    2. 这里的分支覆盖率是多少?

2 个答案:

答案 0 :(得分:2)

我相信您的图表/流程图不正确。

对我来说更有意义的是, IF 语句将始终运行。 A'错误'导致第一个 IF 语句将导致代码执行第二个If语句。

测试1 将涵盖积极情景。您的 IF 语句都将为TRUE,表示完整传递条件语句的所有正面结果

测试2 将为第一个 IF 语句提供False,然后再次为第二个 IF 语句提供False,其中包含所有否定这个分支的成果。

答案 1 :(得分:0)

计算报表覆盖率

找出所有节点将被覆盖的最短路径数 在此流程图中,我已经定义了节点和边缘,如下所示:

  1. 1,2 3等是节点
  2. A,B,C等是边缘
  3. 使用路径1A-2B-3C-4D-5G-6G-7H,覆盖所有节点1,2,3 ... 7 因此,Statement Coverage将为1,因为我们不需要其他路径来覆盖所有节点。

    计算分支覆盖率

    找出确保覆盖所有边缘的最小路径数。

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

    该路径的

    将是

    1A-2B-3I-5J  
    1A-2B-3C-4D-5G-6G-7H 
    

    通过结合上述两条路径,我们可以确保穿越所有路径,所以正确的答案是: -

      

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

    流程图: -

    enter image description here