软件可测试性

科技工作者之家 2020-11-17

软件可测试性(Software testability)是指一个软件工件(软件系统、模组、需求文件或设计文件等)在一给定的测试环境下,可支援测试的程度。

简介软件工件的可测试性不是一个内在性质,不像软件大小一様可以直接量测。软件可测试性是一个外在性质,由待测试的软件及测试目标、方法及测试资源(测试环境)之间的相互关系来决定。

若软件的可测试性低,可能会造成测试工作的增加。在一些极端的情形下,缺乏可测试性可能会使部分甚至全部的测试或软件需求无法进行。1

背景知识依照实证的假设,软件测试的工作量及有效性和以下几个因素有关:

软件需求的性质。

软件本身的性质(像大小、复杂度及可测试性)。

测试方法的的性质。

开始及测试流程的性质。

和测试流程有关人员的资格和动机。1

软件元件的可测试性软件元件(模组或类别)的可测试性和以下因素有关:

可控制性:是否可以将待测元件的状态控制到如测试条件要求。

可观察性:是否可以观察(中间或最后的)测试结果。

可隔离性:待测元件是否可以隔离测试。

关注点分离:待测元件是否有单一且清楚定义的任务。

易懂性:待测元件是否有说明文档,或是本身可读性很高。

可自动化性:待测元件是否可以自动测试。

异质性:是否需要不同的测试方法及工具平行测试。

软件元件的可测试性可以用以下方式提升:

测试驱动开发

可测性设计(design for testability),类似硬件的为测试而设计。1

需求的可测试性具有测试性的软件需求需求要符合以下的条件:

一致性

完整性

明确不含糊

可量化(像“反应时间快”的需求是无法被验证的)

实务上的软件验证及确认(不只是理论上可行,在有限资源下也是可实现的)1

可测试性可测试性是有关实验假说的一种性质,包括二个方面:

在逻辑上的性质,包括偶然性、可废止性或是可证伪性,也就是说逻辑上此假说是有可能出现反例。

在实务上的性质,意思是指若存在反例,反例有再现性

简单来说,若假说有可测试性,表示实际上有可能可以根据结果判断假说的正确与否。2

本词条内容贡献者为:

王慧维 - 副研究员 - 西南大学

科技工作者之家

科技工作者之家APP是专注科技人才,知识分享与人才交流的服务平台。