• 快捷搜索
  • 全站搜索

农业银行测试技术的探索与实践

2017-01-17 15:45:24作者:中国农业银行数据中心(北京)测试保障部处长 蔡仕志编辑:金融咨询网
近年来,农业银行数据中心(北京)在测试工作开展中面临了多方面的挑战,但是中心经过长期探索与实践,逐步意识到测试技术对于测试工作的重要性,并摸索出了一条适应中心的测试技术发展之路。

  同时,基于上述框架,BATS设计了一系列具备原始创新性的关键技术(已获得2项发明专利授权,另有1项处于实审中),解决了自动化测试在商业银行内部难以大规模开展的几个关键问题。

  (1)案例设计门槛低:案例设计可视化,无需脚本编程经验,非技术人员经过半天培训即可上手,可通过多种方式自动生成案例。

  (2)执行测试自动化程度高:案例执行的逻辑都被抽象后模型化,全流程关键节点都实现自动化,一个设计良好的案例可在完全无人值守的情况下反复执行。

  (3)案例可回归性高:①人员切换案例不失效,人员更换后,案例的设计、执行、修复都不受影响;②环境切换案例不失效,与环境相关的数据均被模型化,分离案例与环境相关性;③变更后案例修复代价小,交易变更后,能自动识别受影响案例,并最大限度自动修复。

  2.测试数据脱敏及瘦身技术

  早期,中心开始了数据脱敏技术探索,在广泛调研商用工具后,最终选定了自主研发的道路。多年来,数据脱敏系统经过持续优化,脱敏效率及数据质量大幅提升,脱敏数据大规模应用,配套制度流程已比较完善。

  近年来,针对基础环境测试数据集过大导致主机计算资源、存储资源消耗比较严重的情况,中心展开了数据瘦身技术研究,自主研发的数据瘦身系统已广泛应用于核心系统数据瘦身。

  如图3所示,数据脱敏系统将生产备份数据处理成没有敏感性的数据,然后瘦身系统将脱敏后的数据处理成数据子集,此过程在专用环境中进行,由专职人员操作,保障处理过程数据的安全。除了按测试需求定制化的处理外,每个季度,会按标准化策略对全量数据进行脱敏及瘦身,并发布脱敏及瘦身标准集,该标准集适用于大部分测试需求,从而大幅提升了测试环境数据部署效率,降低了计算及存储资源消耗。

图片5.jpg

  与BATS类似,数据脱敏及数据瘦身系统也设计了一系列具备原始创新性的关键技术(已获得2项发明专利授权,另有1项处于实审中),取得了良好的应用效果。

  (1)数据脱敏

  ①脱敏配置全部参数化,支持断点续提。

  ②建立了统一的30余类的脱敏策略库。

  ③一次全量脱敏涉及数据表900余张、脱敏字段6300余个、脱敏策略30余类。

  ④脱敏后数据尽可能保留了源数据除敏感性以外的特征,保障了测试质量。

  ⑤2016年上半年,使用脱敏标准集节约了54余天主机计算资源。

  (2)数据瘦身

  ①采用一种新的装置来描述源数据表间的关联关系,使得仅用少量人员就能完成占存储80%的大表的关联关系梳理。

  ②目前,以1500万客户号为入口,关联瘦身前400张大表(其余表不变),瘦身后数据存储压缩至全量的20%左右。

  ③瘦身处理节点均能命中索引,瘦身效率较高。

  ④瘦身后数据保留完整关联性,适用大部分功能测试场景及小规模性能测试场景。

  ⑤2016年上半年,使用瘦身标准集节约了212.8T主机存储资源。

  3.标准化测试案例库建设

  近年来,中心开始进行测试案例库标准化方面的研究,以整合各项专项自动化测试技术及人工测试,建设组织级测试资产库。

  测试案例标准化的最终目标有3个:一是提高测试效率,提高测试全流程效率(测试分析、案例设计、测试准备、测试执行及结果验证);二是提高测试质量,提高测试案例覆盖广度及深度;三是降低复用成本,降低人员依赖,实现重要测试资源(业务知识、案例、数据、批次、缺陷等)跨项目共享。

  测试案例标准化的基本原则有3个:一是人工测试及自动化测试统一考虑,避免各自为战;二是以可落地为底线,避免方案停留在纸面;三是持续考量投入产出比,某些场景自动化测试投入产出比达不到要求的就果断舍弃。

  如图4所示,中心的测试案例标准化方案按照分级及分层思路开展。

图片6.jpg

  (1)分级标准化

  从测试手段的作用对象来划分,可以把测试划分为两个级别。①接口级测试:通过调用被测系统接口来进行测试(如发送交易报文),一般情况下,这种测试只能依赖接口级自动化测试工具。②界面级测试:通过操作被测系统界面来进行测试,包括人工测试及模拟界面操作的自动化测试工具。

  (2)分层标准化

  无论接口级还是界面级测试,测试案例都依赖于两项关键资源:测试数据及测试对象(接口级测试的测试最小粒度为交易,界面级测试的测试最小粒度为界面对象/控件)。要实现测试案例的标准化,需要自下而上实现测试数据及测试对象的标准化。

  ①基础测试数据标准化

  基础测试数据包含两种类型:一是与被测环境相关(环境切换可能失效)的数据类别,如借记卡;二是与被测环境无关(环境切换不会失效),但具有通用性的数据类别,如随机姓名。

  基础测试数据标准化的内容包含两方面:一是特定数据类别具备的相同数据结构;二是特定数据类别的实例数据准备策略。

  基础测试数据标准化的目的一是分离测试案例与重要的测试数据,使得环境切换后,测试案例不用修改也不失效(案例设计时使用的是数据模型,而非实例数据);二是提高实例数据准备效率,相同测试案例在不同环境中执行时,根据数据类别的准备策略自动完成批量数据准备。

  ②测试对象(交易/控件)标准化

  接口级测试对象(交易)标准化:定义组装及解析交易输入/输出报文的交易格式模型,如果交易开发时采用了通用的代码规范,或者有通用的数据字典,交易格式模型可以自动录制完成,并自动识别其与上一个版本间的变更情况。

  界面级测试对象(控件)标准化:定义特定界面元素(控件)的定位方式及支持的操作事件。

  ③测试案例标准化

  接口级测试案例标准化:每个接口级测试案例的原子操作步骤按“交易对象+数据”的模型进行标准化。其中,模型中的交易对象来自中层接口级测试对象(交易)标准化建立的交易格式模型库;模型中的数据(基础测试数据)来自底层基础测试数据标准化建立的基础测试数据模型库。

  界面级测试案例标准化:每个界面级测试案例的原子操作步骤按“界面对象+控制+数据”的模型进行标准化。其中,模型中的界面对象来自中层界面级测试对象(控件)标准化建立的界面对象(控件)模型库;模型中的数据(基础测试数据)来自底层基础测试数据标准化建立的基础测试数据模型库。

        本文介绍了中心在开展测试技术探索及实践过程中的历程,分享了几项较有特点的专项测试技术研究经验。下一阶段,农业银行将继续加强重点专项测试技术的研究深度及推广力度,实施专项测试技术间整合,推动测试工作持续、健康、稳定、高效地向前发展。

(文章来源:《中国金融电脑》杂志)

首页 上一页 1 2

扫码即可手机
阅读转发此文

本文评论

相关文章