文 / 中信建投证券股份有限公司信息技术部总监 陶剑峰
中信建投证券股份有限公司信息技术部 常征 徐泊
在“十四五”规划引领下,金融科技成为推动金融行业高质量发展的重要力量。证券类App作为金融科技的前沿应用,其稳定性、安全性和用户体验对投资者至关重要。随着数字化转型加速,自动化测试在保障证券类App质量中发挥着越来越关键的作用。本文将深入探讨自动化测试在证券类App中的应用实践,分析现状,提出提升策略,展望未来发展,以期为金融科技的创新与进步贡献力量。
中信建投证券股份有限公司
信息技术部总监 陶剑峰
证券类App自动化测试现状分析
1.自动化测试的现状。当前,证券行业在App测试方面主要依赖于手工测试,自动化程度不高。这种方式不仅效率不高,而且难以实现对所有测试场景的全面覆盖。随着券商业务的持续扩展,App版本的迭代速度也不断加快,传统的手工测试已无法满足不断增长的测试需求。因此,自动化测试已经成为证券行业App开发过程的必要一环。
2.自动化测试框架与工具应用。在证券类App自动化测试的领域内,选择和应用恰当的框架与工具是提高测试质量和效率的根本。目前Selenium、Appium等开源框架因其卓越的跨平台功能和全面的API支持,在业界被普遍采纳。
此外,AI图像识别技术,借助深度学习算法,能够高效且精确地识别和验证App界面中的图像元素,保障用户界面设计的一致性及功能的准确性。面对不断创新的开发技术,一些新型界面元素可能无法通过传统的对象自动化方法(如Selenium、Appium)进行识别。AI图像识别技术的运用,使测试工具能够摆脱对特定开发技术的依赖,不仅显著提升了测试工作的效率,也扩展了自动化测试的应用范围。它为App的质量保障提供了坚实的支撑。
因此,将AI技术与自动化测试相结合,正逐步成为证券行业实施自动化测试的重要趋势。
3.自动化测试存在的主要挑战。笔者根据实践分析,总结为以下几个方面。
用例编写工作量大。当前证券类App自动化测试实践中,采用传统方法编写测试用例往往要求测试人员掌握一定的编程能力。这种方法不仅增加了自动化测试工作的门槛,在后续的用例及脚本维护上也颇为耗时耗力,同时用例在不同测试场景下的复用性也存在局限。为了提升效率和可维护性,有必要探索更加高效和可复用的自动化测试策略。
测试用例覆盖率不足。另一个显著问题是用例覆盖率的不足。由于证券类App业务逻辑和交易流程的复杂性和多样性,增加了自动化测试设计的难度。确保自动化测试覆盖所有重要的业务场景和功能,同时避免冗余和重复测试,是一个持续的挑战。
业务逻辑复杂,交易规则多变。证券业务的复杂性对证券类App的自动化测试提出了更高要求。复杂的业务逻辑、多变的交易规则以及高频的数据交互,要求自动化测试能够快速适应这些变化,确保测试结果的准确性和可靠性。
测试数据准备。数据准备也是当前证券类App自动化测试流程中的一个痛点。证券类App测试需要大量且多样化的测试数据,管理这些数据以支持自动化测试是一个挑战。
手机兼容性。证券类App需要在不同的操作系统和手机设备运行,自动化测试需要覆盖主要目标类型,确保证券类App在不同环境下都能稳定运行,提高用户体验和满意度。
大规模执行难。在证券类App的自动化测试中,随着用例数量的激增,大规模执行的难度也随之增加,面临的主要挑战有两个。一是执行时间的优化:大量用例的执行可能需要较长时间,如何进行并行执行,以缩短整体测试周期,是一个挑战。二是结果分析和报告:在大规模测试执行后,如何快速准确地分析测试结果,并生成可靠且有效的测试报告,对于测试团队来说也是一个挑战。
证券类App自动化测试质量提升实践
1.建设移动端自动化测试平台。中信建投证券针对蜻蜓点金App的技术特性和移动端自动化测试的技术挑战,融合当前自动化测试技术的发展趋势,打造了一个全面集成的自动化测试平台。该平台具备多项功能,包括但不限于测试管理、测试用例管理、测试数据管理、测试执行、移动设备管理以及测试任务分发和监控等,旨在支持多样化的自动化测试需求。
为了优化移动设备的使用和管理效率,中信建投采用了机柜式统一管理方案,其架构如图1所示。移动设备私有云的构建不仅提高了设备的使用率和维护效率,而且通过自动化测试平台的统一调度,确保了移动端自动化测试的顺利执行和高效运作。同时,中信建投证券为平台开发多项功能,解决常见的自动化技术难点,如图2所示。
图1 自动化测试平台架构
图2 通过自研功能解决的部分技术难点
目前自动化测试平台的主要优势如下。
手机系统支持:自动化测试平台具备卓越的跨系统支持能力,可支持Android、iOS和鸿蒙等主流系统的自动化测试。实现通过Window挂载iOS设备,为iOS应用的自动化测试提供了便利。
用例设计:自动化测试平台提供无代码的测试用例编写模式,支持用例录制,使得测试用例的创建更加直观和便捷。即使无编程经验的业务测试人员也可完成用例设计。
移动真机管理:自动化测试平台提供移动真机管理引擎,全面支持Android、iOS和鸿蒙操作系统的真机远程控制和管理,引擎支持一系列复杂的手机操作,包括应用启动、点击、输入、滑动、截屏、锁屏、解锁、HOME健等,覆盖了用户交互的各个方面。
测试执行:自动化测试平台提供基于云的自动化调度策略,采用基于负载均衡的执行机按需分配机制,支持千台数量级的移动终端并发执行。实现了测试资源的最大化利用,降低了等待时间和闲置资源,有效地保证了自动化测试执行效率。
2.集成AI图像识别技术。为了进一步提升自动化测试的效率和质量,我们在自动化测试平台中创新性地集成了AI图像识别技术,打造AI识别引擎。AI识别引擎拥有特定的视觉算法库,通过界面对象算法、图标识别算法以及OCR技术,能够有针对性地优化识别网络,达到对图像的准确定位。AI技术的应用打破了传统自动化测试在特定操作系统或界面元素上的局限性,使得测试能够覆盖更广泛的应用场景。
通过AI智能识别元素和定位技术,让自动化测试识别更精确,执行效率更高,检查更准确。针对那些界面元素频繁变动的场景,如实时K线图,以及快速刷新的五档行情数据等,AI图像识别技术能够凭借其卓越的识别与定位能力,迅速且准确地执行测试用例。
3.引入数据驱动。蜻蜓点金App自动化测试引入了数据驱动测试策略,以强化测试流程的智能化与高效性。该策略的关键在于测试前自动执行环境初始化脚本,测试中动态地从数据库中抓取多样化的用户交易数据,这些数据涵盖了广泛的交易类型和复杂程度,如日常小额交易、极端条件下的高频交易,以及潜在的异常交易行为、高频交易场景的模拟、大额交易场景等。
对于蜻蜓点金App在搜索界面、买卖界面中输入证券代码后进行行情校验的场景,引入动态数据驱动用例执行。只需编写1条用例,根据测试数据条数的不同,对该用例执行不同轮次,例如准备100条沪市A股证券代码,测试脚本将会自动执行100次,每次按对应的证券代码进行检查。
通过引入数据驱动,蜻蜓点金App不论在测试数据准备还是测试用例执行上,更从容高效,显著提高了测试效率和用例覆盖率,通过常态化的App跑批+测试数据驱动,我们能准确发现行情中的隐藏bug,为开发定位问题提供了数据支撑。
4.增强用例的复用性与可维护性。蜻蜓点金App自动化测试采取模块化思想,将登录、余额校验、买卖操作、五档行情检查、步长检查、搜索、闪电交易等业务进行模块化构造,测试人员只需要通过不同模块间进行组合即可生成最终测试用例。同时,在App对某个功能进行修改后,测试人员只需要维护模块中对应的测试步骤,即可实现所有引用该模块的测试用例的同步修改。实践得出这一举措使测试用例的复用率提升了约40%,同时维护时间减少了30%。
蜻蜓点金App在自动化实践过程中,将模块化和数据驱动相结合。如登录模块中,模块提供输入选项,在测试人员录入账号后,引用数据库查询语句,通过数据库管理并返回该账号所对应的测试数据。
5.分布式并发执行。自动化测试平台依托云技术,通过智能的负载均衡算法实现分布式并发执行。根据不同的测试需求动态分配手机设备,减少人员及设备的等待时间,降低资源闲置,实现了资源的最优利用,保障了执行效率。自动化测试执行过程无人值守,平台自动全程监控,测试结果自动回收。
截至目前,蜻蜓点金App有自动化测试用例约4000条。基于平台的云执行能力,每轮自动化回归测试时,由30部手机并行执行,可实现48小时内完成执行、复测和出具测试报告。大幅缩短了蜻蜓点金App的回归测试时间,缩短了版本上线周期。
6.自动化测试报告与结果分析。没有度量,就没有质量。对于自动化测试,结果和分析同样重要。蜻蜓点金App对于自动化测试报告中的通过率有明确要求,我们要求自动化通过率需要保持90%以上。每轮回归测试后我们会对失败用例进行分析,对于非缺陷的自动化测试用例,按要求在2~3轮测试后用例必须修正并执行通过。在保证通过率的同时,也杜绝一些用例维护效率低的情况。
7.自动化测试效能体现。体现在集中化、智能化、数字化三个方面。集中化:通过自动化测试平台和机柜,集中管理移动设备,有效提升移动设备的管理和使用效率。智能化:通过平台AI引擎智能识别和驱动界面元素,降低自动化技术门槛,提升测试效率。数字化:通过平台实现自动化测试数字化,全程无人值守,自动截图和录像,测试过程可追溯。
未来展望
1.行情回放自动化测试。证券类App的自动化领域复杂业务场景较多,复杂业务场景下的测试难题比较突出。如证券交易这类场景简单,交易量大的业务场景,蜻蜓点金App已经基本做到了全覆盖。但像快买快卖、与上证行情相关的自动化测试,覆盖度仍然不足。
上证行情的不确定性、实时性、高刷新频率等都是困扰着自动化实施的瓶颈,为解决这一瓶颈,蜻蜓点金团队和上证信息团队合作,开展行情回放的自动化课题攻坚,采用AI图像识别技术为基础,结合自动化测试平台,实现了行情回放、盘口、五档的自动化测试技术实现。下阶段将重点提升行情回放自动化测试范围,进一步提升蜻蜓点金App自动化测试覆盖度。
2.鸿蒙next自动化测试。华为已正式发布新一代的鸿蒙操作系统——鸿蒙next,蜻蜓点金App的自动化测试工作也迎来了新的挑战和使命。
目前,蜻蜓点金App的自动化测试团队已经完成鸿蒙next操作系统的支持适配工作,自动化测试平台已能够兼容鸿蒙next系统,蜻蜓点金App也开始了基于新系统的自动化测试实施。
随着鸿蒙next系统的不断更新和完善,自动化测试平台也会不断升级,保障蜻蜓点金App在鸿蒙next系统上的兼容性和用户体验。
3.更深入的大数据测试和AI自动化测试。未来,中信建投蜻蜓点金App准备构建更深入更高效的测试合作平台,一方面,与大数据组合作,通过大数据分析,修正测试数据中的低频数据和影响分子较小的数据;另一方面,推动AI识别更智能化和更开放,提供对外的API和服务,供其他团队使用。
(此文刊发于《金融电子化》2024年11月上半月刊)
推荐阅读(点击图片查看精彩内容)
新媒体中心
主任 / 邝源
编辑 / 姚亮宇 傅甜甜 张珺 邰思琪