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