我有一个 C# 商业应用程序,带有单元测试。我可以通过使用 NModel 或 Spec Explorer 来提高可靠性并减少我的测试时间和费用吗?或者,如果我用 F#(甚至 Haskell)重写它,我会看到哪种(如果有)可靠性增加?
代码契约?阿斯麦?
我意识到这是主观的,并且可能是有争议的,所以如果可能的话,请用数据支持你的答案。 :) 或者也许是一个有效的例子,例如 Eric Evans Cargo Shipping System?
如果我们考虑
Unit tests to be specific and strong theorems, checked quasi-statically on particular “interesting instances” and Types to be general but weak theorems (usually checked statically), and contracts to be general and strong theorems, checked dynamically for particular instances that occur during regular program operation. (from B. Pierce's Types Considered Harmful),
这些其他工具适用于何处?
我们可以使用 Java PathFinder、Scala 等为 Java 提出类似的问题。
最佳答案
可靠性是几个变量的函数,包括软件的总体架构、程序员的能力、需求的质量以及配置管理和一般 QA 流程的成熟度。所有这些都会影响重写的可靠性。
话虽如此,语言肯定会产生重大影响。在所有其他条件相同的情况下:
把所有这些东西放在一起,你应该有一个强大的工具包来在整个开发生命周期中提高质量。不幸的是,我不知道有任何有力的研究可以证明这一点。我在开始时列出的所有因素都会混淆任何真正的研究,并且在一个明确的模式出现之前你需要大量的数据。
关于haskell - 对于可靠的代码、NModel、Spec Explorer、F# 或其他?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2767295/