测试设计的优劣将直接决定测试的质量。目前,多数企业或机构在进行测试设计的时候,一般没有测试需求分析过程,或者是进行了测试需求分析,但分析出的测试需求并不明确。这样,不利于对被测软件形成清晰全面的认识。实践显示,测试需求做得越详细准确,表明对所测软件的了解越深,对所要进行的测试任务越明确,从而越有把握保证测试的质量与进度。

  1、测试需求的定义

  确切地讲,测试需求是明确“测试什么”。测试需求不同于软件需求,软件需求用于指导后续设计的开展,而测试需求用来确定整个测试工作并作为测试覆盖的基础。测试需求是指在一定的测试策略前提下,对软件需求进行验证的测试要求,即明确“测试什么”。其确定将为制定进度时间表、分配资源以及确定某个阶段测试工作是否完成,提供一个可供衡量的标准,并为设计测试用例提供依据。测试需求必须是可核实的,也是说,测试需求必须有一个可观察、可评测的结果,无法核实的不是测试需求。清晰地定义测试需求,可以使测试工作目的明确,有的放矢。

  2、测试需求的依据

  测试需求通常以被测对象的软件需求为原型,从中进行分析转变而来。但测试需求并不等同于软件需求,它是从测试的观点对软件需求进行整理,并作为测试的主要内容。

  常见的测试需求来源包括软件需求规格说明、设计说明、用例(UseCase)、补充规约、商业理由、终用户访谈等。这些材料描述了软件系统所应具有的外部行为,即显性需求。但对于一个大型系统来说,可能还包括隐含的需求,比如软件必须遵从的标准、规范及合约等。为了提高需求分析的覆盖率,可通过分析软件的任务规则和必须遵从的标准、规范、合约等,提出系统隐含的需求,以保证终的测试需求满足测试要求。

  3、测试需求的分类

  对应于不同的测试目的,测试需求一般分为如下四类:

  (1)具体功能类:目标是检查各功能模块的业务要求是否被正确地实现;

  (2)业务流程类:目标是检查具有业务联系的各模块间的业务规则是否被正确地实现;

  (3)性能类:目标是检查性能指标是否被正确地实现;

  (4)其它非功能类:目标是检查其它非功能性指标要求是否被正确地实现。

  4、测试需求的分析

  测试需求分析是以测试的观点对软件需求进行整理、分析。下面主要说明具体功能类测试需求分析的方法。具体功能(即功能点)的软件需求主要有输入、处理、输出等,其测试需求也是从这几个方面分别进行分析。

  输入:主要是对输入数据项的规范性进行检查,包括数据类型、长度、精度、格式、有效范围,以及输入数据的来源、数量、度量单位和它们之间的约束关系等。

  处理过程:主要是对输入数据进行的所有操作以及如何获得输出的过程进行检查。

  输出:主要是对每个输出结果进行检查,包括输出数据的位置(如显示器、打印机、文件等),以及输出数据的数量、精度、度量单位、错误消息等。