软件测试基础-软件开发过程与软件测试

软件开发阶段

软件工程阶段

  • 定义阶段:可行性研究、初步项目计划、需求分析
    ** 根据分配给软件的功能生成软件项目计划,根据评审生成项目计划,需求分析经评审后生成原型需求规格说明

  • 开发阶段:概要设计、详细设计、实现、测试

  • 检验交付与维护阶段:运行、维护、废弃

软件开发过程中活动和角色

  • 活动:软件规格说明、软件开发、软件确认、软件演进
  • 角色:
    - 项目经理: 负责管理业务应用开发和系统开发
    - 业务分析人员: 需求收集和确认
    - 架构师: 根据业务需求创建合理的系统体系架构
    - 数据设计人员:数据库
    - 程序员
    - 测试
    - 产品经理:产品交付和发布以及产品销售
    - 技术支持代表:负责处理客户投诉和售后服务

过程模型

  • 线性顺序模型(瀑布模型):按照需求分析、规格说明、设计、编码、测试、维护各个阶段顺序执行
    ** 不适用于需求经常变更环境:要到后期才能见到成果/早期错误要到后期才发现

  • 原型模型: 从需求收集开始,用户和开发者一起定义总体目标,划分已知需求和进一步定义区域,并建立编码实现建立原型。并在此基础上,迭代修改评估直到满足需求。
    ** 需要用户参与原型建造,并与开发者达成共识

  • 快速开发模型: 线性模型变种,基于构建方法达到快速开发
    包含业务建模、数据建模、处理建模、应用生成、测试与反复。每一个主要功能部件由一个单独工作组负责,最后集成各个组件
    ** 支持多小组并行开发强调可复用程序构建开发

  • 演化软件过程模型:迭代演化软件,最终满足用户需求

    • 增量模型:线性模型和原型模型的结合,随进展交错形成序列集合(其后增量是产品扩充迭代)
      软件测试基础-软件开发过程与软件测试
    • 螺旋模型: 将线性模型和原型模型结合,加入风险分析
      -软件测试基础-软件开发过程与软件测试
      ** 每一个开发阶段前引入一个非常严格的风险识别、风险分析和风险控制,它把软件项目分解成一个个小项目。每个小项目都标识一个或多个主要风险,直到所有的主要风险因素都被确定,螺旋模型强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解,继而做出应有的反应,因此特别适用于庞大、复杂并具有高风险的系统

参考:
1.螺旋模型https://blog.csdn.net/zjuwxx/article/details/97363239