金融业是指经营金融商品的特殊行业,它包括银行业、保险业、信托业、证券业和租赁业
往往涉及证券、银行、基金、信托、保险、投行、期货等领域
随着金融行业的业务不断增加,金融交易模式的不断变化,金融机构对信息化的要求也越来越高,高质量的金融软件对于金融机构来说显得尤为重要。如何保证金融行业软件的质量,对金融行业软件的测试人员来说,也提出了更高的要求
数据量大
数据量大,金融企业为顺应金融业务和信息技术相融合的大趋势,斥巨资将过去分散的、功能较弱的、以业务自动化处理为主的单一计算机系统改造为功能强大的集中式计算机应用系统。
复杂性高
金融行业具有不同的用户人群,比如个人用户、企业用户等,业务种类繁多,业务逻辑也非常复杂,对业务处理的实时性、准确性和安全性都有很高的要求,这些都需要复杂的技术才能实现,对于软件测试而言,业务的复杂性也增加了测试的复杂性。
安全要求高
金融行业的业务中直接涉及到钱,需要与不同的系统进行交互,也直接涉及到银行账户、个人征信等信息,所以在金融业务中,客户数据的安全、资金的安全显得尤为重要。
形式多样化
金融的表现形式多样化,当前互联网时代衍生出网络贷款、互联网保险等一些新型的金融产品,未来将会出现更多贴近生活、淡化金融特性的产品。在互联网盛行的时代,金融将以科技的形态出现,金融科技时代出现后,大数据、云计算、以及人工智能等新科技将从根本上改变当前金融行业的运作和体系,金融将不仅仅是一个行业,而是一直适应新时代的生活方式。
以下主要从功能测试、业务验证测试、客户端测试、接口测试、性能测试、安全性测试方面来简述金融行业软件的测试方法及范围
功能测试,主要是对软件的功能进行的验证,对于金融行业软件来说,功能测试主要进行以下功能的验证:
验证业务系统的功能是否正确实现,测试其业务处理的准确性。
1)业务流程测试
金融行业软件测试首先关注的是业务的正确性,业务流程要合理、业务处理正确无误,这些往往需要测试人员具备一定的金融软件测试经验,才能更好的判断业务流程设计是否合理,是否满足客户实际需求,以及业务流程处理过程中可能会涉及到的异常,通常通过正常案例和异常案例来验证业务流程的完整性和正确性。业务流程除了验证流程的正确性,通常对于涉及金额、资金、库存等数据及业务流程中生成的记录是否正确性也是测试的重点
2)账务处理
对于银行来说,账务处理为核心系统功能,也是这类软件测试的重点,账务处理不仅涉及到资金,还与交易过程相关,在测试系统对账时,必须对账务处理流程有清晰的认识,对于账务处理过程中账务是否处理正确、是否出现错账、是否需要进行调账等案例都要能进行完整的案例设计来覆盖测试点
3)清算
银行系统清算过程涉及的东西较多,如资金清算、库存清算、计费、计息、对账、登帐、报表生成等复杂的过程,同时涉及的数据量也是非常的大,对于大型系统来说更是如此数据检查的工作量也很大,同样测试人员需要对清算的全过程有清晰的了解
4)报表
对于银行系统来说,报表是直接呈现给用户最直接的结果,而对一个银行系统来说,报表的数量一般都较庞大,很可能涉及到几十张报表,因此对报表的检查也是测试的重点,这需要测试人员对银行系统涉及的业务非常熟悉,能判断报表的设计是否合理,报表数据是否正确等。
客户端主要针对的是软件界面功能的测试
1)系统管理类
系统管理主要包括系统参数管理、用户管理、角色管理、权限分配等,测试也包含相应的业务逻辑及页面测试,如查询功能的测试、显示风格、验证客户端页面显示数据是否正确等。
2)数据查询类
主要验证数据查询结果客户端显示是否正确。
3)其它涉及业务操作的功能界面
主要针对客户端界面的录入、查询等功能进行测试,客户端测试还会对界面的友好性、提示信息的合理性等进行测试
对于金融行业来说,经常有对接需求,以及各系统间互相调用等场景,本公司和合作方公司采用的数据库、通讯协议等都可能存在差异,并且在公司内也有业务系统、审批、风控等不同的系统,并且各个系统之间可能关联特别紧密,存在许多交互;因此,在测试中会涉及到相关系统接口的测试,这时通常需要构造对接系统的测试环境、数据 、业务等来模拟对接系统
性能测试的目的主要是验证业务系统是否满足业务需求的多用户并发操作,是否满足业务性能需求,评估压力解除后的自恢复能力,测试系统性能极限,随着金融行业软件的规模越来越大、处理能力要求越来越高,进行性能测试成为金融软件测试中必不可少的一个环节
安全性测试的目的是评估业务系统在网络安全、运用安全,数据安全、业务连续性等方面的能力,评估系统的安全管理水平,尤其对于网络日益发达的今天,大量的金融类交易都是通过网络来实现,确保信息的安全,对安全性测试提出了更高的要求
根据某项调查,金融企业应用系统的数量,中小银行应用系统数量普遍在100个左右,有一半银行超过100个应用系统;虽然保险行业应用系统数量相对较少,但大部分保险公司拥有10―50个应用系统;而且这些数量还有进一步上涨的趋势。调查数据也表明,金融行业IT部门的测试能力目前远远低于金融机构对测试的要求[3]。即使是IT成熟度比较高的企业,也难以覆盖所有应用系统的测试需求。金融企业的测试需要和信息科技部门的测试能力之间存在一定的差距
第三方测试是指由独立的软件评测机构,根据项目管理方或用户的委托,对被测软件所进行的科学、公正、客观的综合测试及评测活动。在软件工程的整个流程中,用户对于软件的质量非常关注,但用户本身没有足够的能力对软件进行测量的评估,这时,就需要引入一个专业的评测机构,来对软件的质量进行客观的评测
第三方测试不同于软件开发方的内部测试或用户的业务测试,强调由独立于用户和开发方的软件评测机构来承担测试任务,其目的在于保证测试的公正性与客观性。第三方测试主要适用于对行业应用软件的测试及评估。在金融行业,专业评测机构的第三方测试已经显示出诸多的优势,并得到越来越多的应用,如在人行支付系统、商业银行的一些应用系统,都曾引入第三方测试,并获得了很好的效果
相对于内部测试来说,第三方测试具体有以下几个优点
1)随着系统规模的日益庞大,软件开发方很难投入足够的人力、物力来参与测试工作。同时,开发方也缺乏专业的测试工具以及经验丰富的测试人员;只有第三方机构才具有这样的实力来完成测试任务
2)第三方测试以合同的形式制约了测试方,保证了测试工作在一开始就具有客观性
3)第三方能够通过系统需求来理解整个系统,并从软件工程的角度把握系统,能专业、公正的评价系统中出现的问题
4)第三方机构的权威性能更好的协调第三方、用户以及开发方三者之间的关系