2013-01-06 219 views
0

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

为前:

if(x>0) 

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

3箱子足够供决定/条件覆盖。

if(x>0) 

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

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

这是真的吗?

回答

1

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

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


*我对冲我的赌注;这是很难证明一个否定的;)

+0

现有的白盒测试用例生成工具显然不能保证它们能够为所有程序提供完美的覆盖,但它们已经足够成熟,可以成为受欢迎的帮助(也就是说,它们处理的程序不够平凡以至于存在缺陷)。 –

0

是的,有工具可以生成测试用例来实现覆盖。如果所有你感兴趣的只是数字,一旦他们都在那里,你可以数它们。生成的测试套件通常至少具有以下特性:每个测试用例在添加(按顺序)时都会提高覆盖率。由于它们的工作方式,这些工具在实现的覆盖标准方面通常是灵活的。我想他们都允许决定/条件覆盖。

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

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

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

第三种是内部工具​​,Microsoft使用。

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