I'm trying to get my head around the differences between these 2 coverage criteria and I can't work out how they differ. I think I'm failing to understand exactly what decision coverage is. My software testing textbook states that compound decision coverage can be costly (2n combinations for n basic conditions).
我原以为基本条件保险会更贵。
考虑a && b && c && d && e
。我的理解是,在基本条件覆盖中,每个原子变量在测试用例中都必须具有值 TRUE 和 FALSE,以便测试用例具有基本条件充分性 - 这是 32 个不同的测试用例。
那么实际的区别是什么,以及所谓的“基本条件”是什么。在上面的例子中,是a
一个基本条件?
Thanks.
关于术语,我没有一个方便的来源使用确切的术语“基本条件覆盖”和“多重条件覆盖”。 Binder的《Testing Object-Oriented Systems》说“条件覆盖”和“多条件覆盖”。 Everett & McLeod 的“软件测试”说“简单条件覆盖”和“复合条件覆盖”。但我确信每种情况下的第一个术语是您的“基本状况保险”,第二个是您的“复合状况保险”。我将在下面使用这些术语。
基本条件保障意味着程序中的每个基本条件在某些测试中为真,在某些测试中为假,无论其他条件如何。在下面的
if a && b && c
# do stuff
else
# do other stuff
end
存在一个复合条件,a && b && c
,具备三个基本条件,a
, b
and c
。只需要两个测试用例,一个所有基本条件都为真,一个所有基本条件都为假,即可获得完整的基本条件覆盖。基本条件碰巧是复合条件的一部分并不重要。
请注意,基本条件覆盖不是分支覆盖。如果复合条件是a && b && !c
,上面的两个测试用例仍然可以实现基本条件覆盖,但不会实现分支覆盖。
针对基本条件覆盖率进行不太积极优化的一组测试用例将包含一个测试用例,其中所有三个基本条件均为假,以及三个测试用例,每个测试用例的不同基本条件为真。这仍然只是复合条件中基本条件的八种可能组合中的四种。我们忽视其他四个的不舒服的感觉就是为什么复合条件覆盖。这需要对复合条件下基本条件的每种可能组合进行测试。在上面的示例中,您需要八个测试,每个测试对应以下可能值的每种可能组合a
, b
and c
,以获得完整的复合条件覆盖。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)