基于金融行业的软件测试分析

 

 随着金融行业的业务不断增长,金融交易模式的不断变化,金融机构对信息化的要求也愈来愈高,高质量的金融软件对于金融机构来讲显得尤其重要。如何保证金融行业软件的质量,对金融行业软件的 测试人员来讲,也提出了更高的要求。如下针对金融行业软件的测试作出了具体的分析:
   1金融行业软件特征分析
  金融行业软件系统具备集中度高、规模庞大、数量多、系统之间关联性强、业务复杂、需求变化快等特色,如何有效可行的实现 软件测试和软件质量控制,是对金融行业软件测试人员提出的基本要求。
   1.1金融行业软件的业务特色
  以金融行业软件的典型表明银行系统软件为例:通常的银行系统软件都有一个核心系统,核心系统主要涉及帐务的处理、清算、计息等。银行的其它业务系统都会直接或间接的与核心系统进行交互,主要处理一些涉及业务的流程以及系统管理、用户管理等辅助功能。
  此外,银行的业务系统也种类繁多。好比:ACE/柜面、网上银行、 电话银行、呼叫中心、信贷、资产托管、资金风险分析及风险控制系统、外汇买卖、基金、期货、黄金、汇票、信用卡业务以及其它衍生业务等等。各个系统之间均可能有着密切的联系,之间也会涉及到不一样系统之间的接口。
  所以,在测试过程当中,除了对银行的核心系统、业务系统进行测试以外,还会涉及对接口的测试,而 接口测试每每须要测试人员构造必定的测试环境与测试数据来模拟各系统之间的交互。
   1.2金融行业软件的复杂性特色
  就银行系统软件来讲,自己就具备复杂性的特色。首先,银行软件具备不一样的客户群,如我的用户、企业用户、银行内部管理人员、业务人员等,所以,银行软件会有针对不一样客户所使用的版本或权限控制。此外,对于不一样的服务方式,如柜台、电话银行、网上银行等,都必须开发出不一样的软件。其次,银行业务种类繁多,业务逻辑也很是复杂,对业务处理要求有很高的安全性和实时性,这些都要借助复杂的 技术才能实现。所以,对于测试而言,软件的复杂性也增长了测试的复杂性,对测试者来讲要求有至关的经验和 测试技术的支持。
  另外,因为银行业务的快速发展,当旧的银行软件系统没法知足业务处理的要求时,就必须开发新的系统,对于从新开发的新系统来讲,旧系统的用户数据必须保证能在新系统中正常使用,这就涉及到了新旧版本的数据移植问题,因为新旧系统之间数据字典存在差别,数据移植后可否正常,就须要对新旧数据进行比对性测试。比对测试过程每每会涉及 数据库的应用及比对工具的开发使用。
   2金融行业软件测试的现状
  根据某项调查,金融企业应用系统的数量,中小银行应用系统数量广泛在100个左右,有一半银行超过100个应用系统;虽然保险行业应用系统数量相对较少,但大部分保险公司拥有10―50个应用系统;并且这些数量还有进一步上涨的趋势。调查数据也代表,金融行业IT部门的测试能力目前远远低于金融机构对测试的要求[3]。即便是IT成熟度比较高的企业,也难以覆盖全部应用系统的测试需求。金融企业的测试须要和信息科技部门的测试能力之间存在必定的差距。
   3金融行业软件测试方法及范围分析
  如下主要从 功能测试、接口测试、数据移植测试、 性能测试、安全性测试、风险监控测试、文档审核几个方面来阐述金融行业软件的测试方法及范围[4]。如下划分主要为了更清晰了解金融行业软件测试所包含的范围,本次分析不涉及 白盒测试的内容,主要针对涉及金融行业软件业务特性的测试方法及范围进行阐述。
   3.1功能测试
  功能测试,主要是对软件的功能进行的验证,对于金融行业软件来讲,功能测试主要进行如下功能的验证:
   3.1.1业务验证测试
  验证业务系统的功能是否正确实现,测试其业务处理的准确性。
   1)业务流程测试
  金融行业软件测试首先关注的是业务的正确性,业务流程要合理、业务处理正确无误,这些每每须要测试人员具有必定的金融软件测试经验,才能更好的判断业务流程设计是否合理,是否知足客户实际需求,以及业务流程处理过程当中可能会涉及到的异常,一般经过正常案例和异常案例来验证业务流程的完整性和正确性。业务流程除了验证流程的正确性,一般对于涉及金额、资金、库存等数据及业务流程中生成的 记录是否正确性也是测试的重点。
   2)帐务处理
  对于银行来讲,帐务处理为核心系统功能,也是这类软件测试的重点,帐务处理不只涉及到资金,还与交易过程相关,在测试系统对帐时,必须对帐务处理流程有清晰的认识,对于帐务处理过程当中帐务是否处理正确、是否出现错帐、是否须要进行调帐等案例都要能进行完整的案例设计来覆盖测试点,这一块的测试通常须要有经验的测试人员来进行测试。
   3)清算
  银行系统清算过程涉及的东西较多,如资金清算、库存清算、计费、计息、对帐、登账、报表生成等复杂的过程,同时涉及的数据量也是很是的大,对于大型系统来讲更是如此数据检查的工做量也很大,一样测试人员须要对清算的全过程有清晰的了解。
   4)报表
  对于银行系统来讲,报表是直接呈现给用户最直接的结果,而对一个银行系统来讲,报表的数量通常都较庞大,极可能涉及到几十张报表,所以对报表的检查也是测试的重点,这须要测试人员对银行系统涉及的业务很是熟悉,能判断报表的设计是否合理,报表数据是否正确等。
   3.1.2客户端测试
  客户端主要针对的是软件界面功能的测试,根据功能划分通常涉及如下几类:
   1)系统管理类
  系统管理主要包括系统参数管理、用户管理、角色管理、权限分配等,测试也包含相应的业务逻辑及页面测试,如查询功能的测试、显示风格、验证客户端页面显示数据是否正确等。
   2)数据查询类
  主要验证数据查询结果客户端显示是否正确。
   3)其它涉及业务操做的功能界面
  主要针对客户端界面的录入、查询等功能进行测试。
  客户端测试还会对界面的友好性、提示信息的合理性等进行测试。
   3.2接口测试
  对于银行来讲,一般行内系统和与银行外对接的系统是独立开发的,行内与行外系统采用的数据库、通信协议等均可能存在差别;而且对于银行来讲,还可能存在多个系统,如:网上银行、ACE/柜面、电话银行、呼叫中心、信贷、资产托管、资金风险监控分析系统等,而且各个系统之间可能关联特别紧密,存在许多交互;所以,在测试中会涉及到相关系统接口的测试,这时一般须要构造对接系统的测试环境、数据、业务等来模拟对接系统。
  接口测试中,因为一方系统在测试过程当中不可见,所以一般须要进行环境的模拟,好比开发模拟软件来模拟被测试系统与所交互的系统之间的通信,而且在测试过程当中一般须要测试人员本身组报文,经过模拟发送器收发发送报文来进行测试,并经过后台检查报文转换是否正确,经过数据库来验证数据是否正确。一般来讲,接口的测试测试人员主要跟后台和数据库打交道,而不多经过客户端来操做,所以要求测试人员对数据库知识、对应的 操做系统命令以及一些中间件具备必定的熟悉程度才能更好的进行测试。
  接口测试通常在功能测试阶段完成,功能测试计划中应包含接口测试。
   3.3数据移植测试
  对于银行来讲,软件产品常常存在更新换代或升级的状况,新系统的运行环境和旧系统可能不一致。所以,为了保证系统的顺利运行,在新系统研发出来,准备上线以前,须要把原来旧系统的客户历史数据移植过来,这就涉及到了数据移植问题。数据移植并非简单的数据迁移,由于新旧系统之间数据字典是不一样的,为了保证移植结果的正确性,须要对新旧数据库的数据进行比对,一般能够经过人工方法或开发比对工具进行比对。
  举例来讲,旧系统采用的SQLSERVER的数据库,而新系统采用 Oracle的数据库;而且就系统可能存在50张数据表,新系统可能有200张数据表,并且,新系统的数据表结构与旧系统可能彻底不同,或者新旧系统的某张表可能对应另外一个系统的几张表,这样在数据移植测试中就要进行几方面的测试。好比,两个数据库可能存在有差别的地方,如数据类型不一样,位数不一样,在数据移植过程当中对这部分就应该作详细的检查。此外,表结构的不一样,在作数据移植检查时,须要得到新旧版本的数据字典,而且对移植过来对应的全部字段数据是否移植正确作检查。
  数据移植测试每每须要测试人员有足够的耐心,能仔细进行比对,发现存在的问题。数据移植测试通常在功能测试阶段完成,功能测试计划中应包含数据移植的测试。
   3.4性能测试
  性能测试的目的主要是验证业务系统是否知足业务需求的多用户并发操做,是否知足业务性能需求,评估压力解除后的自恢复能力,测试系统性能极限。
  随着金融行业软件的规模愈来愈大、处理能力要求愈来愈高,进行性能测试成为金融软件测试中必不可少的一个环节。金融行业软件通常在投入使用时,须要接受大批量的业务,而且对于业务的响应处理时间也有很高的要求,这对于应用程序自己、操做系统、中心数据库服务器、中间件服务器以及网络设备的承受力都是一个严峻的考验。任一个环节的问题均可能给用户带来巨大的商业损失。所以,如何保证在压力状况下系统能正常运行是金融行业软件质量保证的关键,同时也是测试人员最需关注的重点。
  在性能测试过程当中,经过性能测试工具来模拟与真实环境接近的状况,如经过测试程序在同一时间内或某一段时间内,向系统发送预期数量的交易请求、测试系统在不一样压力状况下的效率,得到必定的参数(如:(如内存、CPU、缓存、系统响应时间、最大吞吐率、事务平均处理时间),以及系统能够承受的压力状况,进行针对性的测试与结果分析,找到影响系统性能的瓶颈,以便对系统进行优化。
   3.5安全性测试
  安全性测试的目的主要是评估业务系统在 网络安全、主机安全、应用安全、数据安全、运行维护安全、电子认证安全、业务连续性等方面的能力及管理措施,评价其业务系统的安全防控和安全管理水平。
  对于金融行业软件来讲,安全性有着重大的意思,尤为对于网络日益发达的今天,大量的金融类交易都是经过网络来实现,确保信息的安全,对安全性测试提出了更高的要求。如客户数据的安全、资金的安全;银行主机的安全,应用程序的安全以及网络安全,某一个环节出现问题都会给系统带来巨大的风险。安全性测试主要检查出软件存在的安全隐患,肯定安全等级,以期获得整改。
  一般用的安全性检查手段及检查点如:跨站攻击、弱点攻击、管理界面泄露、敏感信息泄露、跨站点请求伪造、恶意上传等。
  对于安全性测试来讲,通常须要专业的工具做为支持,由于,大多数的安全性测试都会交给具备必定资质的第三方评测机构来进行。
   3.6风险监控测试
  主要目的是评估业务系统的风险监控、预警和管理措施,测试其业务系统异常交易、大额交易、非法卡号交易、密码错误交易等风险的监测和防范能力以及系统资源占用的监控。
  对于银行的较大型系统来讲,通常都会专门开发对应的风险监控系统,一类风险监控主要是对系统的交易、资金、等状况进行监控;另外一类则是对主机资源状况进行监控,对于交易、资金类的风险监控测试时主要是根据风险监控需求来验证监控结果是否符合需求描述;对于系统资源类的测试主要关注被监控主机的资源占用状况是否合理。
  风险监控测试通常在功能测试阶段或性能测试阶段完成,功能测试或性能测试计划中应包含风险监控的测试。
   3.7文档审核
  目的主要是验证业务系统的用户文档、开发文档、管理文档等是否完整、有效、一致,是否符合相关标准并听从更新控制和配置管理的要求。
  文档审核最基本的原则是软件实现必须按照用户需求文档来进行设计和实现。对于需求文档审核来讲,文档必须覆盖用户全部需求点的描述;对于开发文档,如概要设计文档、数据库设计文档,设计和实现原则应根据需求而定;此外各种管理文档审核包括对项目工期的定义、项目人员的安排与任务分配、项目具体执行的定义等等。在实际应用中,因为用户需求存在常常性的变更已经增长,文档也会存在相应的变动,审核部分也包括对变动部份内容的审核。可是目前金融行业软件没有一个严格的规范来进行约束,所以,在文档审核和实际的开发、测试操做环节都不能获得真正的落实,对测试质量环节也形成了相应的影响。
  3.8自动化测试
  现阶段实施的 自动化测试与手工测试相比较,就是采用程序模拟手工测试的过程。在自动化测试过程当中,原来由手工控制的操做,如今由程序来控制,再也不进行手工干预[5]。自动化测试主要用于功能测试,测试过程包括脚本的录制、编写及回放。
   4金融行业软件测试工具分析
  金融行业软件测试与其它应用软件测试流程基本一致,测试过程也涉及到必定的测试工具的使用,如下是金融行业软件经常使用的软件测试工具:
   4.1黑盒测试工具
   黑盒测试工具较多应用的是自动化测试工具QARun、 QTP
  4.2性能测试工具
  经常使用于金融系统软件,适用于各类体系架构的自动负载测试工具 LoadRunner,它能预测系统行为并优化系统性能。
  对于性能测试来讲,不少状况下,商业化的软件不必定能知足性能测试的需求,所以不少时候,须要开发必定的性能测试软件来进行针对性的测试。
   4.3测试管理(测试流程管理、缺陷跟踪管理、测试用例管理)工具
  经常使用测试管理工具备:QC、TD、ClearQuest等,主要对测试计划、测试用例、测试实施进行管理,并进行缺陷跟踪管理。
  5金融软件测试模式分析
  在金融机构内部组织业务测试以前,软件必须通过完整的 系统测试、性能测试及安全性测试等才能交付金融机构的业务部门进行业务测试,测试模式能够有如下几种模式:
   5.1软件开发方进行的内部系统测试、性能测试和安全性测试
  开发方内部进行的测试与本文第三部分描述的软件测试方法与范围分析基本一致,下面主要就第三方测试的模式进行分析。
   5.2第三方测试机构进行的系统测试、性能测试和安全性测试
  5.2.1第三方测试的优势
  第三方测试是指由独立的软件评测机构,根据 项目管理方或用户的委托,对被测软件所进行的科学、公正、客观的综合测试及评测活动。在软件工程的整个流程中,用户对于软件的质量很是关注,但用户自己没有足够的能力对软件进行测量的评估,这时,就须要引入一个专业的评测机构,来对软件的质量进行客观的评测。第三方测试不一样于 软件开发方的内部测试或用户的业务测试,强调由独立于用户和开发方的软件评测机构来承担测试任务,其目的在于保证测试的公正性与客观性。第三方测试主要适用于对行业应用软件的测试及评估。基于以上第三方测试的优势及目前金融机构测试人员与金融系统测试需求的不平衡性,目前,在金融行业,专业评测机构的第三方测试已经显示出诸多的优点,并获得愈来愈多的应用,如在人行支付系统、商业银行的一些应用系统,都曾引入第三方测试,并得到了很好的效果。
  相对于内部测试来讲,第三方测试具体有如下几个优势:
  1)随着系统规模的日益庞大,软件开发方很难投入足够的人力、物力来参与测试工做。同时,开发方也缺少专业的测试工具以及经验丰富的测试人员;只有第三方机构才具备这样的实力来完成测试任务。
  2)第三方测试以合同的形式制约了测试方,保证了测试工做在一开始就具备客观性。
  3)第三方可以经过系统需求来理解整个系统,并从软件工程的角度把握系统,能专业、公正的评价系统中出现的问题。4)第三方机构的权威性能更好的协调第三方、用户以及开发方三者之间的关系。
  5.2.2第三方测试的应用
  第三方测试机构在测试技术方面通常具备行业内较为专业的测试技术以及较为领先的测试技术、对于被测试项目来讲具备技术测试层面的优越性。可是另外一方面,第三方测试的管理具备必定的复杂性,整个测试活动的实施,不但须要较强能力的软件测试人员,更须要获得用户及软件开发方的支持,才能确保测试人员对被测软件有较深的认识,确保软件测试的最终质量。
  此外第三方测试在整个测试活动中,须要判断开发方的软件是否知足用户的需求,提交最终的测试报告,对所测试软件给出公正、客观的评测结果。
   5.2.3第三方测试经常使用的测试工具
  不管做为内部测试或第三方测试,都必须采用一些自动化的测试工具来进行测试的管理和执行。经常使用的第三方测试的测试工具主要包含如下几类:
  1)测试管理工具
  如:TestDirector、QualityCenter、ClearQuest。
  2)性能测试工具
  如:LoadRunner及第三方本身开发的性能测试工具。
  3)自动化测试工具
  如:QARun、QTP
   5.2.4第三方测试目前存在问题及发展前景
  首先,第三方测试做为用户和开发方都放心的测试或评测机构,在客户需求日益增长的状况下,具备良好的发展前景。可是,第三方测试机构所提供的是测试服务,只涉及人工费用,在竞争压力比较大的环境下,价格战不可避免。
   6结束语
  本文针对金融行业软件的测试现状、测试方法及范围、测试工具、以及测试模式进行了分析,提出了适用于金融行业软件测试的具体方案及实用技术。但随着新的设计模式及开发方法的不断涌现,现有的测试理论及技术必须作出与之相对应的改进才能知足不断变化的用户需求。
相关文章
相关标签/搜索