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