好的软件设计/架构和可测性是关联在一起的。
1)紧耦合。紧耦合的特点是:“不把大半个系统实例化就无法测试”。
2)弱内聚。弱内聚的特点是:“这个类实现了太多功能,导致测试非常复杂”。
3)冗余。冗余的特点是:“同一个方法在多处使用,每一个地方都得测试”。
提高软件的可测性并不会给软件开发工程师和软件架构师带来太多额外的考虑,并不需要付出太多额外的代价。就是说,一个经过良好设计的、可自诊断、可管理、可维护的高质量软件本身的可测性就很高。如果说有代价,也就是开发工程师自身软件设计和开发水平提高时所必须付出的投入。
提高软件可测性的同时其实也提高了软件的可维护、可管理性。