软件测试规范是测试工作的依据和准则,在进行软件测试时,应在相关国标文件的要求和指导下完成测试工作,这样可以从根本上保证软件测试工作的质量,进而提升软件产品的质量。
一个完整的软件测试规范应该包括对规范本身的详细说明,例如规范的目的、范围、文档结构、词汇表、参考信息、可追溯性、方针、过程/规范、指南、模板、检查表、培训、工具、参考资料等。
01、软件测试的规范
1. 角色
任何项目的实施首先要考虑人的因素,软件测试也不例外。在软件测试中,通常会把所涉及的人员进行分类以确立其角色,并按角色进行职责划分,如表1所示。
■ 表1 软件测试中最基本的角色定义
2. 进入准则
进入准则也就是对软件测试切入点的确立。软件测试在软件开发周期的各个阶段都在进行,因此软件项目立项并得到批准就意味着软件测试的开始。
3. 输入项
软件测试需要相关的文档作为测试设计及测试过程判断符合性的依据和标准,对需要进行专业的单元测试的项目而言,其还要有程序单元及软件集成计划相应版本的文档资料。这些文档将一并被作为测试的输入而使用,参考表2。
■ 表2 软件测试输入项
- 活动
1) 制定测试计划
角色:测试设计员。
活动描述:
(1) 制定测试计划的目的是收集和组织测试计划信息,并且创建测试计划。
(2) 根据需求收集和组织测试需求信息,确定测试需求。
(3) 针对测试需求定义测试类型、测试方法以及需求的测试工具等。
(4) 根据项目实际情况为每一个层次的测试建立通过准则。
(5) 确定测试需要的软硬件资源、人力资源以及测试进度。
(6) 根据同行评审规范对测试计划进行同行评审。
参考文档:《软件测试计划模板》。
2) 测试设计
角色:测试设计员。
活动描述:设计测试的目的是为每一个测试需求确定测试用例集,并且确定执行测试用例的测试过程。
(1) 设计测试用例。
① 对每一个测试需求,确定其需要的测试用例。
② 对每一个测试,确定其输入及预期结果。
③ 确定测试用例的测试环境配置、需要的驱动程序或桩程序。
④ 编写测试用例文档。
⑤ 对测试用例进行同行评审。
(2) 开发测试过程。
① 根据界面原型为每一个测试用例定义详细的测试步骤。
② 为每一个测试定义详细的测试结果验证方法。
③ 为测试用例准备输入数据。
④ 编写测试过程文档。
⑤ 对测试过程进行同行评审。
⑥ 在实施测试时对测试过程进行更改。
(3) 设计单元测试和集成测试需要的驱动程序和桩程序。
参考文档:《软件测试用例》模板,《软件测试过程》模板。
3) 实施测试
角色:测试设计员、编码员。
活动描述:实施测试的目的是创建可重用的测试脚本,并且实施测试驱动程序和桩程序。
(1) 根据测试过程创建、开发测试脚本,并且调试测试脚本。
(2) 根据设计编写测试需要的测试驱动程序和桩程序。
4) 执行单元测试
角色:编码员和测试人员。
活动描述:执行单元测试的目的是验证单元的内部结构以及其所实现的功能。
(1) 按照测试过程手工执行单元测试或运行测试脚本自动执行测试。
(2) 详细记录单元测试结果,并将测试结果提交给相关组。
(3) 对修改后的单元执行回归测试。
参考文档:《测试日志》和《软件单元测试》。
5) 执行集成测试
角色:测试员。
活动描述:执行集成测试的目的是验证单元之间的接口以及集成工作的功能、性能等。
(1) 按照测试过程手工执行集成测试或运行测试自动化脚本执行集成测试。
(2) 详细记录集成测试结果,并将测试结果提交给相关组。
(3) 对修改后的工作版本执行回归测试,或对增量集成后的版本执行回归测试。
6) 执行系统测试
角色:测试员。
活动描述:执行系统测试的目的是确认软件系统的工作版本满足需求。
(1) 按照测试过程手工执行系统测试或运行测试脚本自动执行系统测试。
(2) 详细记录系统测试结果,并将测试结果提交给相关组。
(3) 对修改后的软件系统版本执行回归测试。
7) 评估测试
角色:测试设计员和相关组。
活动描述:评估测试的目的是对每一次测试结果进行分析评估,在每一个阶段提交测试分析报告。
(1) 由相关组对一次测试结果进行分析,并提出变更请求或其他处理意见。
(2) 分析阶段测试情况。
① 对每一个阶段的测试覆盖情况进行评估。
② 对每一个阶段发现的缺陷进行统计分析。
③ 确定每一个测试阶段是否完成。
④ 对每一个阶段生成测试分析报告。
- 输出项
软件测试输出项如表3所示。
■ 表3 软件测试输出项
- 验证与确认
软件测试验证与确认项如表4所示。
■ 表4 软件测试验证与确认项
- 退出准则
满足组织/项目的测试停止标准。
- 度量
软件测试活动达到退出准则的要求时,对当前版本的测试即告停止。软件质量保证人员通过一系列活动收集数据,利用统计学知识对软件质量进行统计分析,得出较准确的软件质量可靠性评审报告,提供给客户及供方高层领导可视化的质量信息。