块覆盖和分支覆盖有什么区别?

What is the difference between block coverage and branch coverage?

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

顶Googlelink解释分支覆盖率:http://www.tutorialspoint.com/software_testing_dictionary/branch_testing.htm

块覆盖率(或"basic block coverage")和分支覆盖率是两种不同的代码覆盖率度量。块覆盖计算以分支为界的块。分支覆盖率计算实际分支。

这段代码片段

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%