admin 管理员组

文章数量: 1184232


2024年3月18日发(作者:oracle分页越往后越慢)

导读:浅谈 CI/CD 和软件测试

知其然,知其所以然。相较于DevOps而言,CI/CD是一个相对具象的概念。在 IT

企业中,CI/CD的应用愈加广泛,成为推动软件研发活动的重要基础设施服务,同时推动

DevOps 模式的实际落地。

什么是 CI/CD

在实践 CI/CD 相关内容之前,我们有必要先认识下什么是 CI/CD。

一般传统或者狭义、普遍的 CI/CD,是指持续集成(Continuous Integration,CI)

和持续交付(Continuous Delivery,CD)。而更加广义、全面的理解,是指持续集成

(Continuous Integration,CI)、持续测试(Continuous Testing,CT)、持续交付

(Continuous Delivery,CD)和持续部署(Continuous Deployment,CD)四个方面。

通常,一个软件开发的流水线如下图所示。

Design:这一阶段完成软件开发的需求分析和设计。

Develop:这一阶段完成软件开发的功能代码,一个最佳实践是采用测试驱动开发

(TDD)的方法,测试代码和功能代码的编写同时进行。需要注意的是,在 Develop 阶

段也会运行单元测试和其他小型测试。

Test:这一阶段完成软件的各项大型或专项测试,比如界面测试、API 测试、性能测

试和系统测试等。

Release:这一阶段完成软件产品的发布,并交付给用户使用。

持续集成(Continuous Integration)

随着敏捷开发的发展,持续集成在软件项目活动中也日益成为主流。顾名思义,持续

集成是指每日频繁地(比如一天多次)将代码集成到主干分支中。强调通过集成和测试的

速度,快速给出一个集成的结果(是失败还是成功),在代码集成之前,必须先通过自动化

测试验证,只要有一个测试用例失败,就不能集成。

Martin Fowler 说过,“持续集成并不能消除Bug,而是让它们非常容易被发现和改

正”。这也正是持续集成的真谛所在。

敏捷开发的核心是指整个软件开发活动被划分成一系列短的迭代过程,每个迭代完成

一定数量的功能,迭代周期应该尽量短。在软件开发需求已经确定的情况下,迭代应该由

测试驱动开发(TDD)和集成反馈来驱动。只有这样,才能为质量持续改进奠定一个良好

的基础。


本文标签: 测试 集成 活动 完成 代码