我正在试用 Spec Explorer,现在我遇到了这个错误,导致我的测试套件不完整。我没有收到错误或任何错误,只是我希望有 16 个测试用例,而我只有 11 个。
我遇到的问题是 Spec Explorer 2010 中的示例项目。因为我是新手,所以我在示例项目中尝试了不同的东西,所以像扩大范围和扩大双加到四倍这样的东西添加。最后一个是我注意到我遗漏了一些测试用例的地方。我将其改回三次添加,以查看问题是否存在。正如我所料,我又错过了一个测试用例。只有三元组,我期望有 8 个测试用例,但我只得到了 7 个。 我在代码中唯一更改的是:
machine DoubleAddScenario() : Main where ForExploration = true
{
(Add(_); Add; Add; ReadAndReset)*
}
我也试过这样做
(Add(_); Add(_); Add(_); ReadAndReset)*
但是同样的问题。我缺少的测试用例是 Add(1);添加(2);添加(1)。我也试过只调用这个,而且有效,那么为什么我的测试套件中没有它?
是我做错了什么,还是 Spec Explorer 为我过滤了一些东西?如果是 Spec Explorer,它会在哪里做出这个决定?
最佳答案
好问题。缺少测试用例的原因是,Spec Explorer 使用步骤(转换)覆盖而不是完整路径覆盖作为覆盖标准。因此,您会发现一个在第一步中使用“Add(1)”的测试用例,另一个在第二步中使用“Add(2)”的测试用例,最后一个在步骤 3 中使用“Add(1)”但不使用的测试用例必须是一个具有精确组合的测试用例。您可以在论坛和 Spec Explorer 的帮助中找到答案(因为那里确实提出了很多问题):
http://msdn.microsoft.com/en-us/library/ee620427.aspx
Spec Explorer 用于现实世界的测试,因此必须解决路径覆盖呈指数爆炸的问题(只是 MBT 中的众多问题之一)。 Spec Explorer 极其酷的解决方案是 Cord 语言(如果需要,也可以是常规语言)。 Spec Explorer 不再需要繁琐的测试用例编程,而是让我们现在可以只用场景勾勒出测试用例的草图。细节和组合来自通用模型。实际上,这是我们(至少我所做的所有项目)真正想要的。如您所见,如果确实需要,您可以添加缺少的测试用例。
关于visual-studio-2012 - 未使用 Spec Explorer 2010 完成测试套件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25876451/