首先,让我们了解下什么是可测试性。 下面是可测试性的一种定义:
其中,可观察性是指在有限的时间内使用可观察到的输出来描述软件系统当前状态的能力;可控制性是指在特定的环境条件下,通过合理的操作控制软件系统的能力,包括状态控制和输出控制;可预见性是指预测软件系统状态发生变化的能力。 一个软件系统必须有输入、有输出。我们通过输出观察软件系统,通过输入控制软件系统。 理解了什么是可测试性,就能够知道如何通过设计来提高可测试性。具体做法如下:
通过先确定验收测试用例,再设计具体的功能;先确定性能、可靠性、安全性等测试用例,再进行架构设计,以满足这些质量特性的要求。通过测试驱动设计,可以确保设计能通过测试,设计的可测试性自然提高。
软件设计早已有了成熟的设计模式,设计师可以根据软件系统的需要选用合适的、成熟的设计模式和框架,这样就能够在一定程度上保证软件系统结构的低耦合性,单一的依赖关系,具有较高的可测试性。
通过分层设计,将数据显示层与控制层分离,增加软件系统的可观察性和可控制性。
在软件系统外部提供适当的方法、途径(如设立XML配置文件、暴露API接口、统一接口操作等)直接或间接控制相应的模块、流程、场景、全局变量和接口等。 -模块化设计 遵循模块化设计原则,使得所设计的模块相对稳定、规模合适,具有独立性和稳定性,有利于独立开展对模块的测试活动。
设计时遵循组织建立的设计标准、规范和设计原则,使设计描述规范、层次清晰、准确无歧义。 这正是: 测试过程贯始终,设计提高测试性 以上方法送给你,设计能力可提高 参考书目:全程软件测试,作者: 朱少民,出版社: 电子工业出版社 |
|