文章目录
- 一、软件(开发)的生命周期
- 什么是生命周期
- 软件(开发)的生命周期
- 需求分析
- 计划
- 设计
- 编码
- 测试
- 运行维护
- 二、常见的开发模型
- 瀑布模型
- 流程
- 优点
- 缺点
- 适应的场景
- 螺旋模型
- 流程
- 优点
- 缺点
- 适应的场景
- 增量模型和迭代模型
- 流程
- 适应的场景
- 敏捷模型
- 流程
- 优点
- 适应的场景
- 三、软件测试的生命周期
- 定义
- 各个阶段具体内容
- 四、常见的测试模型
- V模型
- 定义
- 优点
- 缺点
- W模型(双V模型)
- 定义
- 优点
- 缺点
- END
一、软件(开发)的生命周期
什么是生命周期
生命周期指的是从生命的开始到生命结束的一段时间。
软件(开发)的生命周期
需求分析——计划——设计——编码——测试——运行维护。
需求分析
具体内容 | 产出 |
---|---|
分析用户的需求是否合理,分别从市场需求、技术等方面进行分析。 | 输出需求等文档。 |
计划
具体内容 | 产出 |
---|---|
对成立的需求执行计划。 | 输出计划等文档。 |
设计
具体内容 | 产出 |
---|---|
将需求细化成一个一个的任务,团队的成员按照自己的岗位职责,进行技术的设计(如:进行架构设计、设计哪些接口、采用什么技术等)。 | 输出技术等文档。 |
编码
具体内容 | 产出 |
---|---|
开发人员参考需求文档等有关文档,进行代码的编写。 | 输出代码文件等文档。 |
测试
具体内容 | 产出 |
---|---|
测试人员根据需求文档,设计出测试用例,对软件进行测试。 | 输出测试设计、测试计划、测试报告等文档。 |
运行维护
具体内容 | 产出 |
---|---|
有三个方面的维护:(1)修复性维护;(2)完善性维护;(3)预防性维护; | ~ |
(1)修复性维护:对项目中发现的问题进行修复;
(2)完善性维护:对功能进行完善;
(3)预防性维护:为避免产品出现不可预测的问题,采取一些预防的措施。
二、常见的开发模型
瀑布模型
流程
需求分析——计划——设计——编码——测试。
优点
- 1、线性结构,每个阶段只执行一次;
- 2、是其他开发模型的基础框架。
缺点
- 1、周期太长,产品需要较长的时间才能看到和使用,可能会导致需求和功能过时;
- 2、测试后置:
(1)前期各个阶段存在的风险要到测试阶段才能被发现,出现项目大面积的返工;
(2)留给测试阶段的时间可能不充分,软件可能存在缺陷。
基于上面的分析,瀑布模型 存在严重的项目风险。
适应的场景
需求固定的小项目
螺旋模型
流程
见下图:
优点
- 1、引入了风险分析和原型;
- 2、强调全过程的风险管控;
- 3、重视各个开发阶段的质量。
缺点
- 1、需要投入更多的人力、资金和时间,从而提高项目的成本;
- 2、风险分析师的能力对项目中存在的风险有直接的影响。
适应的场景
规模庞大、复杂度高、风险大的项目。
增量模型和迭代模型
流程
增量是逐块建造的概念,迭代是反复求精的概念
需求分析——计划——设计——编码——测试。
适应的场景
大型项目,需求不明确。
敏捷模型
流程
需求分析——计划——设计——编码——测试。
需求被分解成许多可以增量开发的小部分,采用迭代开发。
优点
- 1、轻文档;
- 2、轻流程;
- 3、重目标;
- 4、重产出。
适应的场景
处理来自客户的变更请求以及合并这些变更所需的高成本和时间。
促进项目的快速完成。
三、软件测试的生命周期
定义
软件测试的生命周期是测试的流程,贯穿于软件的整个生命周期;
需求分析——测试计划——测试设计和测试开发——测试执行——测试评估——项目上线——运行维护。
各个阶段具体内容
软件测试的各个阶段 | 具体工作内容 |
---|---|
需求分析 | 进行用户、技术和测试角度的分析。 |
测试计划 | 制定测试计划,确定测试所花的时间。 |
测试设计和测试开发 | 编写测试用例,写测试文档,明确测试方法、测试工具和测试流程等。 |
测试执行 | 根据测试用例,使用测试工具对项目进行尽可能全面的测试覆盖。 |
测试评估 | 根据测试中存在的BUG,输出一个测试报告。 |
项目上线 | 将项目发布上线,根据需求进行跟踪软件的运行情况。 |
运行维护 | 参加培训,收集问题进行反馈。 |
四、常见的测试模型
V模型
定义
如下图:
优点
- 1、 改进了软件开发的效率和成果。
- 2、明确的标注了测试过程中存在的不同类型的测试。
如:
单元和集成测试应检测程序的执行是否满足软件设计的要求;
系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标;
验收测试确定软件的实现是否满足用户需要或合同的要求。
缺点
测试阶段还是放在编码的最后一个阶段,缺点同开发模型中的瀑布模型。
W模型(双V模型)
定义
如下图:
优点
- 1、增加了软件各开发阶段中应同步进行的验证和确认活动,即体现了测试与开发的并行关系;
- 2、有利于尽早地全面地发现问题。
缺点
- 测试和开发阶段是线性的前后关系,存在连贯性,上一阶段完全结束,才能开启下一阶段;
- 流程是连续的,重视流程,无法支持开发模型中的敏捷模型。
END
每天都在学习的路上!
On The Way Of Learning