不完整的测试与详尽的分析是否与苹果到橙子的比较?

时间:2017-10-09 10:12:07

标签: alloy

我经常听到这样的论点:传统测试的一个缺点是它是不完整的,而合金分析是详尽无遗的(在一定范围内)。但是,第一个是谈论软件,第二个是谈论模型。这不是苹果与橘子的比较吗?

更新:我错了。比较不是这样的:testing code versus analyzing models。这是一个从苹果到橙子的比较。相反,比较是:

Testing models versus analysis of models.

Testing code versus analysis of code.

这些是苹果对苹果的比较。

因此,无论工件是模型还是代码,您都可以比较两种分析:测试,对应于随机绘制相对少量的案例,不受大小限制,与小范围分析相比,涉及所有案例都在一个小范围内。

感谢Daniel Jackson解决了我的误解。

1 个答案:

答案 0 :(得分:2)

首先,当Alloy被发明时,用于分析数据丰富的语言(如Z和VDM)中不是基于证据的模型的现有工具仅用于测试模型。每个场景都是由用户构建的,因此这种方法会产生创建场景的成本和少量的低覆盖率。

其次,Alloy已被用于查找代码中的错误:请参阅Mandana Vaziri,Mana Taghdiri,Greg Dennis,Juan Pablo Galeotti等人的博士论文。在所有这些中,发现了错误的传统测试。

第三,值得注意的是,有限 - 详尽的测试形式正在变得可行。 Sarfraz Khurshid是这项工作的先驱,他的论文是关于生成测试用例,最初是在一个名为TestEra的工具中,基于Alloy,后来(与Darko Marinov等人在一个名为Korat的工具中)交换了一个更加有节制的求解方法约束