- 快捷搜索
- 全站搜索
数据中心作为银行信息系统运行、保障和处理的中心,是银行信息系统风险管控的核心。本文着重阐述在数据中心信息系统正式投产前,通过软件测试策略的研究和实践来提前发现软件缺陷,分析其原因并进行优化完善,从而提高软件产品的质量,保障信息系统的安全性、可靠性和稳定性。
长期以来,大型商业银行信息系统已经形成为构成庞大、关系复杂的综合性系统,为规避信息系统在使用过程中存在的问题和风险隐患,需要从源头上管控风险,覆盖信息系统软件开发全周期的全流程软件测试尤为重要。全流程软件测试对软件系统成果进行全程质量检验,力求发现其中的各种缺陷、各阶段的瑕疵,并进行监督修正,这是控制和保障信息系统质量的主要方法,也是确保其安全、可靠和稳定的重要手段。
一、测试方案的研究与建模
本文针对银行权限管理系统可靠性进行软件测试方案研究,以实现在规定的条件下针对权限管理系统开展全流程软件测试,旨在发现程序错误,评估软件质量,并对其是否满足设计要求进行评判。
在系统测试工作的整个流程中,软件测试方案是最核心的一个部分。软件测试方案要确认测试目标、范围和需求,然后制定测试策略,并对测试任务、时间、资源、成本和风险等进行估算或评估。
软件测试领域模型众多,应用比较广泛的模型如下。
(1)瀑布模型。该模型在测试的各个阶段逻辑较为清晰,强调早期的计划和需求调查,很适合对前期需求稳定的软件产品进行测试工作;但是因为该模型太过依赖早期的需求调查,不能灵活适应需求的变化,且存在流程单一、不可逆、风险往往拖延至后期才显露等缺陷,会使测试人员失去及早纠正产品Bug的机会。
(2)V模型。该模型从整体上看起来,貌似V字型的结构,由左右两条逻辑线组成,左边的下行逻辑线分别由需求分析、概要设计、详细设计、编码等逻辑节点组成。右边的上行逻辑线分别由单元测试、集成测试、系统测试与验收测试等逻辑节点构成。V模型明确地显示出测试过程中存在的时间先后关系,描述了这些测试阶段和开发阶段的对应关联;但缺点是测试与开发人员横向协调难度大,按着V字型逻辑流程执行的回溯时间成本太高。
(3)迭代模型、螺旋模型等,均有其优点,但也有局限性。
软件测试界著名的Pareto原理曾言“测试发现的80%的错误很可能是由程序中20%的模块造成的",如何尽快找出这些存在安全隐患的程序模块并进行测试尤为重要。鉴于大型商业银行权限管理系统对健壮性、安全性、兼容性、可扩展性的要求,以及对经典模型的归纳和创新,笔者研究出适合于此权限管理软件的全流程测试方案,为按步骤实施测试工作提供了蓝图依据和行动指南。本模型的设计以“测试对象先小后大、测试与开发互动并行和测试可及时回溯”为原则,符合此项目软件开发团队的编程习惯(模型示意如图1所示)。

本模型形如人右手的五根手指,在手心处汇聚又发散,分别代表测试与开发互补促进的过程,图中串联各个节点的逻辑线明确表示了测试与开发各节点横向、纵向的关系,即时间和空间逻辑上并行、先后的关联。
本模型关键点是,测试伴随着整个软件开发周期,而且测试的对象先从软件开发者设计的最小单元开始,空间逻辑上“自下而上",测试对象“先小后大”逐步完成集成测试、系统测试;形如“大拇指”的回归测试赋予全流程测试模型可反复回溯的特性,也有效解决了无法迭代开发的困扰;最终再实施验收测试,夯实此权限管理系统正式上线的基础。
此外,本模型也确保软件开发与测试步骤在时间逻辑上全程“横向”关联,同步进行,有利于尽早、全面地发现问题,降低回溯的时间成本。例如:权限管理软件的需求分析完成后,测试人员就已经参与到对需求文档的验证和确认活动中,以尽早地找出缺陷所在。同时,对需求的测试也有利于及时了解项目难度和测试风险,及早制定应对措施,显著减少总体测试时间,加快项目进度。
二、测试方案的实现与验证
研究并建立全流程测试模型后,如图l所示实施上述测试节点,空间逻辑上遵循“自下而上",测试对象上“先小后大”逐步完成单元测试、集成测试、系统测试;反复回溯执行回归测试,最终再实施验收测试。时间逻辑上全程“横向”关联软件开发各步骤,软件测试达到对软件开发全周期覆盖。按照全流程测试模型分步实施并验证各测试步骤如下。
1. 单元测试
为了测试权限管理系统的健壮性、安全性、兼容性、可扩展性,就此系统设计若干具体测试条件、测试数据及与之相关的测试规程等一系列实例,用以进行单元测试。测试对象是软件设计最小单元——模块或组件程序,如密码修改、密码保护、密码提取、密码重置、单点登录、权限释放、账号解锁、流程申请、流程审批、流程查询、绿色通道、日志审计、TSO登录时间显示、配置项的修改、系统参数调整、软件版本管理等。测试用例是有效地发现软件缺陷的测试执行单元。此外,还详尽给出测试目标、测试对象、测试环境要求、输入数据和操作步骤、输出标准(即所期望的输出结果)。确定测试用例后,再对各个单元模块进行测试,以确保在单元测试下,通过动态分析,授权用户的权限能合规使用《大型商业银行权限管理系统详细设计说明书》所详述的各项单元模块功能。
2. 集成测试
完成各单元测试后,按照系统全流程测试方案的规划,将已分别通过测试的单元按设计要求组合起来再进行测试,以检查单元之间的接口是否存在隐患。集成测试本质是逐渐加入已测试单元、采取“自底向上"的方案将已测试单元组装,再进行联合测试的持续过程。将所有已测试单元组合在一起,确保其构成完整系统,以确认在集成测试下,授权用户的权限能合规使用《大型商业银行权限管理系统概要设计说明书》所描述的账号规范化管理(集成单点登录、密码提取、权限释放、账号解锁),流程规范化管理(集成流程申请、流程审批、流程查询、绿色通道),密码管理策略(集成密码修改、密码保护、密码重置)、配置信息管理(集成日志审计、系统参数调整、软件版本管理)的功能。集成测试方案示意如图2所示。

3. 系统测试
在完成集成测试的基础上,需模拟权限管理软件投产后软、硬件状况,将其架设在CPU型号Intel i7四核、内存8 G、硬盘4 T及GTX970 4G显卡的硬件基础上, 投产于SUSE Linux Enterprisell and windows Server2008操作系统上,在以上环境里验证其是否满足系统级质量需求。系统测试主要包括功能测试、压力测试、健壮测试、容量测试和安全测试。以压力测试为例,需求规定此系统同一时刻处理的极限并发请求数为65 536,而权限管理系统初级版本在压力测试达到62 235时,发生的交易出现堵塞情况;当发压软件按设置发出最高请求数后,权限管理系统初级版崩溃、交易成功率大幅降低;将此情况作为软件缺陷并及时修改完善。最终确认在系统测试下,各极端情况授权用户的权限能顺利实现《大型商业银行权限管理系统规格说明书》各项系统级功能。
4. 回归测试
回归测试是在通过以上测试方案发觉系统问题,要求程序员修改旧程序代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有一定的工作量比重,在各个阶段笔者都会进行多次回归测试,有效解决了开发人员迭代开发跟不上测试进度的困扰。回归测试遵循以下过程。
(1)识别出修改的部分并标注。
(2)从原基线测试用例库T中,排除所有不再适用的测试用例,确定那些对经过修改的软件版本依然有效的测试用例,建立一个新的基线测试用例库TO。
(3)依据算法策略从T0中选择测试用例,并测试被修改的部分软件模块。
(4)循环,生成新的测试用例集T1,用来测试T0无法充分测试的软件模块。
(5)用Tl执行修改后的部分软件模块,然后再回溯至第(1)步,反复遍历,直到测试顺利完毕。
执行代码如下。
NunitTest{ /*定义回归测试函数*/
for(int T=0;T<=n;T++){/*建立测试用例库TO,再次测试时回溯累加*/
UnitTest(T) /*按测试用例测试被修改的软件代码*/
TestException(typeof(exception))/*测试发生异常,执行异常报错子函数*/
}}
TestException(s){ /*定义异常报错子函数*/
String s=ʺʺ
if(s!=ʺʺ)
throw new Exception();
}
在组织回归测试时需注意两点:一是各测试阶段可以允许多次修改,但一定要在验收测试之前完成回归测试,以免留下“尾巴”;二是回归测试期间应对该软件版本实施类似“冻结”的管理方法,将回归测试发现的问题集中修改,并及时反复回溯,再次执行回归测试。在实际工作中,笔者将回归测试与兼容性测试结合起来进行,发现了Adobe Flash P1ayer不同版本与权限管理系统视图的兼容性问题,可见在新的配置条件下运行旧版本的测试实例,可以发现兼容性问题,同时也可以揭示编码在修改后发生的新错误。
5. 验收测试
验收测试的目的是确认系统是否可以正式上线使用,该阶段应严格根据产品规格说明书进行检查测试,确认权限管理系统和《大型商业银行权限管理系统需求说明书》 (包括软件开发的技术合同) 的一致性,同时兼顾实际服务器型号Lenvo Y900(CPU型号Intel i7四核、内存8 G、硬盘4 T及GTX970 4G显卡),浏览器版本IE7或其以上版本和用户习惯等。
正如《商业银行信息科技风险管理指引》中所述:商业银行权限管理系统需确保给予不同人合理匹配的用户授权,做到职责分明,用户管理落实到位。本文研究的用户权限管理系统全流程软件测试,为大型商业银行的权限管理软件达到上述风险管理标准提供了测试方案与案例,为互联网金融运维核心——商业银行数据中心的系统运行与风险防控提供了上线依据,有效解决了用户权限在管理和使用过程中出现的问题,使用户权限、行为可记录,可审计,增强了安全管理水平并缓解IT风控管理压力。
(文章来源:《中国金融电脑》杂志)
目前Hadoop/HBase广泛应用于各类具有大数据需求的企业,尤其是互联网企业,
工商银行启动业务集中处理改革,研发了具有自主知识产权的业务集中处理平台