在自动化功能测试方面,尤其要注意不要盲目地购买,然后仓促地、大范围地在系统功能测试中使用。因为自动化功能测试工具的优点在于通过可重用的脚本和模块,简化脚本创建和维护的工作,同时通过重放,在回归测试中将测试人员从重复性的单调操作中解放出来,使他们更加专注于缺陷修复和功能变更后的模块测试。由于自动化功能测试工具目前大多是通过录制生成脚本,如果以单独一次测试来和人工相比,往往不具有明显的优势。使用自动化功能测试工具能够提高投资回报率的关键在于,通过自动化功能测试工具测试生命力相对持久的系统。例如银行核心业务系统、信贷系统等,通过不断积累和完善该系统的功能测试脚本,可简化该系统变化相对不大的模块的功能测试。

  在选择功能测试工具时,需要考虑的主要指标是工具的简单易用性,因为实际经验来说,自动化功能测试工具往往由业务人员直接使用,如果操作简单,脚本可维护性好,结果报告清晰明了,那么会达到事半功倍的效果。

  总体上,第一阶段可以考虑优先购买和实施测试管理工具和自动化性能测试工具,同时可以考虑选择一到两个相对修改不会很大的系统来使用自动化功能测试工具录制功能脚本,进行自动化功能测试前期的积累。

  逐步建立质量管理体系

  如果前一阶段我们的目的是选择测试管理工具和测试工具,同时选择固定的人员,组建相对独立的测试队伍,实现知识共享和经验积累,那么第二阶段我们的目标是基于本企业内部的情况,制定出适合本企业的质量管理体系,全面控制和管理测试工作,加强功能和性能测试方面的自动化程度,将测试工作和测试团队纳入到整个企业的质量管理工作中,同时可以考虑在本阶段将设计、开发和测试集成起来协同工作。

  这一阶段我们应该充分发挥测试管理工具的开放性和集成性,一方面通过它实现与设计、开发、部署等过程良好集成,例如将设计需求快速转变为测试需求,通过测试管理工具管理单元测试等; 另一方面可以通过工具提供的功能或者二次开发,建立关键性能指标,从测试管理工具中提取数据,展现测试项目和测试工作的全面视图,例如缺陷的趋势图(每天新增加的缺陷和处理完毕的缺陷)、测试案例计划和执行分析图、测试项目总体进度图等,这样能通过完善系统质量的衡量指标,逐步建立起质量的评估体系来。

  在功能和性能测试方面,由于经过第一个阶段自动化功能测试的积累,已经具有很强的脚本编制和功能组件划分能力,因此可以逐步建立起自动化功能测试的框架,这样做的好处在于: 首先,可以大大简化后期脚本的维护和自动化功能测试的运行; 其次,可以利用框架,快速构建新的系统的自动化功能测试; 再次,可以充分利用业务人员对于业务的熟悉,让他们加入到自动化功能测试过程中来,便于他们使用自动化功能测试工具; 后,具有一个良好的框架,将来可以快速建立基于业务流程和数据驱动的测试方法,推动回归测试和冒烟测试。

  性能测试在这个阶段可以继续深入,一方面通过工具进行针对应用开发代码的性能诊断,协助开发人员发现和定位代码方法级别的性能瓶颈,另一方面要收集各种测试的结果数据,建立起性能和硬件配置的估算模型,充分保证在硬件投资上的合理支出,提高投资回报率。

  该阶段还需要加强的是设计、开发和部署时通过建模工具、配置工具、变更管理工具、运维监控工具、帮助开发人、测试人员和运维人员协同工作,高效率地完成应用系统的整个生命周期中关键环节的管理。由于中小型银行系统主要以外包为主,这里不做细致的阐述了。

  该阶段要注意的是,由于开发以外包为主,所以更需要加大测试方面的投入。因为完善的设计理念、先进的开发技术和方法论、良好的团队合作和项目管理,并不能保证开发出具有功能和性能的应用系统,更何况系统的参数配置对运行的性能影响同样巨大,因此功能和性能是否能够满足业务的需要,终还是要通过测试来检验。这好像一个人,虽然具有良好的家庭背景、教育环境、生长氛围,并不一定会成为一个的人才一样,是否有能力能够胜任工作,还是需要通过考试等测评方法来衡量他的综合素质才可以下结论。

  促使IT系统和业务目标的统一

  银行业IT系统的根本目标是提高生产效率,为银行业务的实现提供强有力的支持。因为银行IT系统本身并不会为银行带来经济收入,收入是依靠其支撑的业务运营来实现的,因此IT系统从设计的那天起,决定了其要为业务运行服务,要帮助达成业务目标。

  但是实际应用开发过程中,由于开发人员过于理想化、开发管理不善等各种问题和各种变化,往往导致终完成的系统与业务目标具有一定的偏离,这种偏离有时候是很大的,甚至可以称作鸿沟,而IT系统质量管理发展阶段的终目标是建立机制,消除这种鸿沟,使IT系统真正能够满足业务目标的需求。