doc/笔记/测试基础-ceshijichu.md

3.3 KiB
Raw Blame History

title date updated url categories tags
测试基础 2023-04-11 18:55:28.668 2023-04-11 18:55:28.668 /archives/ceshijichu
软件测试
测试基础

测试基础

软件生命周期

计划

人员:项目经理

输出:项目计划

内容:项目目标,大致需求,团队人员,时间要求

需求分析

人员:产品经理、需求经理、需求工程师

输出需求规格说明书SRS

内容:

  1. 进一步确定用户需求
  2. 软件功能的具体描述
  3. 解决系统做什么的问题

设计

人员:系统架构师,资深开发工程师

输出概要设计说明书HLD、详细设计说明书LLD

内容:

  1. 软件-子系统-模块-函数
  2. 解决系统怎么做的问题

编码

人员:开发工程师

输出:项目代码或程序

内容:系统的具体实现

测试

人员:测试工程师

输出:测试计划,测试方案,测试用例,测试结果,缺陷报告,测试报告

内容:

  1. 检查软件实现是否和需求一致
  2. 检查软件实现是否有遗漏

运维(维护)

人员:运维工程师

技术支持:系统的安装、部署、升级,问题排查

常见软件研发流程

瀑布模型

串行的顺序流程

  • 从计划到维护
  • 重视文档,上一个阶段的输出是下一个阶段的输入
  • 一个阶段完成,资源会大部分释放给其它项目,一般是多项目共享资源
  • 一个阶段发现问题,返回上一个阶段解决
  • 适合需求在项目初始阶段可以明确的周期较长的项目
  • 软件要在项目的后期才能拿到

分成三个阶段

  1. 定义阶段:计划和需求分析
  2. 开发阶段:设计,编码,测试
  3. 维护阶段:运行维护

螺旋模型

串行的顺序流程

  • 分阶段实现功能,每个功能的开发都是采用瀑布模型
  • 较早可以看到能运行的软件
  • 一个原型完成后,经过风险评估进行下一个原型的开发

RUP

Rational Unified Process 统一软件开发过程

并行流程

IPD

Integrated Product Development 集成产品开发

并行流程

集成研发、生产、销售、采购,适合嵌入式研发企业和制造业

什么是软件测试

软件测试定义

软件测试是对软件的认知活动,软件测试不仅仅是发现缺陷,测试不一定要运行软件

测试的目的

  • 证明:证明软件可用
  • 检测:检测软件质量,发现软件缺陷、错误和不足
  • 预防:预防缺陷的产生

tip

尽早开始测试

尽早检查开发人员的工作是否有错误和遗漏的地方

分析已发现的缺陷,避免缺陷的重复出现

项目不同阶段测试的目的

  • 项目早期:预防缺陷的产生
    • 项目计划评审
    • 需求文档评审
    • 设计文档评审
    • 测试用例评审
  • 项目中期:先发现严重缺陷,让软件尽快稳定
  • 项目后期:证明软件的功能都实现,可正常使用

什么是缺陷

缺陷、故障、失效的区别

  • 缺陷是软件内隐藏的问题
  • 缺陷诱发出来产生故障
  • 故障不能很好处理可能导致失效

缺陷分类

  • 额外实现:做多了,实现了需求里没有的功能
  • 实现缺失:做少了,需求里的功能没有实现
  • 实现错误:做错了,需求里的功能实现了但不符合预期