文 / 华夏银行信息科技部 缪翔宇 荀竑 王志军
在金融行业数字化转型的背景下,华夏银行秉承“智慧金融、数字华夏”的战略愿景,持续提升软件研发质效。本文围绕华夏银行软件测试领域一体化平台的建设历程,从“增服务”和“强管理”两个角度探索企业级测试支持类系统的重构之路。
问题与挑战
华夏银行在大集中时代就已建设了用于测试支持的相关系统和工具,包括缺陷管理系统、用例管理系统以及辅助回归测试的自动化测试工具等。近几年,伴随华夏银行企业级集团化和敏捷研发体系的建设,既有的测试系统和工具已成为提升开发质效的短板,主要体现在以下几个方面。
一方面,由于测试需求、用例以及缺陷分别位于不同的独立系统内,无法实现有效的互联互通,制约对整个测试流程的全局管控。
另一方面,自动化测试工具、代码版本管理工具以及持续集成工具分散应用于开发测试的不同环节,无法对其进行统一的调度与管理,需求分析、用例设计与评审、缺陷分析等关键测试活动也缺乏相应的工具支持。
此外,考虑到“测试左移”与“测试自动化”是提升软件产品质量、缩短产品上市周期的主要途径,如何落地“测试左移”、如何实现“最恰当”的测试自动化也是当前银行测试领域面临的共同挑战。
探索与实践
围绕上述问题和挑战,华夏银行自主研发了集服务能力和管理能力于一体的“测试服务管理平台”。该平台的主要功能包括需求管理、用例管理、缺陷管理、执行管理、工具管理、评审管理、风险管理、资源管理(含测试数据、接口信息、测试知识库、测试环境)等,尤其是针对华夏银行的实际情况,对软件测试中的需求、用例及缺陷的传统管理方式进行了重构,对手工测试与自动化测试的驱动模式进行了改造,对测试过程支持工具进行了完善,最终走出了一条适合华夏银行特色的企业级软件测试管理与服务之路。
特色与亮点
1.软件测试三要素管理
软件测试的关键三要素就是测试需求、用例和缺陷。如图1所示。
图1 需求、用例及缺陷管理
首先是对测试需求的管理,该平台提供测试需求分析工具,辅助测试人员对自动同步过来的项目需求进行分析,创建和维护测试需求,并基于需求变更自动映射标注对应的测试用例及相关缺陷。
其次是对测试用例与缺陷的管理。该平台中的测试用例管理包括分析、设计、评审、准备数据以及执行等过程,每个过程都提供了相应的工具及服务。分析过程通过思维导图、需求分析矩阵等工具完成对测试需求的全面解析;设计过程充分利用历史资产用例库,实现资产复用,尽量避免重复造轮子;评审过程通过规则可配的评审工具完成辅助评审;数据准备过程通过智能测试数据池(可自动探查消耗性数据的剩余比例,实现数据的自动补充),实现测试数据的智能准备(规则化获取数据,永不失效);执行过程可根据标签匹配手工执行还是自动执行,执行成功会自动生成测试报告,如果执行失败,自动执行的测试用例会自动提交相应的缺陷进入缺陷管理模块,并同步通知相关干系人,对于手工执行的失败用例,该平台会辅助测试人员填充必要的缺陷信息,加快测试人员提交缺陷的效率。
2.测试及发版全流程联动管理
传统的持续集成生态包括发版、编译构建、部署以及冒烟测试,华夏银行通过测试服务管理平台对传统的持续集成生态进行了进一步的完善,将缺陷状态的变化融入其中。该平台中管理的缺陷与源码管理系统实时联动,开发人员修复完缺陷代码发版后,源码管理系统自动触发持续集成完成编译构建、制品部署,然后,平台中的缺陷状态会自动修改为待验证,同时触发平台中的测试任务(手工或自动),完成对缺陷的回归验证。
3.测试全流程风险管理
借助该平台,风险管理将贯穿测试项目的整个过程,支撑测试的左移,如图2所示。
图2 双轨开发模式
测试项目伴随开发项目同步启动,经历需求阶段、设计段、实现阶段、测试阶段及上线发布阶段,每个阶段都会进行风险的识别、分析、应对和控制。该平台支持人工与自动两种风险识别模式,对于进度、质量、流程、审计规则、评审规则等可以自动识别的风险,该平台将通过企业微信及邮件的形式及时提示相关干系人,对风险提前预警;而对测试人力资源、测试环境资源等由测试干系人主动发现的风险,对应的测试经理可以在该平台内进行登记、跟踪与升级处理,实现对风险全生命周期的掌控。
4.实现最“恰当的”自动化
(1)动态分层测试的支撑
在软件测试中,手工测试与自动化测试的占比该如何决策,一直是长期困扰测试业界的一个问题。结合该平台的投产应用,我们可以真正实现测试的左移,在需求阶段根据具体项目的实际情况制定后续各个阶段中自动与手工测试的策略,也就是说,在该平台中手工测试与自动化测试的占比不是一成不变的,是根据不同项目动态调整适应的,并且辅以相应的探索测试,如图3。
图3 动态分层测试模式
该平台通过专家判断和历史信息参照等方式确定某个功能点是应该手工测试还是自动化测试,判断的因子包括使用频度、是否有金融交易(转账、取款、查询)、历史缺陷、用户重要级别、用户范围、开发及测试人员的数量和技能水平、整个项目的时间限制、成本限制及质量限制等等。同时,每个项目的测试策略都会及时入库,保持积累与更新,为后续项目提供参考借鉴。
(2) 在手工测试中注入“自动”基因
理论上,软件测试主要分为单元、接口、WebUI、移动APP以及桌面应用等几种形式,每种形式的测试都包括手动测试和自动化测试两部分。在该平台中,不仅实现了不同形式测试用例的“归一化”设计,而且实现了测试用例“执行”的同台驱动。例如,对于B/S架构的应用,不论是手工测试还是自动化测试,测试用例都拥有一致的标准模板,执行时,如果是手工测试,测试用例会自动驱动对应的浏览器,打开相应页面,测试人员的后续操作会被同步记录在对应的测试用例内,这样就从技术上杜绝了测试用例与测试截图不匹配的情况发生。
另外,银行软件项目的特点就是复杂度高,往往一个项目要同时涉及多个子系统,如存款、贷款、银行卡、结算、综合前置等,因此,其测试报告要汇总统计多个子系统的测试用例、执行结果以及缺陷等相关信息,手工编写过程繁杂且费时。随着该平台的上线,测试报告可以依据标准模板自动生成,大大提高了测试报告编写的速度与质量。
建设实效
随着测试服务管理平台的上线应用,华夏银行软件测试服务能力和管理水平都有了大幅提升。
1.强化测试控制手段。通过规则配置的评审工具对测试用例开展正反例、边界值、等价类等强制校验,避免了人工疏漏。
2.提升测试节点效率。经对比分析,测试执行效率提升 20%,用例评审效率提高了 30%,缺陷处理效率提升 30%以上。
3.优化报告生成模式。通过该平台自动生成测试报告功能,将原来小时级手工编制测试报告的方式调整为分钟级系统自动生成,且报告更客观准确。
平台投产半年来,已留存2万余次测试用例评审记录,积累了近40万条测试用例和上万条测试缺陷,结合测试各环节的埋点数据,为测试过程多维度全方位的动态分析和风险度量提供了客观依据和有效支撑。
未来展望
按照华夏银行数字化、集团化转型发展的要求,测试服务管理平台也将从深度和广度两方面持续拓展,从线上化到信息化再到数字化,从支持具体软件项目的测试到实现全集团测试资产的整合与管理,并且逐步引进业界先进的测试模型和分析工具,为智能化软件测试服务和管理奠定坚实基础。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。