APP下载

邮政储蓄银行信息系统开发项目质量管理的分析与研究

2013-10-20张媛媛

河南科技 2013年17期
关键词:代码文档测试

王 刚 张媛媛 何 刚

(陕西省汉中市邮政局,陕西 汉中 723000)

邮政储蓄银行是不同于一般工商企业的特殊企业,其特殊性表现为经营对象的差异。工商企业经营的是具有一定使用价值的商品,而邮政储蓄银行经营的是特殊商品-货币,邮政储蓄银行是特殊的企业,即金融企业。邮政储蓄银行信息系统的开发应严格遵循软件工程的原则,成立项目组织,强化项目质量管理,运用系统理论和方法,制定项目实施计划,对人员进行组织分工,按照计划进度、质量管理、风险管理、成本管理的要求进行系统开发,并确保实现预期的目标[1]。

1 项目的目标和原则

1.1 项目管理目标

邮政储蓄银行信息系统应以客户服务为中心,以产品管理平台为框架,采用先进的设计思想和体系结构,建设支持本外币储蓄、汇兑等业务集中处理,支持24小时全天候服务,具有高性能、高可用性和高伸缩度的业务信息系统。能够满足业务未来邮政储蓄银行业务拓展的需求,并且通过系统良好的可扩展性和便捷的维护手段,有效支撑银行业务战略目标的实现。

1.2 项目管理原则

项目质量管理的重点是质量策划、质量保证、质量控制。信息系统开发的质量管理有四个核心特征:项目组成员全体参加、全过程、全面方法、全面结果的管理,采用量化方式分析流程中影响质量的因素。

(1)先进性:充分考虑IT技术的发展趋势,分析和研究新的技术,引进成熟稳定的新技术。系统整体技术方案应采用先进的体系架构,符合信息技术的发展趋势和邮政储蓄银行IT总体规划要求。系统采用的技术应符合国际、国内标准的软硬件技术规范。

(2)安全可靠性:应用系统必须建立在成熟稳定的硬件环境和应用软件基础上,通过完善的备份恢复策略、安全控制机制、可靠的运行管理监控和故障处理手段来保障系统的稳定、安全运行。

(3)可扩展性:系统建设时应在硬件的配置和软件的设计上具有可扩展性,能为今后的相关业务预留接口并提供扩展基础。系统作为邮政金融系统的基础平台,应充分考虑和其他系统互联互通的便捷性。

(4)前瞻性:在项目建设的工作中,既要充分考虑未来业务发展和管理需要,方便新业务和新需求的扩展和支持;又要充分考虑软件体系结构与IT规划中其他平台和系统有效衔接,满足未来邮政储蓄银行业务发展的需要。

(5)可维护性:系统的可维护性将决定系统的运行成本,系统应具备方便灵活的维护管理手段。在设计中应充分考虑系统的运行监控,提供方便灵活的管理手段和工具。

(6)经济性:系统建设如是更新升级,就要充分考虑利用现有信息系统的通信平台、硬件资源、软件资源和网络资源等,保护已有投资。

2 软件实现项目质量管理

信息系统项目的生命周期可分为三个阶段[2],如图1所示。

图1 项目生命周期质量目标及活动

2.1 关键质量活动

储蓄银行金融信息系统是企业的核心业务系统,需要特别关注以下关键的质量活动:

表1 关键质量活动表

2.2 软件开发

金融系统软件开发综合瀑布型和V型生命周期测试模型的优点,将测试活动贯穿整个软件开发生命周期,避免系统风险,提升项目软件的整体质量,如图2和图3所示。

2.2.1 需求分析及设计阶段

质量目标:提升需求分析和设计阶段的各种文档的质量,尽可能在需求和设计阶段规避风险,降低因缺陷遗留到项目后期而产生的高昂代价。

质量活动:需求分析评审参与方主要包括相关业务部门代表、相关技术部门代表、应用开发商代表和相关厂商代表。(1)评审检查关键内容,需求文档中的每一个需求功能点。(2)评判需求质量的主要指标包括,正确性、清晰性、无二义性、一致性、完整性、可实现性、可验证性。

设计评审:(1)评审参与方主要是相关业务部门代表、相关技术部门代表、应用开发商代表和相关厂商代表。(2)评审检查关键内容,设计文档中系统设计是否能够满足需求。(3)评判需求质量的主要指标包括需求符合度、功能点覆盖率、系统可扩展性、可靠性、可维护性、安全性、容错性等。

文档管理:(1)文档管理的目标,在本阶段的目标是文档的完整性、一致性、可控性,使文档最大程度地与业务需求相吻合,为后续的开发提供参考依据。(2)文档管理的主要内容:通过文档的变更控制,记录和追踪文档的修改过程,从而实现对整个阶段文档的管理。

问题管理:(1)问题管理的目的,使评审过程中产生的所有问题都得到相应的解决,避免因问题堆积对日后的工程建设产生影响。(2)问题管理的主要内容:对评审过程中出现的一系列问题进行全面的记录,认真分析评审中提出的问题及改进建议,提醒相关人员制定纠正措施并负责落实。

2.2.2 开发测试阶段

为确保该阶段的项目质量和工作效率,软件开发与测试阶段组织结构如图4所示。(1)系统项目领导小组:由参与工程的各方领导组成,对项目的重大事件进行决策并对项目全过程进行监督及协调。(2)统项目组:负责整个项目的实施,组织、协调并监督各工程小组的工作情况及进度,对项目领导小组负责,对具体方案具有决定权。(3)专家顾问组:提供对系统规划、系统分析和技术咨询服务。(4)量控制组:直接对软件开发项目组负责,对应用程序设计开发及测试过程、内容、结果等各种项目质量要素进行过程控制和阶段复审,具有质量否决权。(5)业务需求组:负责制定逻辑集中项目的业务需求,并对业务需求的内容变更负责。(6)总体组:由相关的技术专家组成,负责系统项目所包含的所有系统的需求分析、系统设计、技术管理、组织与项目开发有关的技术培训以及对开发小组的协调等工作。(7)开发小组:按照设计文档的要求,完成系统项目各子系统的编码工作并产生相关的开发文档。(8)关联系统组:负责与关联系统的协调,负责制定相应的接口规范。(9)系统组:负责设备到货,主机、网络设备、系统软件的集成、集成环境的测试、软件的安装和性能调试。(10)测试组:严格按照业务需求及相关文件,编写测试计划和测试案例,完成系统的功能测试、性能测试以及联调测试,测试结束后,提交测试报告,并完成修改后的再测试。(11)文档管理组:负责在整个项目过程中的所有文档、资料、技术报告、软件介质的汇总管理,监督和跟踪其他项目小组提交的文档。(12)后勤组:负责合同管理、材料管理、安全保证、后勤保障和其他部门的各种协调工作[3]。

图4 软件开发与测试阶段组织结构图

质量目标主要是代码质量:提升应用系统代码开发的整体质量,尽量规避由代码质量导致的功能和性能风险。

代码走查的质量活动:(1)质量活动目标:初步筛查代码中的明显缺陷。(2)通过开发人员相互走查对方代码,发现开发人员自身容易忽略的一些代码问题,并及时修改。

单元测试:(1)质量活动目标,提高代码整体质量。(2)对应用系统开发过程中,所有的代码、函数和方法进行细粒度的单元测试,尽早发现各种代码级缺陷,并在开发阶段进行修改。

代码检查:(1)质量活动目标,提高进入集成测试前代码的质量。(2)对应用开发代码进行自动快速的粗粒度检测,大规模的筛查代码中的高风险部分,对高优先级和高风险的代码进行统一修改。

集成测试:(1)质量活动目标,提高应用系统接口质量。(2)针对应用系统与外围系统,以及应用系统内部各模块之间接口进行测试,验证各接口的有效性和连通性。

功能测试:(1)质量活动目标是提高应用系统的功能性质量,尽可能全面的覆盖需求功能点。(2)以需求为目标,设计测试案例,验证所有需求中的功能点,确保所有功能都满足需求。

配置管理:(1)配置管理的目的,本阶段主要对代码进行收集管理,使所有工作成果具有完整性、可跟踪性与可追溯性。(2)配置管理的主要内容,由于代码是在测试驱动下不断变化,为了保证对代码有效地进行控制和追踪,配置管理过程不能仅仅对静态的、成形的代码进行管理,而必须对动态的、成长的代码进行管理,它通过控制、记录、追踪对代码的修改和每个修改生成的新的组成部件来实现对代码的管理[4]。

缺陷管理:(1)缺陷管理的目标,对各个阶段的测试发现的缺陷进行跟踪管理,进一步提高代码质量,确保系统的稳定与安全,降低因遗留缺陷产生的风险。(2)缺陷管理的主要内容,在测试过程中对发现的缺陷和bug进行记录、跟踪,使每一个缺陷得到及时的处理。

2.3 软件开发过程改进

软件开发项目质量管理的主要方法是利用成熟度模型,即软件能力成熟度模型,简称CMM(Capability Maturity Mode for Software)。CMM模型包括软件工程、系统工程、硬件工程,分为五个等级,每个等级包含相应的过程域,如图5所示。

图5 CMM的成熟等级结构

该模型包含了软件需求、设计、开发、编码、测试、投入运行、软件退役等整个生命周期里各个过程的基本要素,是开发过程改进的有机汇集,此模型对保证开发质量、控制项目时间、降低开发成本具有重要指导意义。

3 工程实施推广阶段质量管理

3.1 上线准备

3.1.1 质量目标:(1)系统业务功能,验证应用系统各业务功能及业务流程满足业务部门的需求。(2)系统性能,验证和优化逻辑集中系统性能,使之能够满足性能需求。(3)系统健壮性及安全性,验证逻辑集中系统的健壮性、安全性,使其能够满足生产运维的要求。

3.1.2 质量活动:(1)业务测试,验证应用系统的业务功能是否满足业务需求。(2)全面分析业务测试用例,选取覆盖业务的测试流程,由业务人员针对所有的需求功能点和业务流程进行验证。并通过专业的测试管理工具对测试用例及测试缺陷进行跟踪管理。

3.1.3 技术测试:(1)性能测试及优化,目标是提高系统的性能质量。(2)通过工具模拟真实系统上线后可能出现的业务高峰情况,对系统进行压力测试,验证系统性能,确保系统处理能力能够达到相关性能指标。(3)健壮性测试目标,提高系统整体健壮性。(4)通过各种健壮性测试,验证系统在发生各种异常情况下的健壮性,主要包括:异常测试、稳定性测试、双机切换测试及容灾测试等。(5)安全测试目标,提高系统的安全性,通过工具进行安全测试,全面检查和消除系统的安全隐患。

3.1.4 配置管理:(1)配置管理的目标,为系统上线建立一套稳定的系统版本,并为运维阶段建立版本基线。(2)配置管理的主要内容,使所有工作成果具有完整性和可跟踪性,随着每一个阶段的测试进行,要对不断修改的产品进行版本管理与变更管理。

3.1.5 缺陷管理:(1)缺陷管理的目标,使每个阶段发现的缺陷得以追踪并改正,保证系统上线顺利完成。(2)缺陷管理的主要内容,记录、处理、追踪在测试过程中发现的缺陷及问题,使系统上线的版本可用、完整和稳定。

3.2 推广阶段管理

3.2.1 版本质量:提升应用系统各上线版本的质量,通过自动化回归测试,快速验证应用系统版本在功能和性能上是否满足上线要求。

3.2.2 质量活动:(1)功能回归测试;(2)性能回归测试;(3)绿灯测试,质量活动目标是对系统上线后的版本进行检验,验证关键业务和流程在系统上线后的可用性和正确性。选取关键、典型的业务及流程,通过应用开发绿灯测试程序部署在生产环境上,在生产系统进行版本更新后,使用绿灯测试程序将选取出的关键、典型业务及流程在生产系统上进行验证,尽量确保在版本更新后不会对生产的关键业务和流程造成影响[5]。

3.2.3 版本管理:(1)版本管理的目标:确保各推广版本的质量,促进工程推广的顺利进行。(2)版本管理的主要内容:经过系统上线之后,对系统使用过程中发现的问题进行升级活动,升级后要将新旧版本进行区分,避免对老版本的覆盖,同时要进行版本更新的记录。

3.2.4 问题管理:(1)问题管理的目标:对试点中发现的问题进行处理以使工程推广的顺利进行,并确保生产系统的正常运营。(2)问题管理的主要内容是及时记录和处理已上线生产系统产生的问题,分析问题并与版本管理相结合最终确定工程推广的应用版本。

3.3 运行维护阶段

3.3.1 质量目标

生产系统版本质量:尽可能降低运维阶段应用版本、系统软件版本、硬件系统等变更和升级所带来的风险,最大限度减少对生产系统的运行质量造成负面影响。

生产系统运维质量:尽可能提高生产系统的高可用性,最大限度保证系统的稳定和安全运行。

3.3.2 质量活动

功能回归测试:(1)目标是快速检验运维阶段相关系统及应用版本升级对业务功能质量的影响。(2)应用及系统版本更新在运维阶段非常频繁,每一次版本的更新都需要对业务功能进行验证,所以需要使用自动化回归测试工具进行高效率的功能性测试,提高版本升级的质量。

性能回归测试:(1)目标是快速检验运行维护阶段各系统升级或变更后整个逻辑集中系统的性能质量。(2)在运行维护阶段,经常会面临应用系统、主机操作系统、中间件和数据库等系统的版本升级,这对于系统的性能是一个巨大的潜在风险,因此需要进行高效率的性能自动化回归测试,通过工具快速检测各种因系统版本变化和升级对于逻辑集中系统性能的影响,尽可能降低性能问题被带入生产系统的机率。

绿灯测试:(1)目标是对系统升级后的版本进行检验,验证关键业务和流程在系统上线后的可用性和正确性。(1)选取关键、典型的业务及流程,通过应用开发绿灯测试程序部署在生产环境上,在生产系统进行版本更新后,使用绿灯测试程序将选取出的关键、典型业务及流程在生产系统上进行验证,尽量确保在版本更新后不会对生产的关键业务和流程造成影响。

事件管理:(1)目标是实现运维事件的快速发现及处理。(2)内容是建立统一的故障处理及服务请求响应平台,对整个系统进行集中的运维管理。通过这个统一的平台,可以对事件及服务请求进行统一的记录、处理及响应,同时可以对请求进行分析,对运行状态进行分析与管理。

系统配置管理:(1)目标是提供IT基础架构精确信息;同时监控和维护这些信息从而实现对基础架构的控制。(2)建立系统的配置数据库和对配置数据库的维护流程与监控机制。

应用版本发布管理:(1)目标是对于应用版本的发布的内容及质量进行管理,实现对版本的质量的控制(2)内容是制定版本管理办法,明确版本发布的流程,对于需要更新生产环境的版本,都需要经过有效的版本验证、操作步骤验证及回退性验证。

变更管理:(1)目标是通过对于生产环境变更的有效管理,从而最大程度上提高生产环境变更的成功率。(2)对变更内容进行分级,对于重大变更建立变更的评估机制,建立完善的变更实施计划,对变更的实施结果进行回顾。

4 结束语

通过确定项目生命周期质量目标及活动目标,分析了关键质量管理的方法,在软件开发阶段,综合瀑布型和V型生命周期测试模型的优点,按照CMM的成熟等级,提出了开发与测试组织结构,明确了项目质量管理的主要内容。在系统推广阶段更需要加强组织领导,成立金融信息化建设领导小组,应设立协调小组、业务支持组、技术支持组、培训组等,为实现系统的目标提供有力保障。

[1]安红昌.信息系统项目管理研究[J].计算机工程与设计,2005,26(3):619-622

[2]于丹.信息系统项目的质量管理方法[J].网络与信息,2012,26(9):15-16

[3]刘晓英,郭威兵.信息系统项目的质量管理[J].电子商务,2012(5):63-64

[4]牛立新.企业信息系统项目管理分析[J].河南教育学院学报,2010,19(3):43-45

[5]周安俊,杜宏.复杂信息系统项目质量管理方法研究[J].项目管理技术,2012,10(12):107-111

猜你喜欢

代码文档测试
浅谈Matlab与Word文档的应用接口
有人一声不吭向你扔了个文档
幽默大测试
“摄问”测试
“摄问”测试
“摄问”测试
创世代码
创世代码
创世代码
创世代码