前置要求:

开发模型和测试模型为笔试题目,要求掌握 其优缺点和适用场景

1. 需求的概念

用户需求、软件需求

用户需求:往往是一句话,未经过评估的需求

软件需求:功能需求,详细描述了开发人员必须实现的软件功能,也是测试人员进行测试工作的基本依据

注意:用户的需求不能直接作为开发和测试的依据。针对用户的需求,产品经理需要进⾏需求分析 (技术可⾏性、市场可⾏性、成本投⼊和收益占⽐等)后才可转变为软件需求。

2. 开发模型

之前介绍 ——软件的生命周期

软件的生命周期实际上就是软件的开发模型

需求分析——计划——设计——编码——测试——运行维护

其中,设计阶段每个角色工作不同:

开发:设计开发文档(用到的框架、技术)

测试:明确需求,设计测试用例(明确使用的测试工具、设计的测试类型)

其中,开发阶段分类:

  1. 前端开发
  2. 后端开发
  3. 客户端开发(前端的一种)

其中,运行维护阶段分类:

  1. 修复性维护:对项目中发现的问题进行修复
  2. 完善性维护:对功能进行完善
  3. 预防性维护:居安思危,为了避免项目在线上的环境出现一些无可避免的问题,进行防护的手段

具体的开发模型

  1. 瀑布模型
  2. 螺旋模型
  3. 增量模型和迭代模型
  4. 敏捷模型

 瀑布模型

优点/特点: 1. 强调开发的阶段性; 2. 线性结构,每个阶段只执行一次 3. 是其他模型的基础框架

 缺点: 1. 测试后置 1) 前面各阶段遗留的风险推迟到测试阶段才被发现,导致项目大面积返工,失去了及早修复的机会 2) 必须留有足够的时间给测试活动,否则导致测试不充分,将缺陷直接暴露给用户(产品质量差) 2. 周期太长,产品很迟才能被看到和使用,可能会导致需求/功能过时

 螺旋模型

优点: 1. 强调严格的全过程风险管理。 2. 强调各开发阶段的质量。 3. 增加风险分析和原型

缺点: 1. 项目中可能存在的风险性与风险管理人员的技能水平有直接关系 2. 需求人员、资金、时间的增加和投入,可能会导致项目的成本太高

模型名称

优缺点

适用场景

瀑布模型

线性软件开发,每个阶段只执行一次
测试后置,需求/功能过时

需求固定的小项目

螺旋模型

增加风险分析和原型

成本高,风险性与风险技术人员水平直接相关

规模庞大、复杂度高、风险高大项目

增量模型

大型项目、需求不确定

迭代模型

区别:增量是逐块建造 迭代是反复求精

敏捷模型:

  1. 项目开发期间处理来自客户的变更请求以及合并这些变更所需的高成本和时间
  2. 《敏捷宣言》
    1. 个体与互动重于过程和工具- 强调有效的沟通
    2. 可用的软件重于完备的文档- 轻文档,文档不应该作为工作验收的标准
    3. 客户协作重于合同谈判- 主动及时了解当下的需求
    4. 响应变化重于遵循计划- 主动迎接变化

总结出敏捷模型四个特点:轻流程、轻文档、重目标、重产出

   Scrum(迭代式增量软件开发模型

        1. 三个角色 (产品经理、项目经理 和 研发团队)

        2. 五个会议

发布计划会议,迭代计划会议,站会(昨天做了什么,今天做什么,期间遇到的问题),演示会议,回顾会议

        3. 轻文档 和 快速迭代——轻文档:测试用例 、测试计划文档 和 测试报告

Scrum 属于敏捷模型,但它采用增量式的交付方式

3. 测试模型

声明:严谨说来V/W模型是融合测试活动的开发/验证模型,但习惯上直接称为“测试模型”是完全可以接受的

V模型

(1)明确标注了测试过程中不同类型的测试

(2) 仅仅把测试作为编码后的一个阶段,未在需求阶段就介入测试,缺点如同瀑布模型
①将很多问题保留到测试阶段,导致全面返工
②留给测试的时间很少,可能会直接将问题暴露到线上用户,导致用户流失

W模型

(1)V模型中未将测试前置的问题在W模型中得以解决

      (2)缺点:

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐