1.3.1 可测试性的定义

软件的可测试性是指在一定时间和成本的前提下,进行测试设计、测试执行,以此来发现软件的问题,以及发现故障并隔离、定位故障的能力。各种组织对可测试性有不同的定义,笔者认为它们的本质是相通的,都是在说软件系统能够被测试的难易程度,或者说软件系统可以被确认的能力。

笔者个人比较喜欢的定义来自James Bach:可测试性就是指一个计算机程序能够被测试的难易程度。

测试设计能力(即创造性地设想各种可能性,并设计相应场景)是每个软件测试人员的核心能力,但是如何根据测试设计构造出所需要的测试条件,如何高效执行测试,以及在测试执行过程中如何对结果进行实时的观察和验证,则是可测试性需要解决的问题。