决定/条件覆盖范围

时间:2013-01-06 19:06:19

标签: testing white-box

是否有工具显示提供决策/条件覆盖的测试用例数量?

代表:

if(x>0)

if(x<=10 && y>0)

3个案例足以作出决定/条件覆盖。

if(x>0)

if(x<=10 || y>0)

4个案例足以作出决定/条件覆盖。

是真的吗?

2 个答案:

答案 0 :(得分:1)

可能不是。*除了像这样的微不足道的情况之外,很难弄清楚可能的案件数量。

另一方面,还有代码覆盖工具,可以跟踪代码在测试中实际运行的百分比。

<小时/> *我正在对冲我的赌注;它很难证明是消极的;)

答案 1 :(得分:0)

是的,有些工具可以生成测试用例以实现覆盖。如果您感兴趣的只是数字,那么一旦它们全部存在,您就可以计算它们。生成的测试套件通常至少具有每个测试用例在添加时(按顺序)改善覆盖范围的属性。由于它们的工作方式,这些工具通常在覆盖标准方面具有灵活性。我猜它们都允许决策/条件覆盖。

  

我们提供了一种新的符号执行工具KLEE,能够自动生成测试,以便在各种复杂和环境密集型程序中实现高覆盖率。

来自http://llvm.org/pubs/2008-12-OSDI-KLEE.html

另一个测试用例生成工具是PathCrawler

第三个是Microsoft使用的内部工具Sage

这些工具所依赖的技术的通用名称是concolic testing。因为正如Oli在他的回答中指出的那样,这些工具正在解决这个问题,设计空间非常大,而且这些工具之间的细节差异很大。