金融行业各类软件系统由于应用领域、交易的重要程度、应用人群各有不同,可能存在的安全隐患和质量上的风险也不尽相同,为了深入分析各类软件系统的特点,我们尝试从用户性质(行内、行外)、交易笔数、单笔交易金额、交易的复杂度(如币种多、客户等级多、交易种类多、交易价格浮动、实时牌价、政策约束条件多、交易的动作数)、实时程度(实时,T+0,T+I,T+2,批量等多个层次)、是否和行外系统相连接等六个维度对金融企业现有的软件应用系统进行风险分析,从更为客观全面的角度来综合考量各种金融软件系统可能存在的风险级别,然后根据ISO/IEC9126对6个软件特性、21个子特性的要求,分析和比较各类常见金融软件系统需要重点测试的软件特性,提出有针对性的测试策略和思路,才能在有限的资源和时间条件下,大限度地做好软件测试工作,提高各类金融软件系统的质量,达到控制风险、规避风险的终目的。
金融软件系统的风险分析
1、用户性质,用户性质从大的层次可以分为行内、行外两类。应用于行内各级管理、业务人员的软件系统一般有人事、财务、党务、培训等内部经营管理类软件系统。相对于服务于行外用户的金融软件系统来说,经营管理软件系统可能造成的风险不大,对软件质量性能和功能的要求不高。对于行外的用户群体来说,又存在优质客户和非优质客户的等级划分问题,关键是服务于优质客户的软件系统的相应软件质量要求较高。
2、交易笔数,交易笔数一般可采纳日交易笔数和峰值并发交易笔数两个数据,交易笔数决定了金融软件系统需要承担的并发压力,以及软件失效可能造成的影响面大小。对于交易笔数较大的金融软件系统需要进行并发压力测试,对软件质量的要求也更高。
3、单笔交易金额,单笔交易金额的大小,决定了金融软件系统失效可能承担的资金风险。单笔交易金额越大的系统,对软件质量要求越高。
4、交易的复杂度,交易的复杂度可以通过分析交易要素的复杂程度来界定,对于一笔金融交易业务来说,一般可以从币种数量、客户等级数、交易种类数、交易价格变动程度、相关的政策和业务规则、交易的动作数(完成一笔交易需要执行的动作数)等方面来界定。例如, 国际业务的交易复杂度较高,常规存取款的金融交易复杂度较低。金融交易复杂度越高的系统对软件质量要求越高。
5、实时程度,交易的实时程度可以分为实时,T+0,T+I,T+2,批量等多个层次。不同层次的实时程度决定了软件系统的不同复杂度以及软件失效可能造成的不同影响面。实时金融交易系统对软件质量要求高。批量的金融交易系统对软件质量要求低。
6、是否和行外系统相连接,如果一个应用系统不和行外系统相连接,相对应的资金和交易风险较低,对软件质量的要求也较低。通过上述6个维度的风险分析,我们可以客观全面地获得各类金融软件系统可能存在的资金和安全上的风险,提出不同级别的软件质量要求,下面我们依据ISO/IEC9126对软件的外部和内部质量提出的6个软件特性和21个子特性,分析常见的各类金融软件系统,获得不同优先级别的软件测试特性,给出有针对性的软件测试策略和思路,为我们开展软件测试工作和分配各种资源提供更有价值的决策参考依据。
ISO/IEC9126将软件的外部和内部质量分为6个软件特性,细化为21个子特性,具体是功能性(适合性、准确性、互操作性/互用性、依从性、安全性)、可靠性(成熟性、容错性、易恢复性)、易用性(易理解性、易学性、易操作性)、效率(时间特性、资源特性)、维护性(易分析性、易改变性、稳定性、易测试性)、可移植性(适应性、易安装性、遵循性、易替换性)。
常见金融软件系统的测试特性分析根据应用领域的不同,现有金融行业的软件系统一般可以分为经营管理类、金融业务类、统计分析类等。金融管理类软件系统主要提供各类金融业务的实时或批量服务,也是我们一般理解的生产业务系统。统计分析类软件系统主要通过对生产经营数据进行采集、统计、分析,为金融决策提供参考依据。经营管理类软件主要为企业管理的各个方面提供服务,例如,人事、财务、培训、党务、办公等。
1.经营管理类软件系统,经营管理类软件一般有财务、人事、党务、培训等
各类软件系统。这些系统基本上由单位内经营管理人员使用,业务量不大,系统压力较小,并且一般在内网使用,系统安全性较高,对软件的易用性要求较高。优先级别高的测试特性是功能的准确性,优先级别次高的测试特性是易用性。
2.统计分析类系统,统计分析类软件系统通过对金融企业的各项经营数据进行采集、分析,为金融业务决策提供依据。其主要特点有大批量的交易数据采集、统计分析,生成大量的统计报表。在功能准确性的基础上,对于报表的准确性要求较高,优先级别高的测试特性是功能的准确性,优先级别次高的测试特性是报表数据的准确性。同时由于进行大数据量的处理,需要对批量数据处理进行时间特性和资源特性的分析。
3.新兴业务实时交易系统,下面我们以两个常见的新兴业务实时交易系统为例进行分析。
(1)个人网上银行系统。通过对该软件系统上述6个维度的分析,个人网上银行系统的用户性质、交易笔数、实时程度等三个维度均对软件质量的要求较高,软件失效造成的影响面较大,系统峰值压力较大,系统存在的资金交易风险较高,优先级别高的测试特性是功能的安全性、效率、准确性,优先级别次高的测试特性是功能的成熟性。
(2)国际业务系统。通过对该软件系统上述6个维度的风险分析,国际业务系统的用户性质、单笔交易金额、交易的复杂度、实时程度、是否和行外系统相连接等5个维度均对软件质量的要求较高,软件系统存在的资金交易风险较高,优先级别高的测试特性是软件功能的准确性,优先级别次高的测试特性是软件功能的安全性、容错性、成熟性、依从性。
4.传统金融交易实时系统,传统金融交易实时系统由于开发和使用的时间一般都较长,业务需求稳定,系统的成熟度较高,稳定性较好。
优先级别高的测试特性是功能的准确性,优先级别次高的测试特性是安全性、容错性、成熟性。因此,笔者建议采用软件自动化测试较为适宜。