是否有工具可以显示提供决策/条件覆盖的测试用例数量?
例如:
if(x>0)
if(x<=10 && y>0)
3 个案例足以覆盖决策/条件。
if(x>0)
if(x<=10 || y>0)
4 个案例足以覆盖决策/条件。
这是真的吗?
可能不会。* 除了像这样的微不足道的情况外,很难弄清楚可能的情况的数量。
另一方面,有代码覆盖率工具,可以跟踪你的代码在测试中实际运行的百分比。
是的,有一些工具可以生成测试用例以实现覆盖。如果您只对数字感兴趣,那么您可以在它们都在那里后数一数。生成的测试套件通常至少具有每个测试用例在添加时提高覆盖率的属性(按顺序)。由于它们的工作方式,这些工具通常在要实现的覆盖标准方面是灵活的。我猜他们都允许决策/条件覆盖。
我们提出了一种新的符号执行工具 KLEE,它能够自动生成测试,从而在各种复杂和环境密集型程序上实现高覆盖率。
来自http://llvm.org/pubs/2008-12-OSDI-KLEE.html
另一个测试用例生成工具是PathCrawler
第三个是微软使用的内部工具Sage。
这些工具所依赖的技术的通用名称是concolic testing。正如 Oli 在他的回答中指出的那样,这些工具正在解决一个难题,因此设计空间非常大,并且这些工具之间的细节差异很大。