导读:浅谈 CI/CD 和软件测试知其然,知其所以然
相较于 DevOps 而言,CI/CD 是一个相对具象的概念
在IT 企业中,CI/CD 的应用愈加广泛,成为推动软件研发活动的重要基础设施服务,同时推动 DevOps 模式的实际落地
什么是 CI/CD在实践 CI/CD 相关内容之前,我们有必要先认识下什么是 CI/CD
—般传统或者狭义、普遍的 CI/CD,是指持续集成(ContinuousIntegration,CI)和持续交付(ContinuousDelivery,CD)
而更加广义、全面的理解,是指持续集成(ContinuousIntegration,CI)、持续测试(ContinuousTesting,CT)、持续交付(ContinuousDelivery,CD)和持续部署(ContinuousDeployment,CD)四个方面
通常,—个软件开发的流水线如下图所示
•Design:这一阶段完成软件开发的需求分析和设计
•Develop:这一阶段完成软件开发的功能代码,—个最佳实践是采用测试驱动开发(TDD)的方法,测试代码和功能代码的编写同时进行
需要注意的是,在 Develop 阶段也会运行单元测试和其他小型测试
•Test:这一阶段完成软件的各项大型或专项测试,比如界面测试、API 测试、性能测试和系统测试等
花 C•Release:这一阶段完成软件产品的发布,并交付给用户使用
持续集成(ContinuousIntegratjon随着敏捷开发的发展,持续集成在软件项目活动中也日益成为主流
顾名思义,持续集成是指每日频繁地(比如一天多次)将代码集成到主干分支中
强调通过集成和测试的速度,快速给出一个集成的结果(是失败还是成功),在代码集成之前,必须先通过自动化测试验证,只要有—个测试用例失败,就不能集成
MartinFowler 说过,"持续集成并不能