1.可测试性描述了测试信息获取的难易程度

可测试性包括两方面的含义:一方面,便于对软件的内部状态进行控制,即所谓的可控性;另一方面,能够对软件的内部状态进行观测,即可观测性。实际上,可控性和可观测性所描述的是对软件进行测试时信息获取的难易程度。传统的“黑箱”功能测试方法的根本缺陷在于它难以获取有效表征被测对象内部状态的信息。

2.可测试性是软件本身的一种设计特性

同可靠性(reliability )一样,可测试性也是软件本身所固有的一种设计特性。软件的可测试性并不是可测试性设计所赋予的,软件一旦设计生产出,本身具备了一定的可测试性。正如可靠性可以通过MTBF等可靠性指标度量一样,可测试性也可以通过可控性、可观测性指标来度量。要改善软件的可测试性指标,必须在软件设计阶段进行良好的可测试性设计。

3.可测试性技术的终目标是提高软件的质量和可靠性,降低全寿命周期费用

降低软件的费用,追求软件的高质量是工业界的永恒主题。目前,单纯合格与否的传统质量标准已转变为综合了性能指标、可靠性及可用性(availability)指标要求的“完整质量”概念,而传统的仅考虑软件设计和生产费用的产品费用则被“全寿命周期费用”的概念所替代。全寿命周期费用包括软件整个生命周期中从概念形成到报废处理全过程的费用。

可测试性技术的应用可以极大地提高软件的“完整质量”,降低其全寿命周期费用。一方面,在软件设计阶段,可以对软件设计原型进行虚拟测试,验证设计方案,排除可能的设计缺陷;在生产阶段,可以对软件进行全面的测试,排除软件的潜在故障,从而降低使用过程中的故障率,提高其质量和可靠性;另一方面,可测试性技术可以缩短软件研制、试验和评价的周期,降低软件的研制费用,提高软件的可用性指标,减少软件的维护和保障费用,从而降低软件的全寿命周期费用。