我正在思考我在一本书中读到的一些东西:“设计良好的系统是可测试的系统”,我想知道为什么会这样。
当然,经过大量测试的系统可能设计得很好。从根本上建立在测试第一原则和假设基本能力,这是很难想象一个非常糟糕的设计。
但这一声明推翻了这样的观点:一个设计良好的系统是可测试的。为什么?是因为好的测试在默认情况下是小的和简单的,所以对一个糟糕的设计(糟糕的设计通常意味着大型和复杂的类)进行好的测试更困难吗?或者说,当所讨论的类是上帝类时,很难孤立地测试类的单个方面?
发布于 2014-01-26 20:20:44
可测试性意味着松散耦合。如果系统的每个组件都可以单独测试,那么系统的可测试性就会大大提高。只有当每个组件之间的耦合保持松散时,才能实现这一点。
松耦合是良好设计的一个方面。
发布于 2014-01-26 20:23:24
我认为这句话肯定了“精心设计”的定义。如果你说它是“要使系统设计得很好,它必须是可测试的。”然后就开始有意义了。
可测试性是系统的良好特性,能够创建和运行自动化测试比手动测试便宜得多。
发布于 2014-01-26 20:24:08
另一种观点:
“设计良好”的软件系统的一个特点是,它通常是由正交的、可组合的部分组成的。每个部分在概念上应该是“纯的”--它应该处理一个也是唯一一个问题的“关注”或需要解决的问题的一个方面。
编写这样的程序需要经过很多思考才能找到正确的解决方案。但是当你这样做的时候,有很多好处--可测试性通常就是其中之一。
https://softwareengineering.stackexchange.com/questions/225558
复制相似问题