理想情况下,软件工程师在设计计算机程序、系统或产品时应该考虑可测试性,这使得测试工程师能够更容易地设计有效的测试用例。

什么是可测试性?软件的可测试性是指软件发现故障并隔离、定位其故障的能力特性,以及在一定的时间和成本前提下,进行测试设计、测试执行的能力。James Bach 这样描述可测试性:软件可测试性是一个计算机程序能够被测试的容易程度。

以下是一个常见的软件可测试性检查表:

? 可操作性-运行地越好,被测试的效率越高;

? 可观察性-所看见的,是所测试的;

? 可控制性-对软件的控制越好,测试越能够被自动执行与优化;

? 可分解性-通过控制测试范围,能够更好地分解问题,执行更灵巧的再测试;

? 简单性-需要测试的内容越少,测试的速度越快;

? 稳定性-改变越少,对测试的破坏越小;

? 易理解性-得到的信息越多,进行的测试越灵巧;