软件测试需求是开发测试用例的依据,测试需求分解的越详细,表明对所测软件的了解越深,对所要进行的任务内容越清晰,对测试用例的设计质量的帮助越大。详细的测试需求还是衡量测试覆盖率的重要指标,测试需求是计算测试覆盖的分母,没有详细的测试需求无法有效的进行测试覆盖计算。

  软件测试执行阶段是由一系列不同的测试类型的执行过程组成的,每种测试类型都有其具体的测试目标和支持技术,每种测试类型都只侧重于对测试目标的一个或多个特征或属性进行测试,准确的测试类型可以给软件测试带事半功倍的效果。


  现有的软件测试分析技术不太成熟,对测试需求和测试类型的分析,所采用的方法主要是根据经验进行收集、整理,该方法依赖于测试设计人员的测试经验,由此方法得出的测试需求、测试类型往往导致测试用例设计不充分,测试覆盖度低,测试目的性不强,容易遗漏等缺陷。


  可见,如何对测试需求进行细致的整理分析,明确测试执行时的测试类型,是一个亟待解决的问题。


  有鉴于此,本方法的主要目的在于提供一种软件测试需求的分析方法,可以方便、详尽的获取测试需求,明确测试执行时需要实施的测试类型。

 

  为实现上述目的,本方法提供了一种软件测试需求分析的方法,包括以下步骤:

  a)列出软件开发需求中具有可测试性的开发需求;

 

  b)对步骤a)列出的每一条开发需求,形成可测试的分层描述的测试需求;

 

  c)对步骤b)形成的每一条测试需求,从GB/T 16260.1-2006《软件工程 产品质量 第1部分:质量模型》中定义的软件内部/外部质量模型来确定软件产品的质量需求;


  d)对步骤c)所确定的质量需求,分析测试执行时需要实施的测试类型;

  e)建立测试需求跟踪矩阵,对测试需求进行管理。


  具体实施方式:

  下面结合附图及实施例对本方法做详细的说明。

  建立开发需求列表,参见图2。将每一条软件需求对应的开发文档及章节号作为软件需求标识,使用软件需求的简述作为原始测试需求描述,没有文档来源的开发需求可用隐含需求或遗漏需求进行标识,标明软件需求获取的来源信息,如开发文档、相关标准、与用户或开发人员的交流等。

  由于在提取的开发需求中可能存在重复和冗余,需要进行整理,通过以下方法整理开发需求:

  1)删除:删除原开发需求列表中重复的、冗余的含有包含关系的开发需求描述;

  2)细化:对太简略的开发需求描述进行细化;


  3)合并:如果有类似的开发需求,在整理时需要对其进行合并。

 

  在图2表中,对于每一条开发需求,从测试角度来考虑,形成可测试的分层描述的测试需求。具体地,通过分析每条开发需求描述中的输入、输出、处理、限制、约束等,给出对应的验证内容;通过分析各个功能模块之间的业务顺序,和各个功能模块之间传递的信息和数据,对存在功能交互的功能项,给出对应的验证内容。


  对每一条测试需求,从GB /T16260.1定义的软件质量子特性角度出发,确定所对应的质量子特性。即,从适合性、准确性、互操作性、保密安全性、成熟性、容错性、易恢复性、易理解性、易学性、易操作性、吸引性、时间特性、资源利用性、易分析性、易改变性、稳定性、易测试性、适应性、易安装性、共存性、易替换性和依从性方面的定义出发,确定每一条测试需求所对应的质量子特性。

  软件测试可以划分为以下测试类型:功能测试、安全性测试、接口测试、容量测试、完整性测试、结构测试、用户界面测试、负载测试、压力测试、疲劳强度测试、恢复性测试、配置测试、兼容性测试、安装测试等。

 

  不同的质量子特性可以确定出不同的测试内容,这些测试内容可以通过不同的测试类型来实施。例如,从易安装性方面考虑,测试内容包括测试软件安装的工作量、安装的可定制性、安装设计的完备性、安装操作的简易性、是否容易重新安装,这对应了测试类型中的安装测试,通过安装测试可以验证这些测试内容。