农行 DevOps 进行时之最佳实践分享:自动化单元测试质量门禁
众所周知,问题发现得越早,修复的成本越低。有统计数据表明,产品上线后修复缺陷所花工时是编码阶段发现该缺陷修复所用工时的640倍。而 DevOps 正是通过质量内建的方式,把整个软件质量的保障内嵌到开发的过程中去,而不是留到后面再去检测,从而降低软件开发成本,更高效的保证质量。
DevOps 持续交付三级标准中要求:对于每次提交到主干的代码,均触发自动化测试,测试结果作为版本质量强制要求。自动化单元测试质量门禁通常设置在 DevOps 流水线的提交即构建流水线中。下面就分享一下农行 DevOps 项目中通过tfs拉取请求进行单元测试质量门禁设置的具体实践。
一、项目团队根据自身系统单元测试水平明确单元测试质量门禁阈值。例如在拉取请求合并代码时,如果单元测试通过率未达到100%,或覆盖率不超过80%,则不能向主干合并入代码。
二、TFS配置提交即构建管道:执行编译构建、单元测试任及质量门禁等任务,在单元测试质量门禁任务中配置单元测试通过率和单元测试覆盖率门禁阈值。
农行 DevOps 进行时之最佳实践分享:自动化单元测试质量门禁
三、配置主干分支策略,通过预先合并和生成拉取请求更改来验证代码:即代码向主干分支归并时进行预构建,执行单元测试,收集单元通过率数据和覆盖率数据,单元测试通过率需达到100%、覆盖率应达到80%,否则构建失败,以达到不符合质量要求的代码不能合并入主干分支的质量把控目的。
农行 DevOps 进行时之最佳实践分享:自动化单元测试质量门禁

作者简介

李彤敏,中国农业银行研发中心 DevOps 建设总体组成员,分布式应用互联平台(AIR)贯标实施者,具备丰富的 DevOps 流水线建设和支持经验。
2020年11月27日,由云计算开源联盟指导,由高效运维社区和开放运维联盟联合主办的 2020 GOPS 全球运维大会 · 上海站上,隆重发布了 DevOps 标准持续交付部分第九批评估结果,中国农业银行手机存款贷款模块顺利通过由中国信通院开展的《研发运营一体化(DevOps)能力成熟度持续交付3级评估。DevOps 标准共分 5 级,持续交付部分如果能达到 3 级已经是国内领先水准,这代表着中国农业银行在参评项目的持续交付能力达到国内领先水平。这是中国农业银行在 6 月 19 日同时 5 个项目通过持续交付标准评估之后通过的第 6 个项目。
农行 DevOps 进行时之最佳实践分享:自动化单元测试质量门禁
中国农业银行通过 DevOps 标准持续交付部分的 3 级评估的项目,分别是:

  • 信贷中台项目
  • 个人网银项目
  • 分布式应用互联平台(AIR)项目
  • 增值税进项税管理项目
  • 金融小店项目
  • 手机银行存款贷款业务