Testing 决定/条件覆盖

Testing 决定/条件覆盖,testing,white-box,Testing,White Box,是否有一个显示测试用例数量的工具来提供决策/条件覆盖 例如: if(x>0) if(x<=10 && y>0) if(x>0) if(x0) 3个案例足以覆盖决策/条件 if(x>0) if(x<=10 || y>0) if(x>0) if(x0) 4个案例足以覆盖决策/条件 if(x>0) if(x<=10 || y>0) 这是真的吗?可能不是。*除了像这样的琐碎情况,很难计算出可能的案例数量 另一方面,还有

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

例如:

if(x>0)

if(x<=10 && y>0)
if(x>0)
if(x0)
3个案例足以覆盖决策/条件

if(x>0)

if(x<=10 || y>0)
if(x>0)
if(x0)
4个案例足以覆盖决策/条件

if(x>0)

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

这是真的吗?

可能不是。*除了像这样的琐碎情况,很难计算出可能的案例数量

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



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

是的,有一些工具可以生成测试用例以实现覆盖率。如果你只对数字感兴趣,你可以在它们全部出现后数一数。生成的测试套件通常至少具有这样的属性,即每个测试用例(按顺序)添加时都提高了覆盖率。由于它们的工作方式,这些工具通常在要实现的覆盖率标准方面是灵活的。我猜他们都允许决策/条件覆盖

if(x>0)

if(x<=10 || y>0)
我们提出了一种新的符号执行工具KLEE,它能够自动生成测试,从而在各种复杂且环境密集的程序集上实现高覆盖率

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

第三个是微软内部使用的工具


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

现有的白盒测试用例生成工具显然不能保证它们能完美地覆盖所有程序,但它们足够复杂,可以成为受欢迎的帮助(也就是说,它们处理的程序非常重要,可能会有bug)。