一、测试需求概述(一) 什么是测试需求 定义是描述在应用程序中哪些部分需要被测试,简单来讲就是一个测试的范围。依据是软件规格说明书、市场需求,产品本身的属性。
(二)测试需求的特征1. 制定的测试需求项必须是可核实的。即,它们必须有一个可观察、可评测的结果,无法核实的需求不是测试需求; 2. 测试需求应指明满足需求的正常的前置条件,同时也要指明不满足需求时的出错条件; 3. 测试需求不涉及具体的测试数据,测试数据是测试设计环节应解决的内容。
(三)为什么需要测试需求1. 软件测试需求是开发测试用例的依据。 2. 有助于保证测试的质量与进度 。 3. 测试需求是衡量测试覆盖率的重要指标。
(四)测试需求分析要达到的目的1. 把不直观的需求->直观的需求(用例/活动图) 使得测试范围可以度量(功能点的数量、功能项的数量); 使得独立的功能点其对应的所有的处理分支可以度量; 使得该系统需要测试的业务场景可以度量 2. 把不明确的需求->明确的需求 明确其功能点对应的输入、处理、输出 3. 把不能度量的需求->可度量的需求
(五)软件需求与测试需求的区别软件需求:项目所要实现的功能以及要达到的性能,主要面向开发人员。 测试需求:描述的是测试点,包括各个功能点,功能间的交互,硬件及软件环境等,主要面向测试人员。
(六)需求分析与测试需求分析的区别需求分析:初步设想----原始需求---需求分析---需求规格:输入、处理和输出 测试需求分析:单功能点输入处理输出-----业务流分析----全局---隐式需求挖掘
需求分析和测试需求分析两者的过程是相反的。
二、.测试需求分析过程
1. 熟悉需求 2. 需求项整理 3. 提取出测试点 4. 测试点细化 5. 确定测试范围 6. 制定测试策略
(一). 需求采集需求采集的过程是将软件开发需求中的那些具有可测试性的需求或特性提取出来,形成原始测试需求。 可测试性是指这些提取的需求或特性必须存在一个可以明确预知的结果,可以用某种方法对这个明确的结果进行判断、验证,验证是否符合文档中的要求。
1. 需求采集的提取方法(1)通过列表的形式对软件开发需求进行梳理,形成原始测试需求列表,列表的内容包括需求标识、原始测试需求描述、信息来源。 (2)将每一条软件需求对应的开发文档及章节号作为软件需求标识。 (3)使用软件需求的简述作为原始测试需求描述。 (4)软件需求获取的来源信息作为信息来源。
提取的原始测试需求中,可能存在重复和冗余,在提取原始测试需求过程中,可以通过以下方法整理原始测试需求: (1) 删除:删除原始测试需求表中重复的、冗余的含有包含关系的原始测试需求描述; (2) 细化:对太简略的原始测试需求描述进行细化; (3) 合并:如果有类似的原测试始需求,在整理时需要对其进行合并。
2. 需求采集的内容(1)功能需求—输入方面 输入来源是什么? 输入数据数量是几个? 如果有错误输入,响应是什么? 什么是非法输入?什么是无效输入?
(2)功能需求—处理方面 输入数据的有效性检测的流程是什么? 操作的确切次序,包括各事件的时序是什么? 对异常情况的回应是什么?例如:溢出、通信失败、错误处理
(3) 功能需求—结果输出方面 输出到何处(如浏览器,打印机,文件)? 输出的数量是多少? 输出的时序是什么样的? 对非法值的处理是什么样的?
(4) 功能需求—性能需求方面 静态量化可能包含:支持的终端数目,支持的同时使用的用户数,处理的文件和记录的数目,表和文件的大小 动态量化可能包含:在正常或峰值工作量情况下一个特定时间段处理事务或任务的数目及数据量。在正常或峰值工作量情况下处理某个事务或任务所占用系统资源的数量
(5)功能需求—用户接口方面 系统用户显示时要求的屏幕格式 页面规划及报告或菜单的内容 输入和输出的相关时序 一些组合功能键的用法
(6)功能需求—硬件接口方面 描述软件产品和系统硬件组件之间接口的逻辑特征 该功能运行支持哪些设备?怎样支持这些设备和协议呢?
|