测试开发体系介绍——测试体系介绍-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.软件开发流程

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

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

 

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

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

 

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

SCRUM:

敏捷模型总结

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

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

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

3.测试流程体系

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

V模型的优缺点

优点

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

缺点

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

 

W模型的优缺点:

优点

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

缺点

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

 

优点

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

缺点

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

系统测试流程:

Bug管理流程:

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

4.测试技术体系

软件测试分类:

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

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

 

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

5.常用测试平台

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

Xray Test Management 

RedMine 系统 

TestLink 

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

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

持续集成与持续交付:

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

6.流程管理平台

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

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

 

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

 

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

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

项目管理:

需求阶段:
项目经理产品研发测试
活动
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 时。
 跨部门沟通协作 - 上下游测试配合
  • 测试计划沟通。
  • 环境对接。
  • 熟悉业务。
项目实例 

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/239384.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

金蝶云星空业务对象添加网控设置

文章目录 金蝶云星空业务对象添加网控设置排查是否已经网控设置网控设置 金蝶云星空业务对象添加网控设置 排查是否已经网控设置 网控设置

这6点电缆故障测试仪的使用方法为什么这么重要?

电缆故障检测一直是电力检测工人定期需要做的一件事,通过定期对电缆线的检测,可以排除电缆线的一些故障,从而让电缆线可以正常工作,方便千家万户!然而电力检测工人用来检测电缆故障的设备,通常就是电缆故障…

如何将采购时间从几天缩短为几小时?

从事采购工作时,采购需要多长时间是面临的常见挑战之一。 采购是供应链中的一个环节,大家都不想看到整个流程被拖慢,但很多时候,事情往往向超出控制范围的方向发展。不过,企业可以通过多种方式简化采购和管理整个采购…

【JavaWeb学习笔记】14 - 三大组件其二 Listener Filter

API文档JAVA_EE_api_中英文对照版 Listener 一、监听器Listener 1. Listener监听器它是JavaWeb的三大组件之一。 JavaWeb的三大组件分别是: Servlet程序、Listener监听器、Filter过滤器 2. Listener是JavaEE的规范,就是接口 3.监听器的作用是,监听某…

Java 虚拟机中的内存结构

1 内存结构 1.1 程序计数器 1.1.1 定义 Program Counter Register 程序计数器(寄存器) 作用:是记住下一条 jvm 指令的执行地址 特点: 是线程私有的(每个线程独有自己的一份)不会存在内存溢出 1.1.2 作…

基于车轮安装MEMS IMU的航迹推算算法研究

本文由来:前一篇文章“零速更新(ZUPT)辅助INS定位”,并通过开源方案ZUPT-aided-INS进行了算法验证。在验证过程中,意识到在进行多源传感器融合算法中,利用载体自身运动信息进行约束修正非常重要,因为这不需要额外增加传…

前端案例—antdDesign的Select多选框组件加上全选功能

前端案例—antdDesign的Select多选框组件加上全选功能。 实现效果如下: Select 组件里有这个属性,可以利用这个对下拉菜单进行自定义。 const handleChange (e, value) > {setSelectState(e.target.checked)let arr productOptions?productOption…

【开源工程及源码】超级经典开源项目实景三维数字孪生智慧港口

智慧港口可视化平台,旨在实现对港口运营的全面监测、智能管理和优化决策。飞渡科技利用数字化、模拟和仿真的技术,通过互联的传感器和设备,实现实时数据的采集、传输和分析,将港口内外的复杂数据以直观、易懂的方式呈现&#xff0…

Qt配置opencv,cmake编译参考笔记,已成功

Qt版本:Qt5.14.2 opencv:4.5.4(不要用4.5.5!!很坑别问我为什么知道) cmake:下的最新版本 前言:为什么非得要用cmake编译呢?跳过cmake不好吗? 之前用的opencv…

服务熔断(Hystrix)

服务雪崩 多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其他的微服务,这就是所谓的“扇出”,如果扇出的链路上某个微服务的调用响应时间过长,或者不可用,对微服务A的…

c++打开网页

1.使用ShellExecute 效果图: 相关代码: void Open_url::on_pushButton_clicked() {QString path1 "explorer.exe";QString urlui->lineEdit->text();ShellExecute(NULL, L"open", path1.toStdWString().c_str(), url.toStdWString().c…

Python匹配文件模块的实战技巧

更多资料获取 📚 个人网站:ipengtao.com 在Python中,文件匹配是许多应用中常见的需求,例如文件管理、数据处理等。本文将深入探讨Python中用于文件匹配的模块,包括glob、fnmatch和os.path等,通过丰富的示例…

Keil5软件仿真 定时器互补通道 波形输出(Logic Analyzer)

步骤一:管脚配置确认。 ①配置定时器的管脚模式为复用推挽输出模式(GPIO_MODE_AF_PP)!!!,注意:复用开漏模式软件仿真时无波形。 步骤二:编译程序。 ①点击编译按钮。 …

(Mac上)使用Python进行matplotlib 画图时,中文显示不出来

【问题描述】 ①报错确缺失字体: ②使用matplotlib画图,中文字体显示不出来 【问题思考】 在网上搜了好多,关于使用python进行matplotlib画图字体显示不出来的,但是我试用了下,对我来说都没有。有些仅使用于windows系…

小型洗衣机什么牌子好又便宜?内衣裤洗衣机十大排名推荐

作为一个上班族,每天回到家中真的不愿意再动了,市面上也越来越多懒人福利神器,而内衣洗衣机可以称得上是人类最幸福的小家电,它不仅可以释放我们的双手,而且还比我们自己手洗得干净,功能和清洁力都比我们传…

Ubuntu 常用命令之 zip 命令用法介绍

📑Linux/Ubuntu 常用命令归类整理 Ubuntu系统下的zip命令是用来压缩文件的。这个命令可以将一个或多个文件或者目录压缩成一个.zip文件,也可以将整个目录树压缩成一个.zip文件。 zip命令的基本格式 zip [选项] [压缩文件名] [要压缩的文件或目录...]z…

选择移动订货系统源码的四大原因

移动订货系统需要选择源码支持的厂家,有以下四个原因,其中第四个是比较重要的,大家点个关注点个赞,我们接着往下看。 1.可自行定制:支持源码的移动订货系统可以根据企业的具体需求进行定制开发,满足企业特定…

电脑完全重装教程——原版系统镜像安装

注意事项 本教程会清除所有个人文件 请谨慎操作 请谨慎操作 请谨慎操作 前言 本教程是以系统安装U盘为介质进行系统重装操作,照着流程操作会清除整个硬盘里的文件,请考虑清楚哦~ 有些小伙伴可能随便在百度上找个WinPE作为启动盘就直接…

运维实施工程师计算机基础

目录 一.运维实施工程师需要具备的知识 1.1.运维工程师、实施工程师是啥? 1.2. 运维工程师、实施工程师做些啥? 1.3.运维工程师、实施工程师需要具备啥技能? 二.计算机的组成 2.1.简介 2.1.1.CPU(中央处理器) 2.…

25.BFD双向转发检查

BFD双向转发检查 链路故障检测工具,结合三层协议使故障检测更加快速 例如两台路由器之间加了一台二层设备 在修改优先级后,默认选择了下面那条优先级高的路由,R1 ping R2的时候是正常能ping通的 但是,当下面的路由出现故障后&a…