当前位置: 首页 > news >正文

测试第六讲-开发测试阶段划分

一、软件开发的阶段划分

1、需求分析阶段

有需求分析人员完成,产出物:《需求规格说明书》

2、概要设计阶段

3、详细设计阶段

一般由系统架构师(分析师)完成,产出物:《概要设计说明书》、《详细设计说明书》

4、编码阶段

由开发人员完成

产出物:程序

 面试题:哪个阶段引入的bug最多?哪个阶段最少?

  需求分析阶段引入的bug最多,其次是设计阶段,最少的是编码阶段。结论:1)测试不能只测试程序,文档也必须要测2)测试工作应该尽早介入,并且贯穿整个开发周期始终(尽早测试原则,不断测试原则)

二、软件测试的阶段划分

说明:没有涵盖软件测试的文档测试部分

1、单元测试

  1. )单元测试是整个测试阶段中的最小测试单元,一般测一个功能,一个方法(函数),一个窗口,一个类等
  2. )单元测试阶段主要依据:详细设计文档
  3. ——单元测试阶段主要的测试方法是白盒测试。
  4. )在企业中,单元测试一般是程序员完成,这样可以减少测试成本(省钱),但是测试质量不能保证,所以企业通常会采取:互换测试或程序员测第一轮(白盒),测试人员测第二轮(黑盒)的方式提高单元测试质量。
  5. )在单元测试中测试者需要编写驱动模块和桩模块

驱动模块:模拟被测模块的上一级模块(调用被测模块)

桩模块:模拟被测模块的下一级模块(被“被测模块”调用)

  总结:驱动模块à被测模块à桩模块

    6. )  单元测试非常重要,如果不能保证测试质量,在集成后再发现问题,解决的成本会更大。

2、集成测试(组装测试)

  1. )通常在单元测试基础上,将软件的功能模块逐步合并在一起测试的过程,就是集成测试
  2. )合并的过程一般是逐步完成的,会形成很多的临时版本。
  3. )集成测试阶段主要以黑盒测试为主,核心功能模块适当辅助白盒测试。
  4. )冒烟测试:也叫“版本验证测试”,在测试组拿到一个新版本时,会先做“冒烟测试”—选择较少的人(1-3人,经验丰富),花费较少的时间(0.5-2天),对软件的核心部分(主体功能)进行测试,如果核心部分功能没问题,那么全组展开全面测试,如果问题较多,版本不稳定,就退回给开发方。

   5.)   集成测试中,测试组拿到新版本后的工作思路:

 --首先:做冒烟测试,验证版本是否可以接受

 --返测:对在这个版本中已经解决的bug,进行重新测试

 --回归测试:对上一个版本所有测过的内容,重新测试一遍

--对版本中的新功能进行测试(有些特殊版本是专门修复缺陷的,可能没有新功能)

--主要参考:概要设计文档

3、系统测试

  1. )在整个功能全部完成后,对集成了硬件、软件的完整系统进行模拟真实的测试
  2. )系统测试阶段的测试重点:(1)在于整个系统的正确运行(功能、性能)(2)系统兼容性
  3. )主要依据:需求文档
  4. )系统测试阶段全部为黑盒测试
  5. )在系统测试之前,一般会安排一次“确认测试”,主要确认:
  1. 该软件系统是否可以进入全面的系统测试阶段
  2. 确认相关的文档是否齐全(尤其是给用户的文档和参与认证的文档)

        说明:确认测试一般时间较短,参与人员较少,所以一般不与单元、集成、系统、验收阶段并列。

4、验收测试(UAT: User acceptance Testing  用户接受度测试)

  1. )由用户参与的检查过程
  2. )可以分为两个小阶段:
  1. Alpha测试 阶段

     由开发方提供测试环境(开发方对bug的控制会更强),由最终用户参与对软件进行检查。(经常由开发团队替代最终用户完成,或由第三方测试机构代替)

    2、beta 测试阶段

        在用户的实际环境中(开发方对bug的控制较弱),由最终用户对软件进行检查。

        例如:公共类软件(QQ、网络游戏、输入法等),一般将软件免费发放给用户,通过收集用户使用中遇到的问题,来收集bug。

http://www.lqws.cn/news/565831.html

相关文章:

  • 学习记录:DAY35
  • 【FreeRTOS-任务通知】
  • 基于开源链动2+1模式AI智能名片S2B2C商城小程序源码的运营机制沉淀与规范构建研究
  • Embedding模型微调实战(ms-swift框架)
  • 2025年IOTJ SCI2区TOP,动态协同鲸鱼优化算法DCWOA+多车车联网路径规划,深度解析+性能实测
  • 从RDS MySQL到Aurora:能否实现真正的无缝迁移?
  • OpenCV学习3
  • 设计模式之装饰者模式
  • 企业级路由器技术全解析:从基础原理到实战开发
  • promise深入理解和使用
  • 线性相关和线性无关
  • 【数据挖掘】聚类算法学习—K-Means
  • Windows 4625日志类别解析:未成功的账户登录事件
  • 节点小宝:告别公网IP,重塑你的远程连接体验
  • 数据库 DML 语句详解:语法与注意事项
  • Android大图加载优化:BitmapRegionDecoder深度解析与实战
  • 【分布式 ID】生成唯一 ID 的几种方式
  • 面试150 螺旋矩阵
  • 模拟工作队列 - 华为OD机试真题(JavaScript卷)
  • llama.cpp学习笔记:后端加载
  • Windows系统安装鸿蒙模拟器
  • 接口自动化测试(Python+pytest+PyMySQL+Jenkins)
  • OpenLayers 全屏控件介绍
  • Wpf布局之StackPanel!
  • Mac电脑手动安装原版Stable Diffusion,开启本地API调用生成图片
  • 在Mac上查找并删除Java 21.0.5
  • 【Canvas与标志】圆规脚足球俱乐部标志
  • Spring Cloud Gateway 实战:从网关搭建到过滤器与跨域解决方案
  • 浮油 - 3 相分层和自由表面流 CFX 模拟
  • 医疗AI智能基础设施构建:向量数据库矩阵化建设流程分析