【问题标题】:What is the difference between block coverage and branch coverage?块覆盖和分支覆盖有什么区别?
【发布时间】:2016-06-21 01:04:07
【问题描述】:

块覆盖和分支覆盖是一样的,是相似的还是完全不同的?

解释分支覆盖率的顶部 Google 链接:http://www.tutorialspoint.com/software_testing_dictionary/branch_testing.htm

【问题讨论】:

    标签: unit-testing testing code-coverage metrics code-metrics


    【解决方案1】:

    块覆盖率(或“基本块覆盖率”)和分支覆盖率是代码覆盖率的两种不同度量。块覆盖计算以分支为界的块。分支覆盖率计算实际分支。

    这段代码

    puts "I'm block 1"
    if condition
      puts "I'm block 2"
    else
      puts "I'm block 3"
    end
    puts "I'm block 4"
    

    有四个块但只有两个分支,if/else的两侧。如果此代码仅通过一项测试进行测试,并且condition 在该测试中为真,

    • 区块 1、2 和 4 将被覆盖,因此区块覆盖率为 75%
    • if 的真实分支将被覆盖,但if 的虚假分支不会被覆盖,因此分支覆盖率为 50%

    【讨论】:

    • 感谢您提供的简单说明性示例!
    • 我很确定在您给定的示例中只有 3 个块; 1 和 4 是同一个块。
    • 很有可能。我想我用当时方便的工具对此进行了测试,但我现在还没有。如果一个工具将条件句之外的所有程序/函数/方法视为单个块,则示例中的块覆盖率为 67%,与分支覆盖率仍然不同。
    • 块覆盖与行覆盖有何不同?
    • @SrinivasCharanMamidi 这是一个不同的问题。自己提出一个新问题。
    猜你喜欢
    • 2018-09-27
    • 1970-01-01
    • 1970-01-01
    • 2015-02-08
    • 1970-01-01
    • 2013-03-08
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    相关资源
    最近更新 更多