首页 > 技术文章 > 【测试基础第二篇】软件生命周期和测试流程

BigTian 2020-09-25 17:29 原文

    • 软件生命周期定义
      • 是 软件开始研制 到 最终被放弃 不用所经历的各个阶段
      • 来源于软件开发模型
    • 软件开发模型
      • 瀑布模型
        • 模型梳理:

        • 缺陷:
          • 1.测试介入项目晚,回溯成本高
          • 2.项目周期长,效率低
      • V模型
        • 特点:测试开发同时进行
        • 模型梳理:

        • 优势:
          • 1.测试介入早,可以提前对需求进行评审和测试,回溯成本高
          • 2.测试提前准备测试文档即测试用例,编码完成后可以直接执行测试,节省准备文档时间,提高效率,周期短。
      • 敏捷开发模型--现广泛使用
        • 特点:以人为核心、快速迭代、循序渐进
        • 项目周期:一个月或半个月;弱化文档;重视与人沟通,站会(今天任务、昨天问题、协调处理)
    • 软件测试阶段
      • 一、问题的定义及规划
        • 主要确定软件的开发目的及其可行性。制定项目总体开发计划。
      • 二、需求分析
        • 在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析,明确客户的需求(需求评审--产品,开发,测试),输出需求规格说明书终版(原型图)。
      • 三、设计
        • 开发的工作
        • 把需求分析得到的结果转换为软件结构和数据结构,形成系统架构
        • 分为两部分:
          • 概要设计:架构的实现,指搭建架构,表述各模块功能、模块接口连接和数据传递的实现等事务。
          • 详细设计:对概要设计中表述的各模块进行深入分析等,其中需要包含数据库设计说明。
      • 四、编码
      • 五、软件测试
        • 单元测试
          • 主要测程序代码,开发自测,利用白盒测试。
        • 集成测试
          • 单元测试后,将各单元组成完整的体系,接口是否正确,数据是否正常传递。
        • 系统测试
          • 把软件系统搭建起来,按照软件规格说明书中所要求,测试软件性能是否和用户需求相符合,是否存在漏洞。--重要,常见,会进行好2-4轮测试
          • 测试完成后,要对产品的质量进行评估两方面
          • 1)bug还剩多少,看Bug严重级别
          • 2)测试用例执行率
          • 质量评估会输出测试报告(下结论建议,从测试角度慎重、仔细、分析彻底)。
        • 验收测试
          • UAT--user acceptance test。用户拿到软件时,在使用现场会根据所提需求,以及规格说明书来做响应测试。
          • 1)执行人员:用户可能按照功能验收表单,产品,或别的部门领导检验测试
          • 2)输出验收测试报告--产品写
        • α测试
          • 内侧,部分用户有权限,开发测试在场,提高用户体验,避免bug
        • β测试
          • 公测版本,有问题做修复。此阶段结束上线。
      • 六、运行维护
        • 是软件生命周期中持续时间最长的阶段。软件开发完投入使用后,由于多方便原因,软件不能持续适应用户需求,要延续软件的使用寿命,必须对软件进行维护。主要包括纠错性维护(bug修复,修改代码-产生新版本)和改进性(优化、完善、改良-新版本)维护。
    • 软件测试工作流程
      • 流程图

      • 1.需求分析
        • 产品输出需求规格说明书或原型图
      • 2.需求评审
        • 参与人员:产品、需求、开发、测试、配置管理
      • 3.开发编写开发计划、概要设计、详细设计、自测
      • 3.测试编写测试计划、测试用例、用例评审
        • 用例评审:
        • 1)提前发布评审通知
        • 2)参与人员:产品需求、开发、测试、配置管理人员
        • 3)输出测试计划
      • 4.开发自测--测试提前部署测试环境(部署人员:运维、开发、测试)
      • 5.冒烟测试、正式测试
      • 6.提交Bug并跟踪
      • 7.测试通过
        • 1)2-4轮,达到发布要求
        • 2)根据上述软件测试阶段的系统测试中,测试评估两点去输出测试报告
      • 8.发布上线
    • 软件测试基本流程--重点
      • 测试需求分析阶段
        • 阅读需求,理解需求,主要对业务学习,分析需求点,参与需求评审会议
      • 测试计划阶段
        • 编写测试计划,参考软件需求规格说明书、项目总体计划,内容包括测试范围-来自需求文档、进度的安排、人力物力分配、整体测试策略制定、风险评估、规避措施。测试负责人写,自己会参与评审。
      • 测试设计阶段
        • 编写测试用例,参考需求文档、原型图、概要设计、详细设计,有不明确的及时与开发、产品沟通,编写完后会进行评审。
      • 测试执行阶段
        • 首先搭建测试环境,执行预测-冒烟。预测通过正式进入系统测试(2-4轮),遇到问题提交bug管理平台,并对bug进行跟踪,直到被测软件达到测试需求要求,没有重大bug,测试结束。完善测试用例。
      • 测试评估阶段
        • 编写测试报告,对整个测试的过程和版本质量做详细的评估,两方面评估:1.剩余bug数量和严重程度 2.测试用例的覆盖率。确认是否可以上线。
      • UAT测试阶段
        • 部署到UAT环境,由产品或领导来验证功能。
    • 常见笔试面试题
      • 笔试
        • 1.生命周期模型包含哪些阶段?你们的开发模型是什么?
          • 问题定义及规划;需求分析;设计;编码;软件测试;运行维护
          • 敏捷开发模型
        • 2.测试流程包括哪些阶段?
          • 测试需求分析
          • 测试计划阶段
          • 测试设计阶段
          • 测试执行阶段
          • 测试评估阶段
          • UAT测试阶段
      • 面试
        • 1.你们公司开发流程?
          • 开发编写开发计划、概要设计、详细设计、编码、自测、提测
        • 2.你们公司测试流程怎样的?各阶段输出什么?
          • 需求分析阶段----需求文档
          • 测试计划阶段----测试计划
          • 测试设计阶段----测试用例
          • 测试执行阶段----缺陷分析报告
          • 测试评估阶段----测试报告
          • UAT测试阶段----验收测试报告
        • 3.开发环境、测试环境、生产环境、预发布环境分别是什么?你在测试环境后台添加的数据和信息,能在生产环境看到吗?
          • (1)
          • 开发环境:开发自己用的环境--自测(自测后出一个 单元测试报告 开发服务器数据)
          • 测试环境:测试自己的环境
          • 生产环境:用户使用的环境---线上环境
          • 预发布环境:在验收测试UAT 老板、产品 上线最后一次确认,尽量模拟用户环境
          • (2)NO
    • 知识卡
      • 1.你们公司开发模型
        • 敏捷开发模型
      • 2.你们公司项目多长时间一个迭代?这个周期测试占用多长时间?
        • 采用敏捷开发模型,项目迭代周期一个月,开发代码两周,测试一周半左右
      • 3.简单描述你们的项目流程和项目中你的职责?
        • 在产品确定了项目需求后,
        • 我们依据需求设计并编写测试用例,
        • 开发提测后执行接口测试然后系统测试
        • 测试中遇到Bug会记录到bug管理工具进行管理和跟踪
        • 开发修复Bug后,进行bug验证和相关的回归测试
        • 2-3轮系统测试后,评估产品质量出测试报告
        • 没问题,发布
    •  

推荐阅读