【软件测试理论】(一)软件开发流程与相关管理

1. 软件开发流程

1.1 什么是软件?

软件:与计算机操作系统有关的计算机程序可能有的文件文档数据

1.2 软件开发模型的演变

  1. 什么是软件开发模型?
    软件开发模型就是在软件开发过程中总结出的一套经验,指导如何按照流程来进行软件开发的各项工作。
  2. 软件开发模型的演变
    在这里插入图片描述
  • 传统瀑布模型

    • 开发流程:
      请添加图片描述

    • 特点

      • 软件开发的各项活动严格按照现行方式进行;
      • 当前活动接收上一项活动的工作结果;
      • 当前活动的工作
    • 优缺点:

      • 优点
        开发的各个阶段比较清晰;
        强调早期计划及需求调查;
        适合需求稳定的产品开发。
      • 缺点
        由于开发模型是线性的,增加了发开的风险;
        早期的错误可能要等到开发后期的阶段才能发现
    • 使用该模型可能会遇到的问题:

      • 需求变更,需要重新按照流程进行
      • 软件测试在流程后期,需要预留足够的测试时间
      • bug发现时间较晚,修改成本高
      • 新产品不适合瀑布模型
  • 敏捷开发模型
    主要介绍两种敏捷开发模型XPCRUM

    • XP(极限编程)
    1. 什么是极限编程
      把复杂的开发过程,分解成一个一个相对较小的周期,每个周期又分维度管理。可以清楚看到开发进度和需要解决的问题
      在这里插入图片描述

    2. 极限编程的三个维度:编程方法、小组实践、交付和管理
      维度一——编程方法:
      简单设计:以简单的办法实现每个小需求.
      结对编程:两人一起完成,一人负责代码细节,一人负责整体结构,并不断对负责细节的人写的代码进行评审。
      测试驱动开发(需要自动化测试):基本思想—>写功能代码前,先写好测试代码,测试代码写好后,然后编写可以通过测试代码的功能代码。让测试驱动整个开发过程的进行。这样可帮助开发出更高质量的代码,提高代码的灵活性和健壮性。
      重构:减少程序中出现的重复的部分,增强程序的可复用性。
      维度二——小组实践:
      代码集体所有:每个人都可以修改代码的任意部分.
      编码标准:实现代码集体所有的重要前提.
      稳定高速的步伐:保持长期稳定的工作节奏.
      持续集成(需要自动化测试):集成–>把大家的代码合并到一起的过程 ;持续集成—>不断集成;构建—把代码编程客户可使用的东西.
      隐喻:让每个人都知道客户的系统,因此需要一个形象的比喻去描述系统是什么工作的
      维度三——交付和管理:
      小规模发布:通常发布时间1~3周(一个迭代周期),目前2周较多。
      计划游戏:预测交互之前的到来之前要完成那些工作,规定好整个步骤。
      完整的团队:包含现场客户
      现场客户:客户需要时刻在现场协助解决问题

    • SCRUM
    1. 什么是SCRUM?
      Scrum是迭代式增量软件开发过程,通常用于敏捷软件开发
      在这里插入图片描述

    2. SCRUM流程说明

      • 产品BACKLOG:
        整体项目概要文档;
        需求整理成列表,并按照商业价值进行排序;
        SCRUM团队会从需求列表中挑选价值最高的功能需求最先实现。
      • SPRINT计划会议:
        用于挑选商业价值最高的功能需求;
        选择当前迭代周期需要完成的需求功能。
      • SPINT BACKLOG:
        当前迭代周期中需要实现的产品需求。
      • SPRINT:
        小迭代周期,时长约为2~4周;
        每个迭代周期相当于一个小瀑布模型。
      • 每日站会:
        每个小迭代周期中需要进行内容;
        检查每日目标进展,根据情况进行调整,从而优化第二天的工作。
      • 潜在可交付产品增量:
        每个迭代周期之后,会交付出包含SPRINT BACKLOG中需求的产品。
      • SPRINT评审会议:
        每个迭代周期之后进行;
        展示开发好的相关功能。
      • SPINT 回顾会议
        SPRINT评审会议之后,下一次的SPRINT计划会议之前;
        对这个迭代周期进行复盘。
  • DevOps开发模型

    • 什么是DevOps?
      DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
      可以把DevOps看作开发(软件工程)、技术运营和质量保障(QA)三者的交集。
      在这里插入图片描述
    • DevOps生命周期说明
      在这里插入图片描述
      • 持续开发
        在这里插入图片描述

        • 软件不断被开发的阶段
        • 与瀑布模型不同,软件交付成功被分解为一个个任务节点。可以在短时间内进行开发并交付
        • 包含编码,构建。编码阶段可使用git等工具维护代码版本;构建阶段使用打包工具,如maven,帮助进行构建
      • 持续测试
        在这里插入图片描述

        • 使用自动化测试工具,selenium 、appium
        • 测试框架,TestNG,Pytest
      • 持续集成
        在这里插入图片描述

        • 新代码提交后,并通过测试,则会与当前代码进行合并
        • 可使用Jenkins进行。Jenkins可以在git中提取新代码,生成新构建,在构建过程中可融持续测试,最后汇报是否测试对否通过,测试通过则构建成功。
      • 持续部署
        在这里插入图片描述

        • 持续集成的结果是PASS,才能进行持续部署
        • 使用Docker,可让TEST、STAGING和PRODUCTION的测试环境保持一直
      • 持续监控

        • 部署上下后进行持续集成阶段
        • 线上监控,提高软件质量、监控软件性能
        • 运营团队参与,使用工具:ELK3

2. 项目管理与跨部门合作

2.1 项目管理

  1. 什么是项目管理?
    让项目组成员按照规定的规范进行工作的过程就是项目管理的过程

  2. 项目管理流程
    在这里插入图片描述
    项目流程分为:项目立项、产品定义、软件开发、软件测试、内部验收、用户验收、系统维护
    项目开发流程分为:需求分析阶段、概要设计阶段、详细设计阶段、系统编码阶段、单元测试阶段、集成测试阶段、系统测试阶段

  3. 项目开发阶段各角色的职责

    • 需求阶段
      在这里插入图片描述

    • 设计阶段
      在这里插入图片描述

    • 开发阶段
      在这里插入图片描述

    • 集成测试阶段
      在这里插入图片描述

    • 系统测试阶段
      在这里插入图片描述

  4. 软件项目管理方法

    • 制定项目计划
      大型项目,要有完善的整体计划。
    • 执行该计划并监控跟踪管理
      项目组按照计划执行;
      项目管理人员进行监控,监控结果需要记录计划当中,进行阶段性总结。
    • 项目风险应对与问题解决
      跟踪中发现的问题进行分析和进行相应的应对测试;
      项目经理需要持续进行跟踪,跟踪问题是否解决。
    • 项目收尾
      做总结;
      释放项目资源:人员和设备等。

2.2 跨部门沟通协作

  1. 以下阶段需与产品沟通
    需求评审会
    在分析需求阶段
    在测试用例编写阶段
    在测试过程中
  2. 以下阶段需与研发沟通
    在分析需求阶段
    在测试用例编写阶段
    在测试过程中
    在线上监控发现BUG时
  3. 上下游配合测试
    测试计划沟通:沟通测试计划,明确各部门负责的测试范围,重要场景,跨团队数据构造都要说明。
    环境对接:了解接口调用的问题,是否满足需求,联调环境是否可以用。
    熟悉业务:了解对方业务,申请权限等,保证后续精度不受影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值