从测试角度看待CI/CD,敏捷开发

什么是敏捷开发?

是在高强度反馈的情况下,短周期,不断的迭代产品,满足用户需求,抢占更多的市场

敏捷开发是什么?

是一种产品快速迭代的情况下,降低出错的概率,具体会落实到公司的规章制度上,去确保快速响应,快速迭代

什么是CI/CD

是一种持续交付,持续部署并自动测试的自动化软件系统,是敏捷落地的具体产物,

我以我在前东家了解到的业务实践场景,简述下:

CI

CI是持续提交 ,具体体现在开发同学,可以在github不停的提交分支代码,Jenkins自动拉取最新的分支代码部署,测试同学 在ModHeader 中设置 X-Env-Branch: 分支名称(一个浏览器插件,用于修改HTTP请求头),后端就会自动将请求路由到对应分支环境的镜像实例,实现多分支并行测试的能力,且互不干扰。

这个是我目前见过最好的一个落地实践,在部署完毕之后,还可以自动执行核心测试套件(接口返回200),进行自动化测试,测试不通过,自动@提交者,提供接口测试报告,提交者(开发者)可以查看那些接口有问题,进行修改,提高效率

CD

是随时可以发布,但是具体到实施,都是有固定的时间节点,错过了,需要走紧急发布邮件通知负责人,这样做的好处是:在特定节点上线,有利于集成测试环境的回归,确保所有本次要上线的分支,都合到集成测试环境,所有的改动,都在集成测试环境中回归验证过;

CD发布的环境,可以具体划分为

分支测试环境:对应上述的CI开发提交代码到github,Jenkins自动拉去部署

集成测试环境:分支测试没有问题,便把代码合到master分支,Jenkins自动拉取并部署

stage环境:和线上共用同一个库,区别是没有流量的进入

生产环境:真实用户使用的环境

比较好的CD落地是,测试同学可以手动设置不同的tag进行发布,并关联jira上需求的状态,对需求的状态相互验证,如果当前环境有问题,测试同学可以选择测试不通过,或者发布中止,进入回滚流程,选最近一次生产发布过的tag,进行快速回滚

相关推荐
疯狂的维修1 小时前
PDPS关于cable的设定
自动化
DsirNg4 小时前
别把联调当验收:用可执行契约管住接口变更
ci/cd·mock·openapi·契约测试·接口契约·前后端协作·pact
云飞云共享云桌面7 小时前
苏州昆山精密机械加工厂研发部门10个SolidWorks可以部署云飞云共享云桌面吗?
大数据·运维·服务器·自动化·汽车·制造
云飞云共享云桌面8 小时前
自动化设备厂 10 人研发团队,如何共用一台服务器做 SolidWorks 建模?
运维·服务器·网络·3d·自动化·制造
00后程序员张12 小时前
iOS 开发全流程需要哪些工具?编码、调试、构建、发布阶段选择
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
醉颜凉1 天前
数据仓库实战:自动化数据质量检测全流程——精准提升数据准确性与完整性
大数据·数据仓库·自动化
HBYKKJ1 天前
格雷希尔GFL浮动组件:大范围浮动补偿赋能自动化产线高效柔性对接,兼容大部分对正场景,适配市面常见的机器人末端执行器与工装安装板
人工智能·机器人·自动化
进哥AI研习社1 天前
AtomCode 高阶玩法揭秘:Headless 模式集成 CI/CD、Skills 自定义与项目指令文件深度实战
ci/cd·atomcode·headless 模式·daemon 服务·skill 自定义·.atomcode.md·自动化审查
天远Date Lab1 天前
零信任架构实战:基于天远行驶证核查构建自动化车队准入网关
运维·人工智能·架构·自动化
St_rive1 天前
webUI自动化实现及封装
运维·自动化