任何人都可以解释这个程序的输出

时间:2017-03-09 11:38:06

标签: testing code-coverage manual test-coverage manual-testing

鉴于以下代码片段,100%决策覆盖需要多少次测试?

if width > length then 
    biggest_dimension = width 
    if height > width then
        biggest_dimension = height 
    end_if 
else 
    biggest_dimension = length    
    if height > length then 
        biggest_dimension = height    
    end_if    
end_if

回答上述问题是4。 100%决策覆盖需要4个测试用例。谁能说出以下问题的答案解释?

3 个答案:

答案 0 :(得分:3)

control flow

我为您的代码构建了一个控制流程来帮助解释。

要实现100%的决策覆盖需要4次测试,因为" True"和"错误" " IF"声明必须由代码行使。编写的代码有一个" IF"第一个" IF"声明,需要4个不同的测试才能做出每个决定。

示例测试:

  • 测试1:宽度= 50厘米,长度= 40厘米,高度= 40厘米

  • 测试2:宽度= 50厘米,长度= 40厘米,高度= 60厘米

从这两项测试中,决策覆盖率现在为50%,因为已经执行了一半的决策结果(#34; True"第一个" IF")

  • 测试3:宽度= 40厘米,长度= 50厘米,高度= 40厘米

  • 测试4:宽度= 40厘米,长度= 50厘米,高度= 60厘米

通过这两项测试," False"第一个" IF"行使了。这将使决策覆盖率达到100%。

答案 1 :(得分:0)

有四个测试用例,因为只有外部语句为真时才能访问内部if语句,因此只能有四种组合:

  • outer = true,inner = true
  • outer = true,inner = false
  • outer = false,inner = true
  • outer = false,inner = false

当外部陈述为假时,它将移至你的其他陈述。

希望这是有道理的。

答案 2 :(得分:0)

100% 决策覆盖率

enter image description here

代码遍历 4 条路径/决策以获得 100% 的决策覆盖率。

当决策语句嵌套时会发生这种情况。在这种情况下

height > width”仅在“width > length”为真时执行。

height > length”只有在“width > length”为假时才执行。

因此,覆盖 100% 决策测试所需的最少测试用例数为 4。


100% 声明覆盖率

对于同一段代码,只需 2 组输入即可实现 100% 语句覆盖率,

案例 1。

Height = 10
Width = 8
Length = 5

在这种情况下,

  • if width > length 为真。因此下一个声明 biggest_dimension = width 将被执行。
  • if height > width 也为真。因此下一个声明 biggest_dimension = height 将被执行。

案例 2。

Height = 7
Width = 5
Length = 6

在这种情况下,

  • if width > length 将是假的。因此下一个声明 biggest_dimension = length 将被执行。
  • if height > length 为真。因此下一个声明 biggest_dimension = height 将被执行。

因此,您至少需要进行 2 次测试才能达到 100% 的语句覆盖率。