农行 DevOps 进行时之最佳实践分享:测试数据治理

2021-07-09 11:13:26 浏览数 (1)

2020年11月农行手机银行系统参加了 DevOps 评估。参评项目手机银行安全能力提升项目,基于手机银行公共框架提供的安全防控处理机制对存贷模块进行安全改造。本文将从测试数据管理出发,分享手机银行 DevOps 评估过程中积累的测试数据管理经验。

测试数据管理是 DevOps 能力建设的重要一部分,直接关系到“数据来源”、“数据覆盖”、“数据独立性”三个能力项的得分。同时测试数据管理的质量又对自动化测试相关的能力项有很大影响,本文将逐一介绍

数据来源

数据来源部分的要求包括两个方面,一是要对组织级提供的标准数据集的更新机制、脱敏机制有充分的了解,二是要有导出部分生产环境数据并清洗敏感信息后形成测试数据集的记录。为了满足以上两点的要求,首先要对组织级的脱敏机制有充分的了解,如要了解各个标准数据集的脱敏方法、数据更新频率、更新通知方式等,还要保存每次标准数据集的更新记录作为举证材料。

其次要尽早着手“导出部分生产环境数据并清洗敏感信息”的工作,对于银行类的企业,生产数据脱敏有严格的流程和机制,可能流程耗时较长,尽早开展此项工作,可以降低无法在评估前完成流程的风险。

数据覆盖

测试数据覆盖要求“建立体系化测试数据,进行数据依赖管理,覆盖全部测试分层策略要求的测试类型”,手机银行系统测试分层策略中要求了自动化单元测试、接口自动化测试、界面自动化测试、手工测试、非功能测试等测试类型,每一种测试类型都要有各自的体系化测试数据。

参与 DevOps 评估前,除性能测试有独立的数据体系外,其他种类测试使用的测试数据较为混乱。评估建设期间,手机银行系统形成了以产品和数据归属为主要区分的测试数据体系,建立了各种测试类型的测试数据体系。以手工测试数据为例,手工测试采用地区细分的方式建立数据体系,要求同一被测产品使用同一网点的测试数据,并在wiki中维护和更新,保证每个手工测试人员使用的测试数据不会互相影响。同时对某一产品的测试数据,由使用的测试人员设置专属口令,实现数据独占。

数据独立性

测试数据独立性是指测试数据在测试执行各阶段的完整性和一致性,不会受到其他任务执行结果的影响。测试数据独立性影响测试案例的独立执行。为了保证每个测试案例都可以独立执行,就要给每个测试用例配置专属的、有明确初始状态的测试数据,保障测试数据的独立性。项目组从以下几个方面入手,保障测试数据独立性:

手工数据和自动化数据隔离

目前手机银行系统的自动化测试和手工测试使用同一数据库。测试过程中可能出现,两种测试使用的数据互相影响的情况,如手工测试进行了解约操作,而自动化测试使用该数据进行合约的维护,这样就会出现因为数据状态变动导致自动化测试失败,降低了自动化测试的有效性。

为了保证自动化测试数据和手工测试数据不相互影响,测试人员在前文提到的手工测试数据按网点隔离的基础上,将手工测试数据和自动化测试数据按省分块。自动化案例使用一部分省数据,手工案例采用其他省测试数据,从测试数据分省的维度将手工测试数据和自动化测试数据隔离,保证两种测试的测试数据不相互影响。

数据初始状态恢复

测试数据独立性还要求对于消耗型的数据有完备的恢复机制,所谓消耗型数据,就是使用该数据进行一次测试执行后,不可再次使用该数据进行案例执行的数据,如常见的签约解约数据。对于消耗型的数据,项目组主要采用三种方式进行数据状态恢复:

  1. 在案例中调用SQL语句进行数据状态更改;
  2. 后置反向交易,如进行签约交易后后置解约交易,保证数据处于可签约状态;
  3. 利用自研的自动化测试平台(ATP)提供的“消耗型”数据标签功能,使用后废弃数据,待消耗完后利用ATP数据资源池的数据更新功能统一恢复。

以上就是手机银行 DevOps 建设中测试数据管理的经验分享。顺利通过 DevOps 评估,是终点也是起点,我们在持续集成方面需要保鲜和改进的工作还有很多。后续我们将把 DevOps 工作模式下的接口自动化测试和界面自动化测试推广到手机银行其他模块的测试工作中去,不断提升测试质量,助力农行科技转型!


2020年11月27日,由云计算开源联盟指导,由高效运维社区和开放运维联盟联合主办的 2020 GOPS 全球运维大会 · 上海站上,隆重发布了 DevOps 标准持续交付部分第九批评估结果,中国农业银行手机存款贷款模块顺利通过由中国信通院开展的《研发运营一体化(DevOps)能力成熟度持续交付3级评估。DevOps 标准共分 5 级,持续交付部分如果能达到 3 级已经是国内领先水准,这代表着中国农业银行在参评项目的持续交付能力达到国内领先水平。这是中国农业银行在2020年 6 月 19 日同时 5 个项目通过持续交付标准评估之后通过的第 6 个项目。

中国农业银行通过 DevOps 标准持续交付部分的 3 级评估的项目,分别是:

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

0 人点赞