1、测试需求的定义
测试需求就是指:什么是我们所要测试的
测试需求关注于What
测试需求说明了在一个软件测试项目中:
项目的测试范围
在测试项目中,我们需要进行开发生命周期中哪些阶段测试
● 单元测试
● 集成测试
● 系统测试
● 验收测试
项目的测试目标
● 系统的哪些特性需要被测试以保证这些特性的质量。
● 系统特性包括:功能、性能、易用性、安全性、兼容性……
● 测试目标要根据系统的特点进行分解细化,分解到一个可测试的粒度,即单项具体的特性。
● 未经分解细化,笼统的、整体或者概括性的特性不利于测试工作的开展。
2、测试需求的重要性
● 保证测试人员、项目经理、客户的测试目标一致
● 在有限的时间内做更有效的测试
● 有效估计项目所需资源
● 合理资源分配
● 避免出现测试逃逸现象
● 测试进度跟踪
● 有效计算测试覆盖
3、测试需求的类型
● 功能性测试需求:功能性需求描述了系统的特征或系统提供的服务。主要包括:系统功能、业务流程、界面功能和风格、系统安装等
● 非功能性测试需求:非功能性需求描述了施加于系统操作上的约束。主要包括:性能要求、安全性要求、兼容性要求、移植性要求等
4、测试需求的组成
主体内容包括:
需求标识、需求名称、需求描述、优先级、类型、状态、创建信息、关联测试用例、其它根据项目特点和要求而定制的内容
5、测试需求结构
测试需求的制订按级别进行分解
完成的测试需求是树形的结构,用纵向的树形结构表示(类似于资源管理器的文档结构)
枝干节点一般用于表达需求的分类或高阶的系统特性(如同计算机中的分类目录 )
叶子节点则用于表达具体需要测试的特性(如同计算机中目录下的具体文件)
6、测试需求分析过程
第一步,描绘轮廓:就是要将整个应用程序要进行测试的范围描绘出来,包括测试目标、对象和策略等。(可通过阅读文档和钻研系统、确定系统特性及风险因素来确定)
第二步,分解单元:对测试范围进行分解,根据其结构分解成不同级别的单元,形成树形测试需求。如:子系统、模块、业务类型等。(考虑单元的粒度)
第三步,单元细化:对这些单元进行最终的细化,分解成具体的功能和处理条件、业务和不同场景等。细述每项测试需求,设定优先级
阅读文档和钻研系统:
● 学会阅读文档和钻研业务
● 索要文档、同类系统、系统原型
● 积极参加培训和讨论
● 各团队之间的沟通交流
● 积极主动去询问——向测试经理、客户、开发经理等
● 确定系统特性——从特性中考虑重点、需求
确定系统特性:
在软件测试需求分析中,我们可以从被测试系统的一些基本特征,来确定系统的一些需求、重点等。可以考虑的特征包括:
● 架构
● 开发平台
● 运行环境架构
● 根据业务特点,推测系统的测试重点、难点……
7、测试需求的风险因素
● 优先级
● 可测与不可测
● 测试的代价
● ……
8、测试需求的粒度
● 测试需求的粒度,要根据实际情况来确定
● 测试类型和阶段
● 不同的测试阶段
● 不同的测试类型
● 测试资源情况
● 人力
● 时间
● 水平
9、测试需求分析方法和原则
1)原则:
功能性需求
● 系统功能需求:
根据系统架构,从高到低逐级细分
关注具体的系统功能及功能的不同处理情形
粒度以到不同的处理情形为宜
正常与异常处理情形都要考虑
● 界面需求:
界面功能
根据界面划分
考虑控件对各种输入的响应
界面元素
考虑元素各种属性(位置、大小、颜色、显示等)
先整体后局部
局部按界面划分
考虑内容正确性
● 安装需求:
缺省安装配置优先
按照安装配置结构划分
考虑所有安装配置
考虑安装过程中的异常行为
● 业务需求:
根据业务结构和分类,从上至下逐级细分
关注具体业务
粒度以到不同业务场景为宜
考虑正常与异常业务场景
非功能性需求
● 性能/压力需求:
先结构后类型
先列举后细分
细述指标和要求
● 安全性需求:
先列举后细分
详述各项内容
● 兼容性需求:
先硬件后软件
先系统后应用
详述环境组合
10、测试需求注意事项
作为测试项目的基础,测试需求有5个需要依据的准则:
● 完整性
● 无歧义性
● 一致性
● 可跟踪性
● 可测试性