文章目录
可测试性
- 可测试性
- 可测试软件的特征
软体可测试性(Testability)是指一个软件工件(软体系统、模组、需求文件或设计文件等)在一给定的测试环境下,能够被测试的容易程度。
许多软件系统是不可测试的,或是无法立即测试。例如Google的ReCAPTCHA,若没有任何有关图片的元资料,则无法成为可测试的系统。不过若针对每一张图片,都有对应说明应有结果的标签,就可以测试此一系统。因此软件工件的可测试性不是内在性质,不像软件大小一样可以直接量测。软件可测试性是外在性质,由待测试的软件及测试目标、方法及测试资源(测试环境)之间的相互关系来决定。
低内聚性、高耦合性、存在冗余代码、缺乏封装的程序往往也是不容易测试的程序。若软件的可测试性低,可能会造成测试工作的增加。在一些极端的情形下,缺乏可测试性可能会使部分乃至全部的测试和评估无法进行。
为了要找到可测试性以及利用测试找到软件系统中潜在错误的难度的关系,需要评估可测试性的相对指标。例如,多少的测试用例才能完成足够的测试,数量较小则表示程序的可测试性高。
可测试软件的特征可测试软件的特征:
- 可操作性:运行的越好,越能有效的测试。
- 可观察性:所看见的就是所测的。
- 可控制性:对软件控制的越好,测试越能被自动执行和优化。
- 可分解性:通过控制测试范围,能够更快地分解问题,完成更灵巧的再测试。
- 简单性:需要测试的内容越少,测试的速度越快。
- 稳定性:变更越少,对测试的破坏越少。
- 易理解性:得到的信息越多,进行的测试越灵巧。
好的测试的特征:
- 好的测试具有较高的发现错误的可能性。
- 好的测试是不冗余的。
- 好的测试应该是最佳品种(时间和资源)。
- 好的测试应该既不太简单也不太复杂。