测试开发体系介绍——测试体系介绍-L1

目录:

  1. 软件测试基础概念
    1. 软件测试:
    2. 软件测试作用:
    3. 软件缺陷:
    4. 软件测试原则:
    5. 软件测试对象:
    6. 测试用例
  2. 软件开发流程
    1. 软件:
    2. 软件生命周期:
    3. 软件开发流程:
    4. 瀑布模型:
    5. 瀑布模型优缺点
    6. 敏捷开发模型:
      1. XP - 极限编程:
      2. SCRUM:
    7. DevOps:
    8. DevOps 生命周期:
    9. DevOps 对发布的影响
    10. CI/CD
    11. CD 与 DevOps 的关系
  3. 测试流程体系
    1. 软件测试模型:
      1. V模型
      2. W模型
      3. H模型:
    2. 软件测试工作流程:
      1. 传统测试流程:
      2. 系统测试流程:
      3. Bug管理流程:
    3. 测试左移和测试右移
      1. 测试左移
      2. 测试左移-质量保障手段(方法)
      3. 测试右移
      4. 测试右移-线上监控
  4. 测试技术体系
    1. 软件测试分类:
    2. 黑盒测试:
    3. 白盒测试:
    4. 自动化分层测试体系
    5. 单元测试
    6. 接口测试:
    7. 接口测试方法:
    8. UI 测试:
  5. 常用测试平台
    1. 测试用例管理平台
      1. JIRA 测试用例管理
      2. Xray Test Management
      3. RedMine 系统
      4. TestLink
    2. Bug 管理平台
    3. 代码管理平台
      1. GitLab
    4. 持续集成管理平台
      1. Jenkins 平台
  6. 流程管理平台
    1. JIRA 管理平台
    2. JIRA 中的基本概念
    3. JIRA 管理测试用例流程
    4. JIRA 管理 Bug 流程
  7. 项目管理与跨部门沟通协作
    1. 项目管理:
    2. 需求阶段:
    3. 设计阶段
    4. 开发阶段:
    5. 集成测试阶段
    6. 系统测试阶段
    7. 软件项目管理的方法
    8. 跨部门沟通协作 - 与产品沟通
    9. 跨部门沟通协作 - 与研发沟通
    10. 跨部门沟通协作 - 上下游测试配合
    11. 项目实例
  8. 测试经典书籍拆分讲解
    1. 全程软件测试
    2. 探索式测试
    3. Google测试之道
    4. 持续交付
    5. 不测的秘密

1.软件测试基础概念

软件测试:
  • 通过手工或者工具对 “被测对象”进行测试
  • 验证实际结果与预期结果之间是否存在差异
 软件测试作用:
  • 通过测试工作可以发现并修复软件当中存在的缺陷,从而提高用户对产品的使用信心
  • 测试可以降低同类型产品开发遇到问题的风险
软件缺陷:
  • 软件缺陷被测试工程师和开发工程师们称作 bug
  • 软件缺陷会导致软件不能正常运行,它的存在会在一定程度上导致软件不能满足用户的需求,甚至有可能破坏或泄漏用户的重要数据
软件测试原则:
  • 测试显示缺陷的存在
  • 穷尽测试是不可能的
  • 测试尽早介入
  • 缺陷集群性(2/8原则)
  • 杀虫剂悖论
  • 测试活动依赖于测试内容
  • 没有错误是好是谬论
 软件测试对象:
  • 需求分析阶段:需求文档、接口文档
  • 编码实现阶段:源代码
  • 系统功能使用:软件程序
 测试用例
  • 为特定的目的而设计的一组测试输入、执行步骤和预期的结果,以便测试产品否满足某个特定需求的文档

2.软件开发流程

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

测试开发体系介绍——测试体系介绍-L1_第1张图片

软件生命周期:
  • 定义问题
  • 软件开发
  • 软件维护

 测试开发体系介绍——测试体系介绍-L1_第2张图片

软件开发流程:
  • 为了使软件开发的工作系统化并且可控制;
  • 需要采用合适的软件开发模型和开发过程管理所有的活动。

测试开发体系介绍——测试体系介绍-L1_第3张图片

瀑布模型:
  • 软件开发的各项活动严格按照线性方式进行。
  • 当前活动接受上一项活动的工作结果。
  • 当前活动的工作结果需要进行验证。

 测试开发体系介绍——测试体系介绍-L1_第4张图片

 瀑布模型优缺点
  • 优点:
    • 开发的各个阶段比较清晰。
    • 强调早期计划及需求调查。
    • 适合需求稳定的产品开发。
  • 缺点:
    • 早期的错误可能要等到开发后期的阶段才能发现。
    • 由于开发模型是线性的,增加了开发的风险。
敏捷开发模型:
  • 适用于需求频繁变化和需要快速开发的场景。
    • XP
    • SCRUM
XP - 极限编程:

测试开发体系介绍——测试体系介绍-L1_第5张图片

SCRUM:

测试开发体系介绍——测试体系介绍-L1_第6张图片

敏捷模型总结

  • 增量迭代
  • 小步快跑
DevOps: 

测试开发体系介绍——测试体系介绍-L1_第7张图片

DevOps 生命周期: 
  • 持续开发
  • 持续测试
  • 持续集成
  • 持续部署
  • 持续监控

测试开发体系介绍——测试体系介绍-L1_第8张图片

DevOps 对发布的影响
  • 减少变更范围
  • 加强发布协调
  • 自动化
CI/CD
  • 持续集成(Continuous Integration,缩写为 CI):
    • 一种软件开发实践。
    • 团队开发成员每天可能会发生多次集成。
    • 每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证。
    • 根据测试结果确定新代码和原有代码能否正确地集成在一起。
  • 持续交付(Continuous Delivery,缩写为 CD)
    • 是一种软件工程手法。
    • 让软件产品的产出过程在一个短周期内完成。
    • 保证软件可以稳定、持续的保持在随时可以发布的状况。
    • 目标:
      • 让软件的构建、测试与发布变得更快以及更频繁。
      • 减少软件开发的成本与时间,减少风险。
CD 与 DevOps 的关系
  • DevOps 的范围更广:
    • DevOps 是软件交付过程所涉及的多个团队之间的合作。
    • 并且将软件交付的过程自动化。
  • 持续交付是一种自动化交付的手段:
    • 关注点在于将不同的过程集中起来。
    • 并且更快、更频繁地执行这些过程。
  • 总结:DevOps 可以是持续交付下的一个产物,持续交付的成果直接汇入 DevOps 模型。

3.测试流程体系

软件测试模型:
V模型
  • V模型是瀑布模型的一种改进
  • V模型标明了测试过程中的不同阶段

测试开发体系介绍——测试体系介绍-L1_第9张图片

V模型的优缺点

优点

  • 既有底层测试又有高层测试。
  • 将开发阶段清楚的表现出来,便于控制开发的过程

缺点

  • 容易让人误解为测试是在开发完成之后的一个阶段。
  • 由于它的顺序性,当编码完成之后,正式进入测试时,这时发现的一些bug可能不容易找到其根源,并且代码修改起来很困难。
  • 如果需求变更较大,导致要重复变更需求、设计、编码、测试。返工量大。
W模型
  • W模型明确表示出了测试与开发的并行关系
  • W模型中测试伴随着整个软件开发周期,并且测试的对象不仅仅是程序,需求和设计同样要测试

 测试开发体系介绍——测试体系介绍-L1_第10张图片

W模型的优缺点:

优点

  • 将测试贯穿到整个软件的生命周期中,且除了代码要测试,需求、设计等都要测试。
  • 更早的介入到软件开发中,能尽早的发现缺陷进行修复
  • 测试与开发独立起来,并与开发并行。 

缺点

  • 无法支持迭代的开发模型
  • 对有些项目,开发过程中根本没有文档产生,故W模型无法使用。。对于需求和设计的测试技术要求很高,实践起来很困难。
H模型:
  • 软件开发中需求、设计、编码等活动被分阶段执行、但是实践中,他们并不是完全串行的,它们之间更多时候是交叉进行的,更多的是迭代执行
  • 把测试活动完全独立出来,形成一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来

 测试开发体系介绍——测试体系介绍-L1_第11张图片

优点

  • 软件测试完全独立,贯穿整个生命周期,且与其他流程并发进行。
  • 软件测试活动可以尽早准备、尽早执行,具有很强的灵活性 

缺点

  • 测试就绪点分析困难
  • 对于整个项目组的人员要求非常高 
软件测试工作流程:
传统测试流程:

系统测试流程:

测试开发体系介绍——测试体系介绍-L1_第12张图片

Bug管理流程:

测试开发体系介绍——测试体系介绍-L1_第13张图片

测试左移和测试右移 
测试左移
  • 左移是往测试之前的开发阶段移
  • 测试团队在软件开发周期早期就开始介入。
  • 对代码进行测试
  • 从发现bug到预防bug
测试左移-质量保障手段(方法)
  • 代码评审(code review)
  • 代码审计
  • 单元测试
  • 自动化冒烟测试。研发自测 
 测试右移
  • 右移是往发布之后移。
  • 产品上线后进行线上监控。
测试右移-线上监控
  • 闭环的线上问题反馈-检查-解决-更新流程
  • 更便捷的日志查看、回传服务
  • 丰富有效的log,便于问题的快速定位。
  • 丰富的监控指标(例如业务异常点指标)。
  • 业务监控(例如短信发送等)
  • 关键指标每日监控(服务器指标)。
  • 生产数据监控(警报)

4.测试技术体系

软件测试分类:

测试开发体系介绍——测试体系介绍-L1_第14张图片

黑盒测试:
  • 黑盒测试又称数据驱动测试。
  • 完全不考虑程序内部结构和内部特性。
  • 注重于测试软件的功能需求。
  • 只关心软件的输入数据和输出数据。
测试开发体系介绍——测试体系介绍-L1_第15张图片 白盒测试:
  • 白盒测试研究产品内部的源代码和程序结构。
  • 单元测试就是白盒测试的一种。
 自动化分层测试体系
  • 70% 单元测试。
  • 20% 服务测试。
  • 10% 用户界面测试。
单元测试
  • Java
    • JUnit
    • TestNG
  • Python
    • unittest
    • pytest

测试开发体系介绍——测试体系介绍-L1_第16张图片

接口测试:
  • 接口全称 Application Programming Interface,一般称作 API。
  • 接口测试是针对软件对外提供服务的接口的输入输出进行测试。
    • 检查接口参数传递的正确性。
    • 接口功能实现的正确性。
    • 输出结果的正确性。
    • 对各种异常情况的容错处理的完整性和合理性。
接口测试方法:
  • Charles、Fiddler
  • postman
  • Jmeter
  • loadRunner
  • python:Requests、HttpRunner
  • Java:HttpClient、RestAssured

 测试开发体系介绍——测试体系介绍-L1_第17张图片

UI 测试:
  • 手工方法:人工查看、操作。
  • 自动化方法:
    • Web:Selenium
    • App:Appium

测试开发体系介绍——测试体系介绍-L1_第18张图片

5.常用测试平台

测试用例管理平台
  • JIRA:推荐方案,定制性很强。
  • RedMine:推荐方案,开源,活跃,定制性很强。
  • TestLink:流行的测试用例管理平台,体验不太好。
  • 其他:Tapd、云效、禅道、GitLab、在线协作文档。
  • 无协作模式:Excel、思维导图。
JIRA 测试用例管理 

测试开发体系介绍——测试体系介绍-L1_第19张图片

Xray Test Management 

测试开发体系介绍——测试体系介绍-L1_第20张图片

RedMine 系统 

测试开发体系介绍——测试体系介绍-L1_第21张图片

TestLink 

测试开发体系介绍——测试体系介绍-L1_第22张图片

Bug 管理平台
  • 通常与用例管理平台一致。
  • 测试用例、Bug 都可以使用 issue 表达。
  • 关联关系设定。
  • 测试用例与 Bug 的属性设定。
代码管理平台
  • GitLab:可本地部署的 Git 代码管理平台,行业标准。
  • SubVersion:SVN 管理,已经过时。
  • GitHub:开源项目运作。
  • BitBucket:与 JIRA 同属一家公司 Altassian。
 GitLab

测试开发体系介绍——测试体系介绍-L1_第23张图片

持续集成管理平台
  • Jenkins:持续集成与持续交付的主流平台。
  • GitLab Runner:GitLab 的持续交付方案。
  • GitHub Action:GitHub 的开源方案。
  • 自建 DevOps 平台:企业定制平台,Tapd、云效等。
Jenkins 平台

测试开发体系介绍——测试体系介绍-L1_第24张图片

持续集成与持续交付:

  • 研发:
    • 构建、单元测试 + 覆盖率分析。
    • 自动化代码审计。
  • 运维:自动化部署。
  • 测试:
    • 接口测试。
    • UI自动化测试。
    • 专项测试自动化。
    • 性能测试、安全测试。

6.流程管理平台

JIRA 管理平台
  • 推荐方案。
  • 定制性很强。

测试开发体系介绍——测试体系介绍-L1_第25张图片

JIRA 中的基本概念
  • Project 项目
  • Issue 问题
  • Field 字段
  • Workflow 工作流
  • Screen 视图

 测试开发体系介绍——测试体系介绍-L1_第26张图片

JIRA 管理测试用例流程
  1. 创建测试用例管理项目。
  2. 录入用例。
  3. 测试用例状态转化。

 测试开发体系介绍——测试体系介绍-L1_第27张图片

JIRA 管理 Bug 流程
  1. 创建 Bug 管理项目。
  2. 从用例关联到 Bug。
  3. 在项目中录入 Bug。
  4. Bug 状态转化。

测试开发体系介绍——测试体系介绍-L1_第28张图片

7.项目管理与跨部门沟通协作

项目管理:

测试开发体系介绍——测试体系介绍-L1_第29张图片

需求阶段:
项目经理 产品 研发 测试
活动
1. 在项目管理工具中建立项目目录
2. 分析项目所需资源、风险等
3. 预估项目周期
活动
1. 收集整理需求
参与
1. 需求分析
2. 环境分析
参与
1. 需求分析
2. 环境分析
产出
1. 项目计划(大致时间规划)
产出
1. 需求文档
设计阶段
项目经理 产品 研发 测试
活动
1. 监控项目进度
2. 组织安排本阶段的评审
3. 任务分解,责任到人
4. 细化项目计划
活动
1. 系统功能设计
活动
1. 系统功能技术设计
2. 数据库设计
活动
1. 组织测试计划评审
产出
1. 项目计划(具体到各个功能)
产出
1. 系统说明书
产出
1. 概要设计文档
2. 详细设计文档
产出
1. 测试计划
开发阶段: 
项目经理 产品 研发 测试
活动
1. 监控项目进度
2. 调整人员安排
3. 跟踪解决技术难点
参与
1. 需求细节沟通
活动
1. 具体功能开发
2. 组织 code review
3. 单元测试
活动
1. 编写测试用例
2. 组织测试用例评审
产出
1. 项目计划(更新进度)
2. 项目报告进度
产出
1. 功能代码
2. 单元测试代码
产出
1. 测试用例
集成测试阶段 
项目经理 产品 研发 测试
活动
1. 监控项目进度
2. 跟踪解决技术难题
参与
1. 需求细节沟通
2. Bug 修改方案
活动
1. 集成测试
2. 修改 Bug
活动
1. 支持研发进行集成测试
2. 准备测试数据
3. 准备自动化测试用例
产出
1. 项目报告进度
产出
1. 集成测试报告
2. 部署测试环境
系统测试阶段 
项目经理 产品 研发 测试
活动
1. 分配 Bug
2. 跟踪解决技术难题
参与
1. 需求细节沟通
2. Bug 修改方案
活动
1. 支持测试
2. 修改 Bug
活动
1. 测试环境搭建
2. 补充测试数据
3. 功能测试
4. 自动化测试
产出
1. 项目报告进度
产出
1. 系统测试报告(执行报告)
2. 缺陷报告
软件项目管理的方法
  • 制定项目计划。
  • 执行该计划并监控跟踪管理。
  • 项目风险应对与问题解决。
  • 项目收尾。
 跨部门沟通协作 - 与产品沟通
  • 需求评审会。
  • 在分析需求阶段。
  • 在测试用例编写阶段。
  • 在测试过程中。
跨部门沟通协作 - 与研发沟通
  • 在分析需求阶段。
  • 在测试用例编写阶段。
  • 在测试过程中。
  • 在线上监控发现 Bug 时。
 跨部门沟通协作 - 上下游测试配合
  • 测试计划沟通。
  • 环境对接。
  • 熟悉业务。
项目实例 

测试开发体系介绍——测试体系介绍-L1_第30张图片

8.测试经典书籍拆分讲解

全程软件测试
  • 测试行业的经典书籍
    • 测试方法
    • 测试策略
    • 领域测试
    • 主流测试技术
    • 涵盖了软件测试的流程与方法体系

探索式测试
  • 探索式测试的经典代表性书籍
  • 探索式测试是业务测试和手工测试实践中的一个方法论

测试开发体系介绍——测试体系介绍-L1_第31张图片

Google测试之道
  • 高级测试工程师与架构师必读
  • 讲解google的测试策略与方法
  • 以及google对软件开发与测试的理解

持续交付
  • 持续交付的经典书籍
  • 现代化软件研发与测试的启蒙
    • 持续交付 1.0
    • 持续交付 2.0

测试开发体系介绍——测试体系介绍-L1_第32张图片

不测的秘密
  • 腾讯TMQ出品
  • 精准化测试代表性书籍

测试开发体系介绍——测试体系介绍-L1_第33张图片

你可能感兴趣的:(#,测试开发,单元测试,压力测试)