软件测试——开发模型
目录
一、软件的生命周期
1、需求分析阶段
2、计划
3、设计
4、编码
5、测试
6、运行维护
二、常见的开发模型
1、瀑布模型
2、螺旋模型
3、增量模型
4、敏捷模型
三、测试模型
1、v模型
2、vv模型
一、软件的生命周期
1、需求分析阶段
目的:需要明确用户的需求,确定软件的功能、性能、特性和约束条件等。
如何做:和用户沟通,收集相应的需求,分析需求的可行性和优先级,考虑先做哪些能做和先做哪些,形成需求规格说明书。
产物:需求规格说明书。
2、计划
目的:制定软件开发的时间分配、资源分配、投入资金分配。
如何做:确定项目范围、任务分配、工作量分配和成本、里成本,指定风险管理计划。
产物:项目计划文档。
3、设计
目的:将需求转化为软件构架和详细设计。。
如何做:需要设计软件架构、划分模块、定义接口、设计数据结构和算法。
产物:设计文档、系统架构图、模块设计说明等。
4、编码
目的:将设计好的东西转化为编程。
如何做:按设计文档进行代码编写,遵循编码规范,进行单元测试。。
产物:源代码和单元测试报告。
5、测试
目的:验证软件是否符合预期,发现bug并及时修改。
如何做:对项目进行集成测试、系统测试和验收测试,确保软件功能正常、性能达标。
产物:测试报告和缺陷报告。
6、运行维护
目的:确保软件在实际环境中能够良好的运行,后进行持续改进。
如何做:提供技术支持,在运行中出现问题及时修改,通过问卷调查获取返回及时优化功能。
产物:用户反馈信息、软件版本更新以及维修记录。
二、常见的开发模型
1、瀑布模型
瀑布模型是其他模型的基础框架,换句话来说,没有瀑布模型,就没有剩下的东西,而瀑布模型的特点就是每一个阶段只能执行一次,因此是线性顺序进行开发模型。
缺点:
1、由于是线性执行的开发模式,因此,测试是后置的,可能在前面有很多的错误到最后才开始测试,会失去及时早修复的机会,导致项目大面积返工。
2、周期太长,产品需要很久才能被看到和使用,会导致需求/功能过时。
适用场景:固定的小项目
2、螺旋模型
ps:图在网上找的
在图中看到的好像比较麻烦,其实可以以瀑布模型为例子,每一个原型到下一个模型中途会进行一次风险分析,这个就是螺旋模型
优点:
1、有利于早点发现问题所在,及时解决问题,强调各个开发阶段的质量。
2、有严格的过程风险管理,增加风险分析和模型。
缺点:
1、时间、资金成本会导致项目要成本过高。
2、项目要中存在的风险性与风险管理人员技能水平有直接关系(人员水平低->风险管理差)。
适⽤场景:规模庞⼤、复杂度⾼、⻛险⼤的项⽬。
3、增量模型、迭代模型
迭代模型更类似于一个草图,画一个框架,再慢慢画内部的东西.
增量模型和迭代模型再现在一般是一起使用的,很少会分开使用,同时也是当今流行的软件工程最佳实践之一,增量开发模型,鼓励用户反馈,在每个迭代的过程中,促使开发小组以一种循环的、可预测的方式驱动产品的开发,因此每一次迭代都可能有需求的更改,构建出新的可执行版本,需要测试频繁进行,所以很需要测试人员和开发人员的紧密协作。
增量模型和迭代模型区别,增量是逐块建造的概念,迭代是返回求精的概念。
适⽤场景:⼤型项⽬,需求不明确。
4、敏捷模型
敏捷开发模型是一种以人为核心、迭代、循序渐进的开发方法。它强调在整个开发过程中的适应性和灵活性,以快速、灵活地响应变化。
敏捷模型中有一个非常重要的敏捷宣言:
1)个体与交互重于过程和工具:重视团队成员之间的沟通和协作,而不是单纯依赖工具和流程。
2)可工作的软件高于详尽的文档:优先交付可用的软件,而不是编写大量的文档。
3)客户协作重于合同谈判:与客户紧密合作,快速响应需求变化,而不是严格遵循合同。
4)响应变化重于遵循计划:灵活应对需求变化,而不是死守固定的计划。
总结来说四个特点:轻文档,轻流程,重目标,重产出。
作为当今比较流行的一种敏捷模型——scrum(迭代式)增量软件开发模型,主要有三个角色和五个重要会议
三个角色:
1)produce owner(产品经理):负责需求管理和客户沟通
2)scrum master(项目经理):负责流程管理和团队协作
3)team(研发团队):负责实际开发和交付产品。
五个重要会议:
scrum基本流程图如图:
1、产品负责人负责整理用户需求,形成产品product backlog。
2、发布计划会议:产品经理负责讲解用户需求,对其进行估算和排序,发布会议的产出就是指定出这一期迭代完成的story列表。
3、迭代会议计划:项目组对每个用户需求进行分解,分解标准是完成用户需求的所有内容,对于每一个部分内容都有明确的负责人,并计算完成的初估时。
4、每日例会:每天scrum master召集站立会议(站会),而团队成员回答昨天做了什么,今天准备做什么,有什么问题。
5、演示会议:产品有哪些问题,需要优化的地方,还有什么功能能够增加。
6、回顾会议:回顾本次迭代流程中的问题并不断进行优化。
三、测试模型
1、v模型
v模型属于瀑布模型的变种,所以也有瀑布模型的优缺点。
优点:明确标注了测试过程中存在的不同类型测试,并清除的描述了这些测试阶段和开发过程期间各个阶段的段颖关系,有效提升测试质量。
缺点:仅仅把测试作为在编码之后的一个姐u但,没有在需求阶段就介入测试,会导致周期太长,产品需要很久才能被看到和使用,会导致需求/功能过时。
2、vv模型
双v模型增加了软件各个开发阶段中应同步进行的验证和确认活动双v模型俩个v分别代表测试与开发过程,测试是和开发同时进行的,但也有其优缺点。
优点:
1、有利于尽快发现问题。
缺点:
1、需求、设计、编码等活动被视为串行。
2、重流程:无法支持敏捷开发模型。
3、测试活动和开发活动保持线性关系,上一段结束才到下一段。