持续集成易,持续测试难
发布时间:2020-02-13 16:07:05 所属栏目:资源 来源:测试不将就
导读:一千个人心目中,有一千种DevOps。在我看来,DevOps最核心的特点,应该是持续化。在CI/CD时代,提倡持续集成和持续交付;而在DevOps时代,软件生命周期的每个阶段都被持续化,因此有了持续计划,持续开发,持续集成,持续 测试 ,持续部署,持续交付和持续
一千个人心目中,有一千种DevOps。在我看来,DevOps最核心的特点,应该是持续化。在CI/CD时代,提倡持续集成和持续交付;而在DevOps时代,软件生命周期的每个阶段都被持续化,因此有了持续计划,持续开发,持续集成,持续测试,持续部署,持续交付和持续监控。 持续的对立面是非持续,是一次性,是"瀑布"。有了持续化,生产者才能够将软件产品更早交付给消费者,从而更快获得消费者的反馈,并反过来指导产品的迭代升级。这是一个生产者与消费者双赢的模式。 持续化是一场软件研发革命。然而,要实现持续化并不容易。不管在CI/CD时代还是在DevOps时代,许多人都将持续集成看作"发动机",看作驱动软件研发体系运转的关键。 在落地持续集成的过程中,一个经常被忽略的重点是持续集成和持续测试之间的关系。注意到,在DevOps中,在单个迭代周期内,集成和测试并不是独立和串行的,而是耦合和交织的。它们是"你中有我,我中有你"的关系。 为什么这么说呢? 所谓集成,就是将开发者提交的代码改动与代码主干进行合并,并将合并后的代码进行编包和组包的过程。集成的输入是源代码,输出是可用的软件产品。 在集成过程中,为了确保代码和产品质量,软件测试无处不在。在代码级别,有单元测试;在编包完成之后,有针对单个包的模块测试;在组包完成之后,有针对整个软件产品的端到端测试。 因此,从快速交付角度来看,持续集成是核心,但是从又快又好交付角度来看,持续集成加上持续测试才是核心。 根据我的切身经历,相比持续集成,持续测试是一件挑战性更大的工作。在持续集成中,开发者在提交代码改动时,依据持续测试的反馈结果,来判断代码改动是否有问题。持续测试的最大挑战在于,随着时间的推移,反馈周期会不断增长,从而降低研发效率,成为项目瓶颈。 关于持续测试的反馈周期,我们有这样一个公式: 测试反馈周期 ∝ 测试用例数 * 代码提交频率 / 测试资源数 这个公式表明,测试反馈时间与测试用例数成正比,与代码提交频率成正比,与测试资源数成反比。在我所经历的一个中等规模软件项目中,随着时间的推移,测试用例数,代码提交频率和测试资源数的变化趋势如下。![]() ![]() ![]() ![]() (编辑:52站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |