当前位置: 首页 > news >正文

软件测试——开发模型

目录

一、软件的生命周期​

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、测试活动和开发活动保持线性关系,上一段结束才到下一段。

        

相关文章:

  • 批量重命名bat
  • 【PXIE301-211】基于PXIE总线的16路并行LVDS数据采集、1路光纤数据收发处理平台
  • 制作一款打飞机游戏45:简单攻击
  • 处理 Websocket 超时问题
  • 密码学--仿射密码
  • 5月12日信息差
  • Matlab 模糊控制平行侧边自动泊车
  • 动态IP技术赋能业务创新:解锁企业数字化转型新维度
  • Vue 2 项目中配置 Tailwind CSS 和 Font Awesome 的最佳实践
  • 最大m子段和
  • Costmap代价地图
  • ActiveMQ 高级特性:延迟消息与优先级队列实战(一)
  • Java中的线程
  • 编程题 02-线性结构3 Reversing Linked List【PAT】
  • Arduino快速入门
  • 组合数学——容斥原理
  • K8S Ingress、IngressController 快速开始
  • [数据结构高阶]并查集初识、手撕、可以解决哪类问题?
  • AI Agent开发第64课-DIFY和企业现有系统结合实现高可配置的智能零售AI Agent(上)
  • Matlab 空调温度时延模型的模糊pid控制
  • “救护车”半路加价?陕西卫健委已介入,记者调查:黑救护车挤占市场
  • 福建宁德市长张永宁拟任设区市党委正职,曾获评全国优秀县委书记
  • 中国一直忽视欧盟经贸问题关切?外交部:事实证明中欧相互成就,共同发展
  • 全国层面首次!《防震减灾基本知识与技能大纲》发布
  • 世贸组织欢迎中美经贸高层会谈取得积极成果
  • 苏东坡:人生就是哈哈哈哈哈