您现在的位置: 新晨范文网 >> 金融论文 >> 银行发展论文 >> 正文

银行自动化测试技术研究与应用

2019/09/23 阅读:

随着金融科技蓬勃发展,基于大数据、人工智能、云计算和物联网等新兴技术应用的金融创新不断涌现。这在给金融系统安全风险防范带来巨大挑战的同时也加剧了银行同业以及银行与科技金融公司之间的竞争。快速推出具有创新性、体验好的产品,就能快速抢占市场,取得先机。测试作为产品研发生命周期的重要一环,已成为银行信息科技领域一项专业工作。传统人工测试方式因投入大、效率低和受环境制约等弊端,在很多情况下无法满足产品快速交付和投产要求,因此,通过技术手段开展自动化测试势在必行。

一、自动化测试基本概念及分类

1.基本概念自动化测试是指软件测试(SoftwareTesting)的自动化,是把以人为驱动测试行为转化为机器执行的一种过程。通过研发自动化工具,可将常用的、稳定的工作流程通过工具进行固化,以实现快速测试,提高测试效率,严控测试质量。2.自动化测试分类自动化测试从技术实现特征上可分为单元测试(Unit)自动化、接口级(API)自动化和界面级(UI)自动化三个层级。从实现内容上,又可分为案例设计自动化、案例执行自动化、测试结果核对自动化、测试缺陷提交自动化以及测试报告生成自动化等。下面主要从技术实现特征上进行阐述。(1)Unit单元测试自动化主要是开发人员开发测试程序或依托专用测试软件对软件程序单元模块开展自动化测试,比如适用于Java的测试工具JUnit。单元测试需要有一定编程技能,由于逻辑简单,维护案例成本较低,实现自动化测试较为容易,受益率高。(2)API接口层自动化测试基于程序接口或报文格式开展的自动化测试需要依据系统接口特点和报文格式进行适应性开发,工具研发周期较长,可实现复杂案例设计,能屏蔽案例对某些特殊环境依赖,适用范围广,受益率适中。(3)UI界面层自动化测试该测试一般通过专用自动化工具实现,模拟用户对交易界面操作进行录制、识别和回放,检验应用程序能否达到预期功能及正常运行。门槛相对最低,但案例维护成本较高,受益率较低。三种分类及维护成本如图1所示。

二、自动化测试案例实践

对于单元测试自动化,业界已有很多经典案例,不再赘述。本文仅选取所实践项目中基于API接口层自动化和UI界面层自动化开展的两个案例介绍。1.基于API接口层自动化实现无人值守的全天候测试测试某一项目,需要与人行系统对接,按人行规定从2018年1月22日起,系统实行521小时运行,即:从T-1日20:30到T日17:15正常受理来账和往账,同时,节假日首日的前一日20:30至节假日首日8:30为特殊工作日,该段时间虽然人行大额状态为开启,但不允许做大额交易。上述场景测试案例执行时间都在节假日及工作日的非工作时间段,为减少节假日人员加班,并实现正常测试,基于该系统的特点,我们自主开发了基于交易API接口层自动化测试脚本,并在脚本中增加了定时执行功能,实现测试案例在特殊时间点无人值守自动化执行,且在执行结束后自动生成测试报告。测试人员在工作日可通过自动化测试报告了解交易详细执行情况,取得了事半功倍的效果。2.基于UI界面层自动化实现大数量测试快速复现生产问题某系统投产后,在生产环境中出现了交易返回报文中内容有错位现象,影响了客户数据正确性。为尽快分析和定位生产出现的问题,需要对20多万笔生产数据逐一验证测试,如果采用手工测试,需要在两个环境执行40多万条案例,短期内无法完成。测试人员通过使用UFT自动化测试工具,很好地解决了上述问题:首先用UFT工具录制上述交易执行脚本,然后通过参数化技术调试脚本,增强脚本健壮性,使20多万条数据在脚本中自动替换;通过VBS编程,判断交易返回报文是否成功,如果不成功则获取失败原因;通过使用并发技术,在多台机器上连续(7×24小时)执行20多万条数据。经过7天连续测试,完成了所有数据的回归测试,找到了生产环境交易返回报文错位的根本原因,并附带发现了程序存在的2个严重缺陷,项目组据此采取了相应措施,解决了生产环境中出现的问题。本次自动化测试应用在很短时间内锁定了生产环境缺陷,测试时间和取得的效果远远超过了项目组预期,得到了项目组充分肯定。

三、自动化测试的优点分析

通过上述实例,可以看出自动化测试的确能带来很好的效果,自动化测试优点归纳如下:一是回归测试更快捷。一般而言,系统投产后会面临不断改造、升级,相应回归测试任务会很繁重。自动化测试则能很好地解决此类场景,特别是在程序修改比较频繁时效果非常明显。由于回归测试的用例是提前设计好的,测试的预期结果也是完全可以预料的,此种条件下回归测试通过自动化实现,则可以极大提高测试效率,缩短回归测试时间。二是案例批量执行更简捷。通过自动化技术,使案例参数化并批量执行,可实现7×24小时运行,解放手工测试,减少人力投入。三是使手工测试的不可能成为可能。对于需要进行大量用户同时测试的场景,不可能有足够多测试人员现场同时测试,此场景可通过自动化测试模拟多用户并发执行,满足测试场景需要。四是测试资源更合理使用。将繁琐的任务自动化,可以提高准确性和测试人员的积极性,将测试技术人员解脱出来从而投入更多精力设计更好的测试用例,使自动化测试和手工测试相辅相成,更充分地利用资源,提高测试效率。五是测试质量更有保障。由于测试是自动执行的,每次测试的结果和执行内容的一致性是可以得到保障的,从而达到测试可重复的效果。

四、适合自动化测试场景分析

自动化测试虽然有很多优点,但受技术、人力投入成本和系统投产时间性要求等因素影响,并不能完全替代人工测试。迭代开发、周期短和程序变动频繁的系统则不太适合自动化测试,是否进行自动化测试一般可从以下三方面均衡考虑。一是软件需求变动不频繁。测试脚本的稳定性决定了自动化测试维护成本,如果软件需求变动过于频繁,测试人员需要根据变动的需求来不断更新测试用例及相关测试脚本,而脚本维护本身就是一个代码开发过程,需要修改、调试,必要时候还要修改自动化测试的框架。如果所花费成本高于其节省测试成本,那么自动化测试便得不偿失。如果系统中某些模块相对稳定,而某些模块需求变动很大,则可针对相对稳定模块进行自动化测试,变动较大模块仍采用手工测试,两种方式结合起来,达到有机统一。二是项目周期较长。由于自动化测试需求的确定、自动化测试框架的设计以及测试脚本的编写与调试均需要相当长的时间来完成,这个过程本身就是一个测试软件的开发过程。如果项目周期比较短,没有足够时间去支持这样一个过程,那么自动化测试便是空中楼阁。三是自动化测试脚本是否可重复使用。自动化测试脚本可重复使用也是一个参考因素,具体可从三方面考量:(1)所测试项目之间是否有很大差异性(比如银企通系统与交易银行)。(2)所选择测试工具是否适应这种差异。(3)测试人员是否有能力开发出适应这种差异自动化测试框架。银行系统具有结构复杂、客户数据量大和相互关联性强等特点。一旦生产系统出现问题,则会影响众多客户,并对银行声誉造成极大损害。完备和高效的产品和系统测试,是保障软件质量的有效手段。在测试工作中,我们应积极大胆地对测试方法进行创新,不断研究和实践业界先进的自动化测试技术,并尝试在测试过程中引入不同自动化测试工具(比如UFT、TestComplete、UIautomation和Pywinauto等)。适当的自动化测试成本投入实现了手工测试和自动化测试的有机结合,并可达到事半功倍的效果。

作者:刘跃光 齐坤 单位:中国农业银行研发中心

银行自动化测试技术研究与应用

2019/09/23 阅读:

推荐度:

免费复制文章