163 lines
3.3 KiB
Markdown
163 lines
3.3 KiB
Markdown
---
|
||
title: 测试基础
|
||
date: 2023-04-11 18:55:28.668
|
||
updated: 2023-04-11 18:55:28.668
|
||
url: /archives/ceshijichu
|
||
categories:
|
||
- 软件测试
|
||
tags:
|
||
- 测试基础
|
||
---
|
||
|
||
# 测试基础
|
||
|
||
## 软件生命周期
|
||
|
||
### 计划
|
||
|
||
人员:项目经理
|
||
|
||
输出:项目计划
|
||
|
||
内容:项目目标,大致需求,团队人员,时间要求
|
||
|
||
### 需求分析
|
||
|
||
人员:产品经理、需求经理、需求工程师
|
||
|
||
输出:需求规格说明书(SRS)
|
||
|
||
内容:
|
||
|
||
1. 进一步确定用户需求
|
||
2. 软件功能的具体描述
|
||
3. 解决系统做什么的问题
|
||
|
||
### 设计
|
||
|
||
人员:系统架构师,资深开发工程师
|
||
|
||
输出:概要设计说明书(HLD)、详细设计说明书(LLD)
|
||
|
||
内容:
|
||
|
||
1. 软件-子系统-模块-函数
|
||
2. 解决系统怎么做的问题
|
||
|
||
### 编码
|
||
|
||
人员:开发工程师
|
||
|
||
输出:项目代码或程序
|
||
|
||
内容:系统的具体实现
|
||
|
||
### 测试
|
||
|
||
人员:测试工程师
|
||
|
||
输出:测试计划,测试方案,测试用例,测试结果,缺陷报告,测试报告
|
||
|
||
内容:
|
||
|
||
1. 检查软件实现是否和需求一致
|
||
2. 检查软件实现是否有遗漏
|
||
|
||
### 运维(维护)
|
||
|
||
人员:运维工程师
|
||
|
||
技术支持:系统的安装、部署、升级,问题排查
|
||
|
||
|
||
|
||
## 常见软件研发流程
|
||
|
||
### 瀑布模型
|
||
|
||
**串行的顺序流程**
|
||
|
||
- 从计划到维护
|
||
- 重视文档,上一个阶段的输出是下一个阶段的输入
|
||
- 一个阶段完成,资源会大部分释放给其它项目,一般是多项目共享资源
|
||
- 一个阶段发现问题,返回上一个阶段解决
|
||
- 适合需求在项目初始阶段可以明确的周期较长的项目
|
||
- 软件要在项目的后期才能拿到
|
||
|
||
**分成三个阶段**
|
||
|
||
1. 定义阶段:计划和需求分析
|
||
2. 开发阶段:设计,编码,测试
|
||
3. 维护阶段:运行维护
|
||
|
||
### 螺旋模型
|
||
|
||
**串行的顺序流程**
|
||
|
||
- 分阶段实现功能,每个功能的开发都是采用瀑布模型
|
||
- 较早可以看到能运行的软件
|
||
- 一个原型完成后,经过风险评估进行下一个原型的开发
|
||
|
||
### RUP
|
||
|
||
**Rational Unified Process** 统一软件开发过程
|
||
|
||
并行流程
|
||
|
||
### IPD
|
||
|
||
**Integrated Product Development** 集成产品开发
|
||
|
||
并行流程
|
||
|
||
集成研发、生产、销售、采购,适合嵌入式研发企业和制造业
|
||
|
||
## 什么是软件测试
|
||
|
||
### 软件测试定义
|
||
|
||
软件测试是对软件的认知活动,软件测试不仅仅是发现缺陷,测试不一定要运行软件
|
||
|
||
### 测试的目的
|
||
|
||
- 证明:证明软件可用
|
||
- 检测:检测软件质量,发现软件缺陷、错误和不足
|
||
- 预防:预防缺陷的产生
|
||
|
||
tip:
|
||
|
||
尽早开始测试
|
||
|
||
尽早检查开发人员的工作是否有错误和遗漏的地方
|
||
|
||
分析已发现的缺陷,避免缺陷的重复出现
|
||
|
||
**项目不同阶段测试的目的**
|
||
|
||
- 项目早期:预防缺陷的产生
|
||
- 项目计划评审
|
||
- 需求文档评审
|
||
- 设计文档评审
|
||
- 测试用例评审
|
||
- 项目中期:先发现严重缺陷,让软件尽快稳定
|
||
- 项目后期:证明软件的功能都实现,可正常使用
|
||
|
||
## 什么是缺陷
|
||
|
||
缺陷、故障、失效的区别
|
||
|
||
- **缺陷是软件内隐藏的问题**
|
||
- 缺陷诱发出来产生故障
|
||
- 故障不能很好处理可能导致失效
|
||
|
||
### 缺陷分类
|
||
|
||
- 额外实现:做多了,实现了需求里没有的功能
|
||
- 实现缺失:做少了,需求里的功能没有实现
|
||
- 实现错误:做错了,需求里的功能实现了但不符合预期
|
||
|
||
|
||
|
||
|
||
|