证券日报APP

扫一扫
下载客户端

您所在的位置: 网站首页 > 基金频道 > 基金动态 > 正文

基金业数字化转型专题 | 汇添富基金:IT自动化测试项目

2022-11-21 13:00  来源:中国基金业协会

    【编者按】为深入贯彻落实党的二十大精神,引导基金行业机构践行《证券期货业科技发展“十四五”规划》,共促基金行业数字化转型,按照中国证监会总体工作部署,于2022年11月开展“证券期货业数字化转型主题宣传月”活动。通过开展“证券期货业数字化转型主题宣传月”活动,搭建交流平台,展现数字化转型成果案例,激发金融科技创新活力,营造金融科技长效发展新生态。该篇为“证券期货业数字化转型主题宣传月”系列宣传之二十。

    IT自动化测试项目

    ——汇添富基金

    我司测试团队于2015年正式成立,最早介入的是电商直销测试项目,随着直销业务的发展及我司IT项目逐渐增多,测试团队规模从最初的三人扩充至目前的四十多人(含外包),经过几年发展,吸取了其他金融行业的测试经验,现已形成了一整套适合我司自身IT特点、成熟的测试体系,覆盖的测试类型包含功能、自动化、性能、接口测试等。

    一、测试工作活动周期

    二、数字化转型需求与自动化测试建立

    国内自动化测试[1]在2008年左右兴起,金融业最早使用自动化测试的主要是银行、券商、外汇交易中心等大型的金融机构。随着市场对于公募基金的认可增加,为了适应需求激增的市场,我司对于直销项目的迭代速度要求越来越高,迭代频率也越来越快。我司IT测试在人力资源投入有限的情况下于2016年自主研发了第一款基于GUI的自动化测试产品-Excel-Driven-HTF自动化测试框架(图2)。

    该套框架是基于当时主流PC端的GUI自动化测试基础上研发的,拥有运行错误自动截屏、错误恢复机制、自定义函数、自动生成Excel报告[2]等功能,也有脚本[3]易于维护、业务人员只要填写Excel便能参与自动化测试等特点。该套Excel驱动框架在数字驱动、关键字驱动的基础上,随着业务的发展不断更新升级。

    (一)建立自动化测试体系

    在自动化测试体系[4]的建立过程中,首先,确定自动化测试适用范围、梳理测试对象,并开展自动化测试可行性调研等工作;其次,制定自动化测试流程、规范;最后,执行自动化测试。并以基础交易为试点,以例行上线为场景,构建了日常自动化验证机制与手工测试相结合的测试体系。

    自动化测试不能单纯地理解为优于手工测试的一种测试方式。自动化测试、性能测试、手工测试、接口测试、白盒测试等不同的测试手段都是作为测试效能的一种实现方式,不能简单地做横向比较。所有的测试手段都是为了提升项目质量为目标,以项目能够高质量上线为导向,能够容纳接受并服务于所有IT项目,这是建立测试体系的初衷。

    (二)自动化团队建设

    团队建设方面,以自有员工为基石,招聘自动化测试资深外包人才,组建团队。同时提升自动化测试团队的业务知识和测试技能,定期培训、交流并建立了与手工测试不同的项目化考核体系。

    自动化团队不仅要能够写脚本、改框架,同时也要熟悉业务。所有测试人员不仅要求有良好的测试相关技术,也要对业务有深入的了解。在自动化测试做到一定程度后,自动化测试团队的业务水平应不亚于业务人员,甚至可以根据实践的操作经验给专业的业务人员提出专业的见解或建议。

    (三)自动化测试服务阶段

    自动化测试在完成了调研及框架搭建后,便可以在参与的项目中进行实践。在服务阶段,有如下的定位:

    (1)建议自动化测试脚本完成后,服务于自动化回归测试[5]、冒烟测试[6]。

    (2)参与回归测试阶段(每一轮手工测试最后几天执行自动化测试)。

    (3)执行环境为测试环境[7]。

    (4)每一轮测试手工测试与自动化测试同步进行,不存在执行顺序区别。

    (5)自动化测试定位于日常版本的回归测试。

    (6)自动化测试也可用于紧急版本的回归测试。

    依托于以上的定位来划分与手工测试职能,能够较好地与手工测试结合,也便于后期进行相关的问题排查,并更好地补充测试脚本或测试案例。

    自动化测试在服务阶段也并不是一成不变的,会根据实际测试情况不断地进行调整。

    (四)与手工测试结合

    自动化测试和手工测试应合作执行,前期手工测试可与自动化测试并行,待此模式成熟后,手工测试可不用测试自动化所覆盖的范围。如有需求,自动化测试可协助手工测试部署自动化测试框架,以便在手工测试有小量需求时,可自行运行自动化测试脚本。

    同时,手工测试和自动化测试也应定期进行工作互换,只有真正实践后才能理解两者的共同处和不同处,工作中才能更紧密的配合。

    由于自动化测试工具的特性,自动化测试案例不同于手工测试案例,自动化测试案例的编写更机械化、细致化。在编写案例过程中着重于从框架执行的角度,同时也依赖于手工测试回归案例。自动化的测试案例的要求是覆盖于手工回归案例,又不仅限于手工回归案例。

    (五)评价自动化测试的作用

    对于实施了自动化测试的直销项目,形成了以下3点的评价:(1)缩减单个项目测试时间。(2)提升系统整体测试效率。(3)因成本问题并不是所有项目都适用。随着自动化测试的逐步深入,自动化测试的作用也越来越显著,并得到了各方的支持与认可。

    三、问题与解决

    自动化测试实施的初期遇到过很多问题和困难,比如前期调研不足,导致未正常获取都需求相关文档;以手工用例为基准,导致高度依赖,产生了很多额外的工作量;部分子功能模块手工用例数据不完整,自动化同步不完整;业务知识理解或掌握不足;减少测试工作量的目标及效果不是很明显等。

    基于这些问题,结合以往项目经验,测试团队进一步地熟悉了解系统相关业务,以便更精确地定位脚本开发调试执行过程中的问题,丰富脚本数据、案例,加强与业务人员的沟通协助与配合机制,提高对工具的使用程度,最大程度地利用自动化测试资产。丰富自动化测试手段,不能只局限于自动化测试工具的使用上,要随着对系统的了解不断加深,不断地加强和完善自动化实施和应用策略。

    四、数字化转型需求升级

    随着应用软件市场APP化的全面推广,我司APP需求占据越来越大的比重,APP相关的测试工作量也随之激增,因此在测试过程中面临着既要兼顾传统PC端又要测试APP的问题。

    在测试案例及回归测试工作量增加到一定程度后,初期测试团队采用了selenium+python的框架来进行APP的自动化测试工作。由于都是基于开源工具研发的框架,在自有测试人员有限的情况下,无法投入更多的人力在框架及脚本维护上,因此测试团队及时改变了策略,选用了外购成熟的APP界面UI自动化测试产品。经过半年多的使用,APP自动化测试的效果逐渐体现,主要体现在以下两点:一是减轻了手工回归测试的工作量,在一定程度上取代了手工回归测试。二是弥补了手工测试受限于测试时间无法覆盖到历史版本的问题。

    除了电商直销APP测试外,我司的“添富小i”也使用了同一套APP自动化测试体系。在使用了该套自动化测试体系后,该APP的手工测试工作量也有所降低。

    在手工测试人员减少的情况下,2021年全年共计实现手工回归用例替代1.2万余条,全年共计运行版本共计1530+轮次,运行脚本数量超过38万个。且随着版本的更新,自动化占比逐步提高,2021年累计发现手工不易发现的bug二百余个。此外跟随我司APP发版节奏,在APP上线后1-2周内实现自动化,为下一个版本发布提供回归自动化支持。

    目前我司APP自动化测试已建立DailyRun机制,即每日在凌晨12点至次日早上8点会在无人值守的情况下自动执行测试计划。整体手工案例覆盖率-增加回归案例集后的横向覆盖率达到86%左右。部分项目手工测试人员也已参与执行自动化测试案例。

    自从数字化转型需求升级以来,APP自动化测试累计共覆盖我司自研APP产品“现金宝”、“添富小i”共计63个版本,共实现Android&IOS脚本数量2.5万余个,共计运行版本共计5000+多轮次,运行脚本数量大于103万个。去除环境因素导致的运行失败,运行成功率大于91%。共计实现手工回归用例替代5万余条,脚本总体实现自动化占比85%以上,且随着版本的更新,自动化占比还在逐步提高。

    在数字化转型这条路上同样遇到了不少问题,比如单版本的脚本运行时间在5-6个小时,运行时间较长;单版本的自动化脚本数量近500个,维护成本越来越大;每个版本由于环境问题导致的脚本运行失败占比在60%左右,不但影响脚本的运行速度和运行质量,而且为事后的脚本分析增加了很大的干扰。面对以上问题测试团队采取了增加端口、定时清理日志、新增一套自动化测试环境、增加脚本运行可运行时间等措施。目前所有已知问题都已经得到了有效改善。

    注:[1]自动化测试,本文中所有“自动化测试”都指“自动化功能测试”。利用GUI自动化测试工具来开发和执行测试脚本,以此验证是否满足规定的需求或识别出期望的结果和实际结果之间有无差别。[2]Excel报告,指“自动化功能回归测试报告”。描述对系统和系统部件进行的自动化功能回归测试行为及结果的文件。[3]脚本,指“自动化功能回归测试脚本”。能够被自动执行的自动化功能回归测试案例,它和一个自动化功能回归测试需求相对应。[4]自动化测试体系,指“自动化功能回归测试体系”。对给定的自动化测试,就其建立、运行和结果估计所作的详细说明。常常把一组有关的过程组织起来形成自动化功能回归测试过程文件。[5]自动化回归测试,本文中“自动化回归测试”都指“自动化功能回归测试”。选择性的重新自动化功能测试。利用GUI自动化测试工具来开发和执行测试脚本,目的是通过检测系统和系统部件在修改时所引起的故障,以此来验证上述修改未引起不希望的有害效果,证明修改后的系统和系统部件仍能满足规定的需求。[6]冒烟测试,在某一版本build建立后,对系统的基本功能进行简单的测试。这种测试强调功能的覆盖率,而不对功能的正确性进行验证。冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。[7]环境,指自动化测试执行工作所需的环境,它包括手工测试环境,即自动化测试被测系统环境和自动化测试脚本运行的相关环境,即自动化测试运行环境。

-证券日报网
  • 24小时排行 一周排行

版权所有证券日报网

互联网新闻信息服务许可证 10120180014增值电信业务经营许可证B2-20181903

京公网安备 11010202007567号京ICP备17054264号

证券日报网所载文章、数据仅供参考,使用前务请仔细阅读法律申明,风险自负。

证券日报社电话:010-83251700网站电话:010-83251800

网站传真:010-83251801电子邮件:xmtzx@zqrb.net

证券日报APP

扫一扫,即可下载

官方微信

扫一扫,加关注

官方微博

扫一扫,加关注