云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

实战 | 精准测试在商业银行的研究与实践

jxf315 2025-01-24 12:20:58 教程文章 28 ℃



精准测试提出背景

1.业务快速发展的要求。随着银行业务的快速发展,测试人员面临的测试任务越来越多,如何在有限的测试资源条件下应对日益增长的测试需求并高质量地开展测试是当前银行测试工作面临的主要问题之一。精准测试创新测试理念及技术手段,深入系统代码层级,更加有针对性地聚焦测试范围,提高测试过程的可追溯性和透明度,整体性提高测试工作效率和质量,将“好钢用在刀刃上”,为解决上述问题提供了新的思路和方案。

2.落实监管要求的体现。信息系统质量历来是内外部监管的重点,也是各家商业银行关注的焦点。多年来的实践证明,测试工作在降低信息系统质量风险方面起到了举足轻重的作用。精准测试通过创新测试技术提升信息系统质量,降低系统投产风险,是落实监管要求的直接体现。

3.银行系统特性的选择。商业银行信息系统具有规模庞大、数量繁多、系统关联性强、承载业务复杂、交易量高、需求变化快等特点。此外,还存在各种新旧系统的错综交互,使得针对信息系统的测试分析设计难度变得异常复杂。单纯依靠人工分析已无法满足要求,如何通过技术手段使测试分析设计更有效,测试流程可追溯,测试结论高可信,精准测试带来了较好的解决思路。

4.测试过程改进的需要。随着研发迭代频次加快,用于测试分析的时间越来越短,短时间内准确划定变更范围以及分析变更关联影响范围的难度越来越大。测试范围划定过小,容易遗漏;测试范围划定过大,需投入大量资源且时间不允许。如何更加准确地划定测试范围,更有针对性地设计测试案例,确保测试覆盖的有效性?精准测试正是不断总结测试工作中的痛点难点,革新测试理念,优化资源配置,改进测试技术,长期致力于提高测试工作效率和质量的结果。另外,通过技术创新来提高测试工作质量一直都是测试人员追求的目标之一,也是测试能力的重要体现。

相关技术发展现状

软件测试技术大体可划分为黑盒测试和白盒测试两类。目前,银行信息系统测试工作中,黑盒测试占较大比例,测试人员根据业务需求,分析设计并执行大量的测试案例来降低信息系统质量风险。这种方法资源投入大,实施时间长,越来越难适应信息系统高频次投产的要求。另外,黑盒测试方法总体比较依赖于测试人员的业务知识储备和测试经验,甚至还与测试人员临场工作状态有关。黑盒测试一般也不关注底层代码实现,系统之间的代码调用关系错综复杂,如果仅开展黑盒测试,则存在测试覆盖不充分的可能。

白盒测试一般应用在单元测试阶段,能够从源代码层面对系统质量开展分析,相比黑盒测试方法,对测试人员技能要求高,实施投入大,在实际工作中的开展比例相对较少。

精准测试不同于黑盒测试和白盒测试的划分,而是综合运用多种技术手段,建立业务功能与代码逻辑之间的映射关系、明确代码变更及其关联影响范围,形成一个闭环运作体系,从而让测试内容更聚焦,测试分析更有效,测试流程可追溯,测试结果更可信。在实际工作中,精准测试与黑盒测试和白盒测试不冲突,而是相互协作,共同提高信息系统质量。

浦发银行精准测试实践

针对上述银行信息系统测试工作中遇到的问题,浦发银行信息科技部测试中心在2019年正式启动精准测试的研究与实践工作,逐步形成了精准测试的定义,明确了精准测试的构成,理顺了精准测试的实施模式,并在部分项目中试点应用。

1.精准测试的定义。精准测试目前在业界尚无标准定义,结合浦发银行具体实践,本文认为精准测试是一种测试模式,主要是综合运用管理手段和技术手段,打通并同时衔接源代码和业务逻辑两个层面,精准确定测试范围,提高测试案例设计的针对性和有效性,精准衡量测试执行结果,确保所投即所测,突出测试过程的“可追溯、可量化、透明化”,更有效地发现程序深层隐藏的缺陷,在相对有限的测试资源投入下实现更高的信息系统质量。

2.精准测试的构成。精准测试各部分不是孤立的存在,而是具有系统性,总体来看包括管理和技术两个维度(见图1)。

从管理维度看,精准测试有如下四个特征:

(1)精准测试是一套闭环的运作体系。精准测试覆盖从测试范围确定、测试案例设计、测试执行、测试结果分析、测试版本一致性比对等整个过程。

(2)精准测试是覆盖全生命周期的测试活动。精准测试不局限于系统测试、UAT测试,还包括代码扫描、单元测试、集成测试等阶段。

(3)精准测试是基于风险的测试实践活动。基于风险的测试理念与精准测试理念不谋而合。基于风险的测试对测试内容进行分级分类,按照风险高低和重要性确定测试任务优先级。通过精准测试,可以辅助判断哪些功能点是高风险的或重要的,进而优先开展相应测试。

(4)精准测试的过程是可追溯和可管理的。精准测试对测试过程的活动进行监控,得到精准的量化数据,并对量化数据进行质量评价,进而改进测试过程,形成度量级分析闭环。精准测试过程所有数据由系统自动采集,并用于测试的过程管理和优化改进。

从技术维度看,精准测试包括如下三项关键技术:

(1)测试案例与代码双向追溯技术。通过记录测试案例对应的代码逻辑,实现测试案例到代码块的精准记录和双向追溯。通过正向追溯(测试案例到代码),可以实时跟踪案例执行的代码细节,以便于统计代码分支覆盖率,也便于快速定位缺陷原因,提高缺陷修复效率。通过逆向追溯(代码到测试案例),根据修改的源代码快速确定测试案例的影响范围,减少回归测试案例分析选取的工作量,达到测试覆盖率最大化。基于双向追溯技术,再结合业务功能与测试案例的跟踪关系,最终还可以建立业务功能与代码逻辑实现的映射关系,为测试范围的自动推荐、回归案例的自动选取等奠定了技术基础。

(2)代码级变更关联影响分析技术。该技术一方面可分析代码的变更内容;另一方面将代码之间复杂的关联调用关系层次化、清晰化,最终将代码的变更内容及其关联影响范围“可视化”,可降低因变更关联影响分析不充分导致的生产风险。该技术也是测试范围自动推荐、回归测试案例自动选取的基础技术之一。

(3)版本一致性比对技术。采用反编译技术对两组目标代码进行源码层面的比对,分析出两者间的差异,用于守住投产底线,解决所投非所测的问题,防范投产风险。

3.精准测试实施过程。测试中心通过不断摸索,逐步建立了精准测试闭环运作流程,覆盖开发、测试分析设计、测试执行、测试结果分析及上线准备等5个阶段(见图2),以期为开发测试人员提供“先进武器”,切实降低商业银行信息系统质量风险。

在早期开发阶段,实施源代码扫描,通过区分红线、黄线和白线规则,对源代码违规项进行分级。原则上触碰红线规则的代码违规项不得投产,同时,发布代码质量指数,精准监控代码质量。

在测试分析设计阶段,开展测试范围自动推荐。基于代码变更内容,自动识别代码变更关联的影响范围,进而利用代码与业务功能的映射关系,为测试人员推荐需要测试的业务功能点以及相应测试案例。一方面减少漏测的风险,另一方面针对未发生变更的内容可以减少不必要的测试。

在测试执行阶段,基于测试案例和代码的映射关系及版本差异,开展回归测试案例自动选取,降低了测试人员选取回归测试案例的工作量,提高了回归测试案例选取的准确性,保证了测试案例回归的覆盖面。另外,当测试发现缺陷时,利用映射关系,可快速准确定位缺陷关联的代码段,加快缺陷修复效率。

在测试结果分析阶段,开展代码分支覆盖分析,通过程序自动记录和显示测试案例执行的代码,清晰了解已执行测试案例对应的代码分支覆盖情况,为测试案例设计和测试覆盖率分析提供依据。通过度量覆盖率,识别覆盖率不足的地方,并有针对性地补充测试案例。实际应用中,综合衡量代码覆盖率和需求覆盖率,可以提高测试的有效性,降低漏测风险。另外,测试结果分析数据(例如代码分支覆盖率,案例与代码的映射关系等)以及补充的测试案例也会反馈到下一轮的测试分析设计阶段,进一步提高测试范围自动推荐的准确性,充分体现精准测试闭环运作的特征。

在投产上线之前,开展投产版本与测试版本的一致性对比,重点对“源码文件”“资源文件”和“配置文件”进行比对,除白名单之外的文件,投产版本必须与测试版本一致。

4.精准测试的作用。截至目前,精准测试闭环运作流程已构建,并在部分项目中试点应用;部分项目的代码分支覆盖率提升约30%;代码扫描累计覆盖约200个业务信息系统,整体代码质量较开展之初提升13%;版本一致性比对覆盖40多个重要业务信息系统,比对一致率逐步提升,达到93%。

通过精准测试可以深入了解被测系统及其架构,可以使测试人员制定更加合理的测试计划并有效执行测试工作。

精准测试正在推动测试工作从基于经验向基于经验与技术并重转型,精准测试通过一系列技术手段在不改变原有测试流程的前提下,整体上提高了系统质量。同时,精准测试为信息系统质量提供了数字化的跟踪分析手段,增强了信息系统投产信心。

精准测试未来展望

精准测试作为一种新的测试理念和测试模式,其定义、构成及运作模式仍在不断完善,对于精准测试价值的理解也在不断深入,本文认为,未来可重点关注如下三个方面。

精准测试与DevOps融合。目前在DevOps流程中尚未嵌入精准测试的运作模式,未来可以考虑将精准测试运作模式加入到DevOps流程中。例如测试范围自动推荐、回归测试案例自动选取等,在工具链中有选择地嵌入精准测试工具并与其他DevOps工具有效协同,使DevOps流程运作更加高效和有针对性。

精准测试与敏捷研发结合。从传统研发模式到敏捷开发,系统迭代和投产频次加快,甚至每周都会有版本投产。在某些特殊情况下,既没有足够资源或时间用于测试案例补充完善,也无法对每个版本开展全面的回归测试。精准测试可以作为敏捷研发的技术实践之一,通过针对性地圈定测试范围,聚焦关键回归案例,提高资源使用效率与项目交付效率,为推动项目的敏捷转型提供良好的技术基础。

更加智能化的精准测试。精准测试实施过程中记录或产生了大量的数据,目前只是利用了其中部分数据,仍有大量的数据未被深度分析,制约了精准测试智能化分析的能力。未来可将数据分析、机器学习、知识图谱等技术引入到精准测试当中,使精准测试发挥更大作用。

最近发表
标签列表