【引领】对标DevOps,探索掌银测试转型之路
发布于 2021-01-06 23:18
文/牛晔 李辉

2020年11月,掌银顺利通过DevOps持续交付标准三级评估认证,正式迈入了DevOps时代。持续测试作为DevOps的一个关键环节,是产品质量保证的重要方法。
金融科技和产品创新加速。当前,以移动互联网、云计算、大数据、区块链、人工智能为代表的金融科技正不断颠覆传统金融服务模式,银行业迎来了百年未有之大变局。年初爆发的全球新冠疫情,更是深刻改变了客户的金融行为,使其朝着线上化方向发展,这也加速了银行经营模式的转变。以掌银为主平台,全面构建线上经营能力已成为银行业共识。掌银作为我行线上经营的主阵地,产品创新需求旺盛,投产上线频繁,平均每个月都要投产两到三次,快速高质量持续交付产品已成为常态。这与DevOps核心理念持续交付不谋而合,可以说掌银具备DevOps建设的天然条件。
掌银研测流程重塑迫切。传统瀑布研发模式下,掌银测试在开发完成后开始大规模介入,单元和集成测试遗留的缺陷往往要推迟到系统测试阶段才能暴露出来,缺陷定位和修复成本相对较高。此外,掌银被测程序版本管理规范程度尚需提升,测试环境管理机制有待进一步健全,系统稳定性和安全性面临着较大的挑战。同时,开发、测试、运维协同度已经不能有效满足快速持续交付的要求,影响产品创新和业务经营。DevOps倡导密切协作、自动化、快速反馈,实施DevOps能够极大解决这些痛点问题。因此,进行DevOps建设是掌银项目的必然选择。
DevOps旨在促进开发、运维和质量保证部门之间的沟通与协作,其中质量保证贯穿了整个产品的交付周期。持续测试作为质量保证的重要方法,意味着从用户需求到产品发布都要进行持续不断的测试。掌银测试团队主动对标DevOps,将测试工作向左向右延伸至整个流水线周期。
测试右移,实施灰度验证。测试人员在灰度环境使用真实生产数据对被测产品进行验证,在剥离测试环境对测试结果影响的同时,能及早的以用户视角反馈意见,推动产品功能持续完善,提升产品质量。
严把质量管控,倒逼产品交付质量提升
以掌银接口自动化测试为例,设置通过率为100%的质量门禁后,只要有一条案例执行失败,就会被自动检测到并及时拦截,整个持续交付流水线不能继续运行,项目无法投产上线。为了达到质量门禁要求,项目组需要通过环境稳定性建设、案例强壮性建设、编码质量提升等方式降低接口自动化误报率,提升接口自动化质量水准。同时,为落实覆盖率质量门禁要求,掌银测试团队研发了接口自动化覆盖率统计工具。质量门禁是驱动开发测试人员不断改进的强有力因素,在质量门禁的倒逼下,产品交付质量必将呈现提升趋势。
DevOps强调测试分层和自动化测试。掌银测试团队在传统和敏捷测试基础上,主动作为,创新思路,快速适应DevOps持续交付下的测试工作机制。
重构分层策略,固化流水线管理。针对函数、模块、交互等不同测试对象分别开展测试。项目组通过流水线固化了每次迭代应开展的测试种类,包括单元测试、接口测试、界面自动化测试、手工测试、业务安全测试、非功能测试等。任何一种应开展但未开展的测试都会被直观的反映到流水线中,提醒并督促项目组及时开展对应测试,避免所有代码问题都堆积到手工测试阶段。
推进分层自动化测试,实现产品快速验证与交付。掌银自动化测试分层是在传统测试金字塔模型基础上,对界面自动化进行优化,解决高投入和低产出的矛盾。界面自动化测试接近用户真实场景且容易发现问题的特性对掌银这类端到端系统来说尤为重要,但缺点是实现成本高和外部依赖强。为实现在较小的成本代价下尽可能全面的对掌银界面进行自动化覆盖,测试人员采用固化前置脚本、合并交易脚本等方式对界面自动化脚本进行改进,提高脚本覆盖能力,降低覆盖成本。
DevOps突出工具支撑。掌银测试团队自研了移动端界面自动化测试平台集成及手工测试数据准备平台等支撑工具,实现了测试工作流水线实施及测试数据准备自动化。
移动端界面自动化测试平台集成到TFS流水线。掌银DevOps建设前期,测试人员在移动端界面自动化平台中积累了大量的界面自动化测试脚本。但移动端界面自动化测试平台尚未集成到TFS流水线,无法通过流水线调起界面自动化测试脚本,在流水线中对掌银界面进行自动化测试就成为了缺失一环。为解决这一问题,测试人员和组织级紧密合作,克服多平台、多框架难题,通过“TFS调用擎云平台,擎云平台调用移动端平台”的调用逻辑,打通掌银界面自动化和DevOps流水线之间的断点,完成移动端界面自动化测试平台与TFS流水线的工具集成,成功将移动端界面自动化纳入到DevOps流水线。
测试人员着重从以下四个方面降低误报率,提升测试环境可用性:一是优化自动化案例逻辑,提高案例健壮性。如在案例中增加“try/catch”异常处理机制;二是引入mock机制,实现对后台的解耦。如对登录交易和加密解密交易,测试人员均采用了mock机制,降低了对后台的依赖;三是协调后台发版窗口。错峰执行自动化,避免因后台程序变动引起误报;四是以wiki方式组织推动关联系统环境恢复。若因关联系统环境失效而导致掌银环境不可用时,测试人员及时在TFS中建立工作项,推送至对应的产品负责人进行跟踪处理,实现问题快速定位,并向关联系统联系人进行反馈,推动关联系统尽快恢复环境。
掌银通过DevOps评级认证,既为前期工作划上了圆满的句号,同时也开启了一个全新时代。随着研发中心DevOps推广工作的开展,我们将会把DevOps模式应用到整个掌银测试工作中去,实现快速高质量交付业务价值。
当然,我们也应该清醒认识到,在持续测试方面需要保鲜和改进的工作还有很多。包括:创建全职能团队。打破部门隔阂,促进业技、研测融合,加强全链条密切协作,对团队成员进行测试专项能力赋能;推动自动化测试向测试自动化转型。从部署测试环境到构造测试数据、执行测试脚本,最终生成测试结果,均以自动化方式实现;尝探线上拨测、生产监控。快速捕捉从用户行为轨迹里暴露的缺陷,实时推送给相关责任人,推动产品持续快速改善。

心有所信,方能行远。让我们主动拥抱DevOps,推动测试工作转型,实现测试持续改进和提质增效,为“推进数字化转型、再造一个农业银行”贡献力量!

牛晔,现任北研测试部副处长,长期从事系统开发、测试管理、测试支持保障工作,先后参与ABIS、全国数据大集中、智能掌银等工程建设工作。
李辉,现任北研测试部主任工程师,长期从事网络金融领域测试工作,主要负责掌银建设、技术研究工作。
25.【引领】TMMi测试过程改进回顾与展望
24.【引领】加强可靠性测试,夯实系统可靠根基
23.【引领】农业银行性能测试一体化平台建设
22.【引领】安全高效供给数据,助力研发创新
21.【引领】持续提升制品管理能力,赋能应用研发
20.【引领】开源软件安全治理困局的解与破
19.【引领】蓝绿发布机制在农行电子银行领域投产环节的应用分析
18.【引领】谛听的过去、现在、未来——技术社交驱动研发能力开放共享
17.【引领】主动作为,提升网点服务保障能力
16.【引领】提升环境可用性,给研发者一个放心环境
15.【引领】产品创新和技术转型双轮驱动下的掌银测试质量思考与实践
14.【引领】网络建设向SDN演进的技术研究
13.【引领】拥抱数字化转型,引领智能化运维
12.【引领】关于深化网点转型的对策思考
11.【引领】应用安全的挑战与应对
10.【引领】用户价值驱动,稳步推进敏捷研发软着陆
9.【引领】创新谋变,农行应用运维体系演变与实践
8.【引领】拥抱变局、走出困局、实现破局 切实提升安全生产执行力
7.【引领】擎云平台踵事增华,全面提升研测自动化水平
6.【引领】创新引领发展,架构面向未来
5.【引领】结合TMMi浅析测试改进思路
4.【引领】系统支持要成为研发工作的开路先锋
3.【引领】为流程“瘦身”,为管理“添翼”
2.【引领】结合DevOps谈我行研发管理改进
1.【引领】“引”管理之道,“领”智远之行
轮值总编:王晓昕
责任编辑:裴 霞
美 编:黄 翔
技术支持:孟 岱
我们的开心 · 总编辑部
(引 领)
本文来自网络或网友投稿,如有侵犯您的权益,请发邮件至:aisoutu@outlook.com 我们将第一时间删除。
相关素材