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

163 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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
尽早开始测试
尽早检查开发人员的工作是否有错误和遗漏的地方
分析已发现的缺陷,避免缺陷的重复出现
**项目不同阶段测试的目的**
- 项目早期:预防缺陷的产生
- 项目计划评审
- 需求文档评审
- 设计文档评审
- 测试用例评审
- 项目中期:先发现严重缺陷,让软件尽快稳定
- 项目后期:证明软件的功能都实现,可正常使用
## 什么是缺陷
缺陷、故障、失效的区别
- **缺陷是软件内隐藏的问题**
- 缺陷诱发出来产生故障
- 故障不能很好处理可能导致失效
### 缺陷分类
- 额外实现:做多了,实现了需求里没有的功能
- 实现缺失:做少了,需求里的功能没有实现
- 实现错误:做错了,需求里的功能实现了但不符合预期