可测试性战术
定义:软件可测试性是指通过测试(通常是基于运行的测试)揭示软件缺陷的容易程度。在开发设计良好的系统的成本中,至少有40%是用在了测试上。如果软件设计师能够降低此成本,则将会收到巨大的回报。 要想对系统进行正确的测试,必须能够“控制”每个组件的内部状态及其输入,然后“观察”其输出。这通常通过使用“测试工具”进行,这是一种专门设计的软件,用于执行所测试的软件。这可能会如同在各种接口上回放已记录的数据一样简单,也可能会像测试发动机的燃烧室一样复杂。 可测试性战术:可测试性战术的目标是允许在完成软件开发的一个增量后,较轻松地对软件进行测试。我们对两类用于测试的战术进行讨论:提供输入并捕获输出;内部监视。 输入输出:1.记录/回放。记录/回放是指捕获跨接口的信息,并将其作为测试专用软件的输入。在正常操作中跨一个接口的信息保存在某个存储库中,它代表来自一个组件的输出和传到一个组件的输入。记录该信息使得能够生成对其中一个组件的测试输入,并保存用于以后的比较的测试输出。 2.将接口与实现分离。将接口与实现分离允许实现的代替,以支持各种测试目的。点位实现允许在缺少被占位的组件时,对系统的剩余部分进行测试。用一个组件代替某个专门的组件能够使被代替的组件充当系统剩余部分的测试工具。 3.特化访问路线/接口。具有特化的测试接口允许通过测试工具并独立于其正常操作,来捕获或指定组件的变量值。例如