Python 测开28期 - WL - 学习笔记 - 测试流程体系

测试流程体系

软件测试模型

V 模型

  • V 模型是瀑布模型的一种改进
  • V 模型标明了测试过程中的不同阶段

V 模型步骤

  • 需求分析:需求文档
  • 概要设计:系统架构、模块划分、模块与模块之间的接口
  • 详细设计:模块内部实现的逻辑和方法
  • 编码:用代码实现设计的内容
  • 单元测试:测试代码中最小模块是否符合详细设计
  • 集成测试:测试各个模块组成到一起后是否可以正常使用
  • 系统测试:测试已经集成在一起的产品是否符合需求文档中的要求
  • 验收测试:测试产品是否符合用户的需求

V模型的优缺点

  • 优点
    • 既有底层测试又有高层测试
    • 将开发阶段清楚的表现出来,便于控制开发的过程
  • 缺点
    • 容易让人误解为测试是在开发完成之后的一个阶段
    • 由于它的顺序性,当编码完成后,正式进入测试时,这是发现的一些 bug 可能不容易找到其根源,并且代码修改起来很困难
    • 如果需求变更较大,导致要重复变更需求、设计、编码、测试,返工量大

W 模型

  • W 模型明确表示出了测试与开发的并行关系
  • W 模型中测试伴随着整个软件开发周期,并且测试的对象不仅仅是程序,需求和设计同样要测试

W 模型优缺点

  • 优点
    • 将测试贯穿到整个软件的生命周期中,且除了代码要测试,需求、设计等都要测试
    • 更早的介入到软件开发中,能尽早的发现缺陷并修复
    • 测试与开发独立起来,并与开发并行
  • 缺点
    • 无法支持迭代的开发模型
    • 对有些项目,开发过程中根本灭有文档产生,故 W 模型无法使用
    • 对于需求和设计的测试技术要求很高,实践起来很困难

H 模型

  • 软件开发中需求、设计、编码等活动被分阶段执行,但是实践中,他们并不是完全串行的,他们之间更多时候是交叉进行的,更多的是迭代执行
  • 把测试活动完全独立出来,形成一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来

H 模型优缺点

  • 优点
    • 软件测试完全独立,贯穿整个生命周期,且与其他流程并发进行
    • 软件测试活动可以尽早准备、尽早执行,具有很强的灵活性
  • 缺点
    • 测试就绪点分析困难
    • 对于整个项目组的人员要求非常高

软件测试工作流程

传统测试流程

  • 单元测试=》集成测试=》冒烟测试=》系统测试=》回归测试=》验收测试

系统测试流程

  • 需求分析=》测试计划=》测试设计=》用例评审=》测试执行=》bug 管理=》发布维护

Bug 管理流程

  • 提交缺陷=》指派缺陷=》确认缺陷=(是)》推迟处理=(否)》缺陷处理=》回归缺陷=(通过)》关闭缺陷
  • 确认缺陷= (否)》回归缺陷=(未通过)》重新打开=》确认缺陷
  • 退出处理=(是)》遗留缺陷后续处理=》处理缺陷

测试左移和测试右移

测试左移

  • 左移是往测试之前的开发阶段移
  • 测试团队在软件开发周期早期就开始介入
  • 对代码进行测试
  • 从发现 bug 到预防 bug

测试左移 - 质量保障手段

  • 代码评审:code review
  • 代码审计
  • 单元测试
  • 自动化冒烟测试
  • 研发自测

测试右移

  • 右移是往发布之后移
  • 产品上线后进行线上监控

测试右移 - 线上监控

  • 闭环的线上问题反馈 - 检查 - 解决 - 更新流程
  • 更便捷的日志查看、回传服务
  • 丰富有效的 log,便于问题的快速定位
  • 丰富的监控指标(例如业务异常点指标)
  • 业务便捷(例如短信发送等)
  • 关键指标每日监控(服务器指标)
  • 生产数据监控(警报)