金融软件功能自动化测试的分析及应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
金融软件功能自动化测试的分析及应用
【摘要】自动化测试运用于金融软件测试领域已经初见规模,尤其是面对庞大而复杂的金融算法和大量的纷繁复杂的回归测试,自动化测试具有相当重要的作用。本文结合自动化测试的相关知识,阐述了金融软件的特性,对于构建科学、统一的金融软件自动化测试服务平台提出建设性意见,此外列举一个银行实例来验证自动化测试运用于金融软件的功能效用。银行实验结果证明,自动化测试可以明显提升金融软件测试的精确率和工作效率,节省大量的人力和财力,笔者最后结合自动化测试的问题,提出改进的措施。
【关键词】金融软件;自动化测试;应用
0.引言
软件测试的地位随着软件开发规模的逐渐扩大、软件系统的逐渐复杂以及软件开发难度变大,加之开发和管理软件的投入成本的提升,导致软件测试变得极其重要。软件测试是保证软件质量和安全性的一个重要环节,在众多软件开发领域得到广泛应用。尤其是自动化测试的产生,使得其他非自动化测试方式逐渐淡出市场,而自动化测试逐渐成为主流测试方式,大大提升软件测试的效率,这一测试效率是前所未有的。由此可见,在金融软件测试领域中自动化测试不仅得到了广泛的应用,而且具有较为广阔的发展前景。
1.自动化测试定义
自动化测试是指由机器测试代替人为测试的一种过程,机器执行测试效率渊源高于人为测试的效率。自动化测试一般通过使用相关的自动化测试软件编写测试脚本,通过审查后,得出一系列的数据结果,再将实际结果和期望结果相比较,从而进一步实现软件测试的最终目的。自动化测试功能是伴随着计算机技术和信息技术的发展而不断改进的,其功能大致经历了以下三个发展阶段,分别是:简单的录制及回放阶段、数据驱动阶段、关键字驱动阶段
[1]。
2.自动化测试在金融系统中的应用
现阶段的金融行业的项目测试中,涉及到银行、保险业以及相关资金合作社。银行项目中自动化测试的使用率是最为广泛的,自动化测试在银行项目中的使用都是凭借测试中心、程序中心、品质管理中心类确保项目质量、协调和开发测试工作的。笔者将根据银行项目的针对公信贷项目的生成,并结合测试系统的自动化测试方案,全面、具体、科学地分析自动化测试的前期准备工作、测试工作以及实施自动化测试的工作流程。自动化测试实施步骤一般分为下列10个步骤:前期对数据资料的测试分析、测试案例的规划和设计、测试数据检查和准备、QTP自动化框架的搭建、录制脚本、开发脚本、调试脚本、运行脚本、生成测试报告、自动化回归结果[2]。
2.1前期对数据资料的测试分析
首先,了解并掌握银行公信贷项目测试的系统架构以及获取的相关资料。在执行这个流程中需要银行技术人员在成立自动化测试项目组之初对相关工作人员进行一定的培训,让工作人员了解并掌握系统架构、获取资料的方式、制定测试范围等。分析公信贷系统与其他系统的关系图,如图1所示。其次,银行业务交易的分类。通常情况下,一个业务系统包含许多隶属模块,其中每个隶属模块又包含多个交易。相关工作人员熟悉并掌握系统架构以及相关文档后,便开始划分交易,之后的相关工作均由交易为单位进行。最后,提取交易规则。提取交易规则主要是“手工额度占用”的规则,“手工额度占用”主要是手工调整有与系统处理错误导致没有正常占用或释放的额度数据信息。交易规则为:(1)保证、抵押、信用、保证金等为银行手工额度占用的担保方式;(2)客户的业务评级包含1至10级,客户在信贷系统的还款能力以及信誉取决与评级高低。
图1 对公信贷系统和其他系统之间的关系
2.2测试案例
根据上述提取出来的手工额定占用的交易规则,采用正交分析法设计测试案例。第一步,提取正交因素与因素水平。根据表1的规则,可提取5个正交因素,得出表2,表中符号含义为:①表示占用起始日;②表示占用到期日;③表示授信额度起始日;④表示授信额度到期日;⑤表示占用金额;⑥表示当前系统日期;⑦表示授信可用额度。第二步,采用正交分析,在表2中评级为1的组合作为正常条件,其余视为特殊条件。将水平1对应的因素与其他水平的因素相替换并组合。第三步,根据正常条件与特殊条件的替代关系,便可产生一套新测试案例,如表3所示。
表2 水平采用等价类思想选取
担保方式业务评级①占用起始
日②占用到期
日
⑦占用金额
水平1 信用 1 <②,>③,<④<④,>⑥>⑦
水平2 保证 2 =②,=③,=④=④,=⑥=⑦
水平3 抵押 3 >②,>③,<④>④,>⑥<⑦
水平4 保证金 5 <②,>③,>④<④,>⑥>⑦
表3案例
案例编号案例性质担保方式业务评级占用起始日占用到期日占用金额T1 正例信用 1 <②,>③,<④<④,>⑥>⑦T2 正例保证 1 <②,>③,<④<④,>⑥>⑦……………………………………
T23 反例信用 1 <②,>③,<④<④,>⑥=⑦T24 反例信用 1 <②,>③,<④<④,>⑥<⑦2.3测试数据检查和准备
在这个流程中先要找出数据并整合数据。由表3可知,表中的24个测试案例,每条数
据的评价水平都不同,存在明显差异,准备数据过程中要根据一个案例匹配一条数据,每条
数据存在差异,因此必须准备至少24条数据,这对24条数据进行检查核对。数据准备的流
程为:1)编写SQL语句查询数据库;2)若数据不足,则补充数据。因为必须要将数据库
的安全性、可靠性考虑在内,因此交易界面做数据是最好的选择。交易界面具有即时性,最
数据时可以保证精确度。最后,备份数据库。备份数据库的意义非常重要,因为部分数据具
有消耗性,用过后就不能再使用,因此必须先将数据备份,等调试成功后,在还原数据库。
2.4QTP自动化测试框架的构建
在这个流程中先要利用关键字驱动作自动化框架的准备。因为QTP使用的是关键驱动模式,能够完全简化测试的构建与维护工作,构建QTP自动化测试框架时,要将测试案例以及测试数据放置在Excel表格中,然后利用DataTable功能将表格中的测试案例、测试数据、用户资料直接导入,最后进行自动化生成,如图2所示。
图2自动化框架详情
2.5录制脚本
录制脚本的过程要利用QTP软件进行操作,首先找到script目录,在script目录下找到Main_Script脚本,然后找出sub sgedzy文件,在此环境下录制“手工额度占用”的交易脚本。
2.6开发脚本
对脚本进行参数化转变是开发脚本的过程,而增加部分扩展函数是二次开发脚本的过程。该过程一般使用vbs、SQL语言,并结合QTP自带的方法和接口,对所录制的脚本进行二次开发。二次开发是指对脚本进行重组和调整的过程,录制后的二次开发脚本主要涉及增添logout和login函数、增加扩展函数、测试数据参数化、增加交易日志和截图输出功能等。
2.7调试与运行脚本
调试脚本过程主要是修整和优化对库函数、测试数据参数化、增添logout和login函数、主脚本函数以及数据表等。调试完成后就可以正式进行运行工作。在运行二次开发脚本过程中首先要还原数据库,因为在调试运行过程中,有些数据具有单次使用性,由于二次使用而消耗了。当运行过程中出现异常,就必须有针对性地修改相应配置,直到运行成功。
2.8自动生成测试报告
测试报告的生成主要是通过测试报告生成器实现的,测试报告生成器是隶属于自动化测试的一部分,一般涉及到report目录下的reportlog文件和images文件,将所以相关文件和数据来生成一个测试报告.html文件。这份文件可以清楚地查看测试描述、测试结果、测试