测试流程概述

软件测试流程概述

软件测试是检验软件开发产品是否符合质量标准与需求,根据开发与配置管理的模式,有相应的软件测试流程。例如:

  • 传统的瀑布开发模式或迭代增量模式:测试与开发遵循V模型、W模型或H模型,测试有相对独立的生命周期
  • 敏捷开发:开发与测试的关系最紧密,开发与测试共处”作战室”,结对编程和测试驱动开发都需要开发人员参与到测试中与测试共同工作
  • DevOps:将开发、测试和运维合成一体,是三足鼎立而又通力合作的组织形式

测试过程与开发过程的关系

依据W模型的测试与开发关系,从广义的角度来展开,全过程的测试工作是与开发工作并行的,包括:

  • 需求评审
  • 测试计划和系统测试设计
  • 设计评审
  • 功能测试和接口用例设计
  • 单元测试
  • 集成测试
  • 系统测试
  • 验收测试

测试活动的工作流程

从测试活动的角度来看,每一个阶段的测试又是相对独立的过程,例如单元测试、集成测试、系统测试和验收测试等,它们具有相同的工作流程包括四项活动,按顺序分别是:

  1. 测试策划
  2. 测试设计和实现
  3. 测试执行
  4. 测试总结

这四个活动在不同的测试情景中根据实际需要被减弱或者加强。

各测试阶段的活动

1. 测试策划

测试策划主要是进行测试需求分析

  • 确定需要测试的内容或质量特性
  • 确定测试的充分性要求
  • 提出测试的基本方法
  • 确定测试的资源和技术需求
  • 制定测试资源计划和测试进度计划

有关测试计划的内容和要求见GB/T 9386。

2. 测试设计与实现

不同的测试阶段,依据测试需求,分析并选用已有的测试用例或设计新的测试用例:

  • 分析并选取测试用例
  • 分析测试用例集的层次结构
  • 选取和设计测试用例
  • 获取并验证测试数据
  • 根据测试资源、风险等约束条件,确定测试用例执行顺序
  • 获取测试资源,开发测试软件
  • 建立并校准测试环境
  • 进行测试就绪评审

测试就绪评审主要评审:

  • 测试计划的合理性
  • 测试用例的正确性、有效性和覆盖充分性
  • 评审测试组织、环境和设备工具是否齐备并符合要求

在进入下一阶段工作之前,应通过测试就绪评审。

3. 测试执行

  • 执行测试用例,获取测试结果
  • 分析并判定测试结果
  • 根据不同的判定结果采取相应的措施
  • 对测试过程的正常或异常终止情况进行核对
  • 根据核对结果,对未达到测试终止条件的测试用例,决定是停止测试,还是需要修改或补充测试用例集,并进一步测试

4. 测试缺陷管理

测试过程中发现的测试缺陷集是与开发人员沟通的重要数据,测试人员发现并记录缺陷,跟踪和记录缺陷状态。

5. 测试总结报告

  • 整理和分析测试数据,评估测试效果和被测软件项,描述测试状态
  • 实际测试与测试计划和测试活动的差异
  • 测试充分性分析
  • 未能解决的测试事件
  • 描述被测软件项的状态:被测软件与需求的差异、发现的软件错误等
  • 完成软件测试报告,并通过测试评审

各阶段的测试计划

依据不同阶段的实际需求,确定测试计划包括:

  • 测试方法
  • 测试范围
  • 测试工作进度
  • 人员安排
  • 退出测试标准

测试过程模型

V模型

V模型是传统的软件开发测试模型,其中测试活动与开发活动一一对应:

  • 单元测试对应详细设计
  • 集成测试对应概要设计
  • 系统测试对应需求分析
  • 验收测试对应用户需求

W模型

W模型强调测试与开发并行进行,测试活动贯穿整个软件生命周期。

H模型

H模型将测试活动完全独立出来,形成一个独立的流程。

参考阅读相关标准

  • 《软件测试文档编制规范》(GB/T 9386)
  • 《计算机软件测试规范》