鉴于以下代码片段,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个测试用例。谁能说出以下问题的答案解释?
答案 0 :(得分:3)
我为您的代码构建了一个控制流程来帮助解释。
要实现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语句,因此只能有四种组合:
当外部陈述为假时,它将移至你的其他陈述。
希望这是有道理的。
答案 2 :(得分:0)
100% 决策覆盖率
代码遍历 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
将被执行。height > width
也为真。因此下一个声明
biggest_dimension = height
将被执行。案例 2。
Height = 7
Width = 5
Length = 6
在这种情况下,
width > length
将是假的。因此下一个声明
biggest_dimension = length
将被执行。height > length
为真。因此下一个声明
biggest_dimension = height
将被执行。因此,您至少需要进行 2 次测试才能达到 100% 的语句覆盖率。