《银行自动化测试技术研究与应用.docx》由会员分享,可在线阅读,更多相关《银行自动化测试技术研究与应用.docx(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、银行自动化测试技术研究与应用随着金融科技蓬勃发展,基于大数据、人工智能、云计算和物联网等新兴技术应用的金融创新不断涌现。这在给金融系统安全风险防备带来宏大挑战的同时也加剧了银行同业以及银行与科技金融公司之间的竞争。快速推出具有创新性、体验好的产品,就能快速抢占市场,获得先机。测试作为产品研发生命周期的重要一环,已成为银行信息科技领域一项专业工作。传统人工测试方式因投入大、效率低和受环境制约等弊端,在很多情况下无法知足产品快速交付和投产要求,因而,通过技术手段开展自动化测试势在必行。一、自动化测试基本概念及分类1.基本概念自动化测试是指软件测试SoftwareTesting的自动化,是把以人为驱
2、动测试行为转化为机器执行的一种经过。通过研发自动化工具,可将常用的、稳定的工作流程通过工具进行固化,以实现快速测试,提高测试效率,严控测试质量。2.自动化测试分类自动化测试从技术实现特征上可分为单元测试Unit)自动化、接口级API自动化和界面级UI自动化三个层级。从实现内容上,又可分为案例设计自动化、案例执行自动化、测试结果核对自动化、测试缺陷提交自动化以及测试报告生成自动化等。下面主要从技术实现特征上进行阐述。1Unit单元测试自动化主要是开发人员开发测试程序或依托专用测试软件对软件程序单元模块开展自动化测试,比方适用于Java的测试工具JUnit。单元测试需要有一定编程技能,由于逻辑简单
3、,维护案例成本较低,实现自动化测试较为容易,受益率高。2API接口层自动化测试基于程序接口或报文格式开展的自动化测试需要根据系统接口特点和报文格式进行适应性开发,工具研发周期较长,可实现复杂案例设计,能屏蔽案例对某些特殊环境依靠,适用范围广,受益率适中。3UI界面层自动化测试该测试一般通过专用自动化工具实现,模拟用户对交易界面操作进行录制、识别和回放,检验应用程序能否到达预期功能及正常运行。门槛相对最低,但案例维护成本较高,受益率较低。三种分类及维护成本如图1所示。二、自动化测试案例实践对于单元测试自动化,业界已有很多经典案例,不再赘述。本文仅选取所实践项目中基于API接口层自动化和UI界面层
4、自动化开展的两个案例介绍。1.基于API接口层自动化实现无人值守的全天候测试测试某一项目,需要与人行系统对接,按人行规定从2018年1月22日起,系统实行521小时运行,即:从T-1日20:30到T日17:15正常受理来账和往账,同时,节假日首日的前一日20:30至节假日首日8:30为特殊工作日,该段时间固然人行大额状态为开启,但不允许做大额交易。上述场景测试案例执行时间都在节假日及工作日的非工作时间段,为减少节假日人员加班,并实现正常测试,基于该系统的特点,我们自主开发了基于交易API接口层自动化测试脚本,并在脚本中增加了定时执行功能,实现测试案例在特殊时间点无人值守自动化执行,且在执行结束
5、后自动生成测试报告。测试人员在工作日可通过自动化测试报告了解交易具体执行情况,获得了事半功倍的效果。2.基于UI界面层自动化实现大数量测试快速复现生产问题某系统投产后,在生产环境中出现了交易返回报文中内容有错位现象,影响了客户数据正确性。为尽快分析和定位生产出现的问题,需要对20多万笔生产数据逐一验证测试,假如采用手工测试,需要在两个环境执行40多万条案例,短期内无法完成。测试人员通过使用UFT自动化测试工具,很好地解决了上述问题:首先用UFT工具录制上述交易执行脚本,然后通过参数化技术调试脚本,加强脚本强健性,使20多万条数据在脚本中自动替换;通过VBS编程,判定交易返回报文能否成功,假如不
6、成功则获取失败原因;通过使用并发技术,在多台机器上连续(724小时)执行20多万条数据。经过7天连续测试,完成了所有数据的回归测试,找到了生产环境交易返回报文错位的根本原因,并附带发现了程序存在的2个严重缺陷,项目组据此采取了相应措施,解决了生产环境中出现的问题。本次自动化测试应用在很短时间内锁定了生产环境缺陷,测试时间和获得的效果远远超过了项目组预期,得到了项目组充分肯定。三、自动化测试的优点分析通过上述实例,能够看出自动化测试确实能带来很好的效果,自动化测试优点归纳如下:一是回归测试更快速。一般而言,系统投产后会面临不断改造、升级,相应回归测试任务会很繁重。自动化测试则能很好地解决此类场景
7、,十分是在程序修改比拟频繁时效果非常明显。由于回归测试的用例是提早设计好的,测试的预期结果也是完全能够意料的,此种条件下回归测试通过自动化实现,则能够极大提高测试效率,缩短回归测试时间。二是案例批量执行更简捷。通过自动化技术,使案例参数化并批量执行,可实现724小时运行,解放手工测试,减少人力投入。三是使手工测试的不可能成为可能。对于需要进行大量用户同时测试的场景,不可能有足够多测试人员现场同时测试,此场景可通过自动化测试模拟多用户并发执行,知足测试场景需要。四是测试资源更合理使用。将繁琐的任务自动化,能够提高准确性和测试人员的积极性,将测试技术人员解脱出来进而投入更多精神设计更好的测试用例,
8、使自动化测试和手工测试相辅相成,更充分地利用资源,提高测试效率。五是测试质量更有保障。由于测试是自动执行的,每次测试的结果和执行内容的一致性是能够得到保障的,进而到达测试可重复的效果。四、合适自动化测试场景分析自动化测试固然有很多优点,但受技术、人力投入成本和系统投产时间性要求等因素影响,并不能完全替代人工测试。迭代开发、周期短和程序变动频繁的系统则不太合适自动化测试,能否进行自动化测试一般可从下面三方面平衡考虑。一是软件需求变动不频繁。测试脚本的稳定性决定了自动化测试维护成本,假如软件需求变动过于频繁,测试人员需要根据变动的需求来不断更新测试用例及相关测试脚本,而脚本维护本身就是一个代码开发
9、经过,需要修改、调试,必要时候还要修改自动化测试的框架。假如所花费成本高于其节省测试成本,那么自动化测试便得不偿失。假如系统中某些模块相对稳定,而某些模块需求变动很大,则可针对相对稳定模块进行自动化测试,变动较大模块仍采用手工测试,两种方式结合起来,到达有机统一。二是项目周期较长。由于自动化测试需求确实定、自动化测试框架的设计以及测试脚本的编写与调试均需要相当长的时间来完成,这个经过本身就是一个测试软件的开发经过。假如项目周期比拟短,没有足够时间去支持这样一个经过,那么自动化测试便是海市蜃楼。三是自动化测试脚本能否可重复使用。自动化测试脚本可重复使用也是一个参考因素,详细可从三方面考量:1所测
10、试项目之间能否有很大差异性(比方银企通系统与交易银行)。2所选择测试工具能否适应这种差异。3测试人员能否有能力开发出适应这种差异自动化测试框架。银行系统具有构造复杂、客户数据量大和互相关联性强等特点。一旦生产系统出现问题,则会影响诸多客户,并对银行声誉造成极大损害。完备和高效的产品和系统测试,是保障软件质量的有效手段。在测试工作中,我们应积极大胆地对测试方法进行创新,不断研究和实践业界先进的自动化测试技术,并尝试在测试经过中引入不同自动化测试工具(比方UFT、TestComplete、UIautomation和Pywinauto等)。适当的自动化测试成本投入实现了手工测试和自动化测试的有机结合,并可到达事半功倍的效果。