IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 持续集成、持续交付与持续部署 -> 正文阅读

[开发测试]持续集成、持续交付与持续部署

持续集成、持续交付、持续部署

1. 什么是持续集成(Continuous Integration)?

持续集成是指,频繁地将代码集成到主干上。

优点

  • 快速发现错误。与一次性集成大量代码相比,每次更新一点,集成一点相当于将代码分成多个片段,有助于快速发现错误,定位错误,个人理解就相当于给代码打上断点,有助于错误的定位。
  • 防止分支大幅度偏离主干,如果不经常集成,主干又频繁更新,会导致之后集成难度加大,甚至不能集成。

目的: 让产品可以快速迭代,同时还能保持高质量。

核心措施: 让代码集成到主干之前,必须通过自动化测试,只要有一个测试用例失败,则不能集成

2. 什么是持续交付(Continuous Delivery)?

持续交付是指,频繁地将软件的新版本交付给质量团队或者用户进行评审,如果评审通过,就进入代码生产阶段。

目的: 不管如何更新,代码始终保持在一个可以交付的状态

3. 什么是持续部署(Continous Deployment)?

持续部署是指:代码通过评审后自动部署到生产环境。

前提: 能够自动完成测试、构建、部署等操作

持续部署可以看作是持续交付的后续步骤,他们的区别在于:

持续交付在测试后需要手动部署,而持续部署在测试后会自动部署到生产环境。

他们三个的关系:

image-20211223211306504

4. 流程

image-20211223211925283

1)提交:以上的所有的流程均基于一次代码的提交操作,提交操作出发设置好的hook,进而执行后续的所有操作。

2)测试:对提交的代码进行测试。在第一次测试中,至少要进行单元测试。

  • 单元测试:对函数或者模块进行测试
  • 集成测试:对要实现的某个功能进行测试,也称为“功能测试”
  • 端到端测试:从用户的角度出发,到底层的数据库的完全测试。

3)构建:把原始代码变为可执行代码的过程。

4)第二轮测试:至少包括单元测试和集成测试,有条件的情况下也要进行端到端测试。

5)部署:将所有相关文件打包归档,部署到生成环境服务器的过程。

在整个流程中,持续集成、持续交付和持续部署的概念分别体现为:

image-20211223213355226

注意,这里第二次测试后需要能够实现自动化部署,方可成为持续集成,否则为持续交付的过程。

持续部署应该是整个流程完全的自动化实现。

另外,如果第一次测试进行了所有的测试,那么就可以省略第二次测试的步骤,那么构建的过程就应该移动到测试之前,则整个流程变为:

image-20211223213559387

参考:https://www.ruanyifeng.com/blog/2015/09/continuous-integration.html

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-12-26 22:30:16  更:2021-12-26 22:32:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 4:27:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码