(广泛的问题)你怎么能确定一段代码工作正常?

(Broad Question) How can you be certain a piece of code works correctly?

一位面试官问我如何确定一段代码按预期工作。我说通过所有可能的测试用例来测试代码。有没有其他方法可以确定一段代码可以工作?我也在考虑为代码编写数学证明,但我不确定这是否适用于所有类型的代码。

首先,"code works as intended to" 有两个方面:它按规定工作(验证,构建正确的产品)并以有用的方式工作(验证,构建正确的产品)。

你提到了证据,属于验证。此外,在验证领域也有某些类型的测试,例如单元测试。然后是静态代码分析等不太正式的验证方法。您还可以计入评论(如果它们违反规范)。还有很多。

还有很多方法可以用于验证,例如构建验收测试原型。最后,这总是朝着 "show something to the customer to see it goes in the right direction." 的方向发展,您甚至可以将敏捷开发领域的增量开发归入此类。

我非常喜欢这篇关于主题的文章:http://www.easterbrook.ca/steve/2010/11/the-difference-between-verification-and-validation/