根据2022年的DevOps全球调查报告显示,主流软件企业采用或部分采用DevOps且已获得良好成效的占比已达70%,DevOps俨然成为当下软件开发研究的重要方向。

测试作为软件开发的必要过程,是提升软件可靠性、保证软件质量的关键环节。然而,从过往研究文献来看,希望通过DevOps提升软件交付效率、保证软件质量的国内企业往往缺乏轻量级的测试改进路径。

本文将从软件研发最关键的质量与效率两个目标出发,对采用DevOps的软件测试需要关注的重点因素进行分析并提出改进框架及实践建议。

DevOps成熟度模型分析

综合对比现有的相关文献,由荷兰乌得勒支大学的Feijter教授提出的DevOps成熟度模型相对更为全面、系统,共涉及三大模块及16个因子,具体如下:

上表中,成熟度按因子等级划分为1-8级;每个因子按是否更符合DevOps理念划分为2—6个等级。以“利益一致性”因子为例,仅与内部产品规划保持一致节奏的团队被划分为能力A级,而能与外部利益相关者的需求保持一致发布节奏、适应能力更强的团队为能力D级,越贴近DevOps理念,等级越高。

为更明确“利益相关者”的概念,可参照“内部开发运营的能力模型”,如下图所示:

构建适合企业自身性能的测试过程改进框架

逐一分析DevOps成熟度模型因子中与软件测试相关的内容,并按测试文化、测试过程及测试基础三个方面进行划分,可将DevOps模式下的软件测试影响因素划分如下:

影响因素所涉及的各测试因子与不同的DevOps成熟度等级相对应,选择其中最为重要的产品质量和测试效率作为评价依据,对测试因子进行重要性分析,得到结果如下

按照上述结果,可将不同性能组织的测试情况进行如下区分:

并得出DevOps模式下的测试改进框架:

在选定适合自己的DevOps测试改进框架后,也需要对工具软件进行选择,以确保整体方案的落实。天目全数字实时仿真软件SkyEye可与众多工具(如禅道、Jenkins、GitHub、极狐Gitlab等)联合打造持续集成全链路一站式平台,专为嵌入式DevOps提供解决方案。

在持续集成流水线中,代码提交至仓库后将触发流水线运行,由持续集成服务器自动拉取代码进行静态分析、编译并加载至SkyEye仿真环境进行测试,工程师可快速获取测试报告,大大提升嵌入式软件研发效率,助力提高组织性能。

▲DevOps中的持续集成流水线

参考链接:

[1] Feijter R. Towards the adoption of DevOps in software product organizations: a maturity model approach[D]. 2017.

[2]胡鹏. 面向DevOps模式的软件测试优化研究[D]. 战略支援部队信息大学. 2022.