0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

云原生架构下如何建设有效的质量保障体系

vliwulianw 来源:软件质量报道 作者:软件质量报道 2022-11-29 15:16 次阅读

当前,随着证券行业数字化转型的推进,作为金融科技研发团队为更好的赋能业务部门也在不断转型,一方面是研发资源从瀑布模式到敏捷迭代的转型,高效推进研发工作的快速交付,另一方面是系统架构从传统单体架构向云原生架构转型,围绕微服务、容器、DevOps和持续交付构建整个研发体系的云原生能力。在转型过程中,中泰证券科技研发部在Devops思想的指导下完成DevOps效能平台的自主研发和成熟运行,具备持续集成持续交付(CI/CD)能力,而持续测试(CT)在DevOps流水线中是不可或缺的一环,如何高效保障产品质量,建设有效的质量保障体系是测试团队面临的一个挑战。

通过对质量体系建设的深入探索和研究,从流程规范建立与质量保障执行方面做了落地实践。流程规范上建立质量门禁提升产品准入准出标准,质量保障执行上根据测试金字塔模型分层开展自动化测试。UI层实现基于Appium的自动化测试;接口层基于DRF(Django REST framework)框架和对HttpRunner、Jmeter等开源工具的集成,实现接口的功能测试自动化与性能测试自动化;单元层集成静态代码扫描与安全测试。实践结果表明,质量保障体系的建设规范了研发过程,提升了交付效率,节省了研发成本,改善了交付质量。

背景及意义

2021年10月在北京金融街论坛上证监会科技监管局组织相关单位编制的《证券期货业科技发展“十四五”规划》正式发布,内容中重点强调了紧扣“推进行业数字化转型发展”与“数据让监管更加智慧”两大主题。当前无论是证券企业内部的需要还是监管的要求,证券行业的数字化转型的要求已经被提到了前所未有的高度。中泰证券也不例外,2015年中泰证券成立网金及金融科技研发团队围绕齐富通APP进行自主研发,通过金融科技的能力为经纪业务发展提供核心竞争力,到目前为止除了服务客户的齐富通APP,还有面向客户的融易汇PC、赋能员工展业的掌易通APP、综金零售CRM、机构CRM以及集中运营平台等。然而,随着通道业务佣金不断下滑以及互联红利的减退,传统的经纪业务遇到了瓶颈并开始向财富管理业务转型,各家券商聚焦财富管理业务为客户提供线上和线下相关的服务。 作为金融科技团队为助力财富管理数字化转型并形成护城河构建核心业务竞争力,同样需要进行金融科技团队内部的转型。首先是改变资源的组织形式,利用精益敏捷的思想去推动金融科技团队的转型,通过敏捷小组的方式高效推进各项业务研发工作的快速交付,使用北极星指标和OKR工具去对齐目标的达成。然后是调整系统的技术架构,从传统的架构逐步向云原生架构的转型升级,围绕微服务、容器、DevOps和持续交付构建整个研发体系的云原生能力。

ff6bd5e0-6f0c-11ed-8abf-dac502259ad0.png

云原生架构

然而,当研发资源的调整从瀑布模式到敏捷迭代,将传统的单体架构逐步升级和改造为云原生架构的过程中,产品的质量保障方面出现了一些挑战和危机:

(1)迭代周期加快,测试时间不足;

(2)线上故障增多,交付质量下降;

(3)测试环境管理维护成本高,且无法满足需要;

(4)测试人员压力较大,测试团队不稳定。

因此,面对云原生转型过程中的挑战,构建一套完善的质量保障体系变得至关重要。

质量保障从体系规划到能力建设

质量保障体系结合证券行业安全、合规等需求特性,打破大家对质量保障是测试团队事情的错误认知,建立起全员质量文化意识,推动开发、测试、运维等不同角色人员共同对质量保障负责。通过规范测试流程、定义质量标准、线下质量与线上质量相结合的方式,全方位来保障产品的质量。

ff816ea0-6f0c-11ed-8abf-dac502259ad0.png

质量保障体系规划

01

流程规范

依托Devops指导思想,建立Devops全流程能力体系跟踪产品的需求、开发、测试、发布全生命周期流程状态,实现持续集成与持续交付能力提升交付效率,具体如下图所示。

ff990042-6f0c-11ed-8abf-dac502259ad0.png

Devops全流程能力规划

基于Devops全流程建立开发提测门禁机制,产品发布上线前制定常规功能发布和紧急功能发布流程,如下图,不同发布流程会经过不同角色人员的审批确认,如产品经理、技术合规风控人员、安全人员、运维执行与复核人员、业务验收人员等,产品发布层层把关,所有流程线上留痕。

ffaf5ee6-6f0c-11ed-8abf-dac502259ad0.png

功能发布

02

线下质量

线下测试环境基于k8s实现容器化应用程序的编排管理,支持一键部署。测试策略上依据测试金字塔模型分层开展功能测试或自动化测试工作来构建测试滤网。

ffc0c5f0-6f0c-11ed-8abf-dac502259ad0.png

测试金字塔

测试金字塔中的界面层测试除了进行常规的业务功能测试、兼容性测试外,重点推进APP端的UI自动化测试,通过UI自动化平台,快速实现自动化脚本的录制管理、多机执行任务调度、执行过程监控与测试报告生成分析等功能。接口层测试基于接口的设计-研发-管理-测试-发布-监控-下线全生命周期管理的思想建立接口自动化平台,支持接口对应的项目管理、环境管理、用例与套件管理、报告管理等功能,且接口自动化已无缝衔接到CI/CD流水线中具备持续测试的能力。接口的性能测试在接口自动化测试平台基础上做了功能扩展,集成开源的JMeter工具,支持集群式发压,具备性能测试场景管理、定时任务设置、压力机状态管理、性能监控及报告分析和管理等功能。单元测试主要由开发人员执行,测试人员主要根据gitlab diff做版本之间的差异化测试。

03

线下质量

建立线上质量保障机制,通过线上质量实时监控、风险分析、盘前巡检、线上问题定位、跟踪、复盘等方式推进测试右移。

ffd42910-6f0c-11ed-8abf-dac502259ad0.png

线上服务质量监控

04

质量度量

质量保障需要研发、测试和运维共同来保障,对于不同角色人员设定不同的质量度量指标。研发指标:提测BUG率;测试指标:生产BUG逃逸率;运维指标:各类型故障数量、比例、时长。

ffe58f20-6f0c-11ed-8abf-dac502259ad0.png

质量度量指标

质量保障体系中关键技术介绍

01

UI自动化平台

00003b0e-6f0d-11ed-8abf-dac502259ad0.png

UI自动化平台架构

UI层自动化测试平台,面向金融行业高安全性、高性能和高可靠性的要求,支持私有云模式的落地实施。平台整体架构采用微服务集群框架,底层对Appium开源测试工具进行封装,服务端主要分为交互平台、执行引擎、接入平台三部分,各个部分均可以横向扩展,整体架构高效稳定可靠;例如测试人员和开发人员使用人数多的话可以将交互平台服务增加,若测试手机数量大的话可以增加部署接入平台的tools服务,若系统调度运行慢的话可以增加执行引擎服务器数量。

02

接口自动化平台

接口自动化测试平台整体架构采用Python+DRF+HttpRunner+Vue实现,测试平台的主要实现架构见下图。

001d9294-6f0d-11ed-8abf-dac502259ad0.png

接口自动化平台架构

前端UI层:提供便捷可视化的平台操作环境。Nginx代理转发动态请求到uWSGI服务器,再通过wsgi协议与Django进行通信。Django+uWSGI解决了Django原生启动方式runserver无法支持高并发的问题。执行层:为接口自动化提供多种调用方式,如jenkins、devops蜂鸟效能平台、日常回归、业务监控调用等。 测试用例与配置层:提供接口测试用例的定义、配置及用例的执行功能,集成HR测试框架。公共函数层:实现了接口自动化测试平台一整套的核心功能,如数据库读写、平台认证授权、发送邮件和调用测试执行器等。该层依靠Django REST framework及Django的ORM操作,通过编写相应的视图类、路由匹配规则产生出API,实现了上述前后端的交互及后端各个组件之间的调用。数据管理层:使用Mysql数据库主要负责自动化平台的执行日志、用例数据、测试报告、统计报表的存取。

03

性能自动化平台

性能测试平台架构设计与接口自动化测试平台共用,压测工具:平台集成广泛应用的JMeter压测工具,非GUI模式执行。Channels:提供实时查看压测运行日志的功能,实现websocket消息实时通讯。Celery:实现django异步任务处理功能。Redis:一方面是作为Celery异步任务处理的消息中间件,另一方面是作为channels的channel layer,实现消息的传输功能。文件存储:主要保存性能测试脚本、测试参数文件和测试报告等。

04

关键功能截图

质量保障体系的建设在落地实践中取得了较好的成果,具体关键截图如下所示。

关键截图一:提测及发布流程

003789ce-6f0d-11ed-8abf-dac502259ad0.png

提测及发布流程图

该图为一个完整研发提测与功能发布流程图,各职能化角色都有参与到该流程中,开发人员提测、测试人员执行测试、技术经理确认上线发布、产品经理发布前验收、产品及技术负责人确认上线、合规确认发布流程、运维人员A执行发布、运维人员B复核发布、业务部门生产验收。 关键截图二:UI自动化测试多机执行

0050c736-6f0d-11ed-8abf-dac502259ad0.png

UI自动化

该图为UI自动化支持多台手机并行执行测试任务,不同机器间的测试用例互不干扰,解决测试用例较多情况下测试执行较慢的问题。 关键截图三:接口自动化平台

0064e716-6f0d-11ed-8abf-dac502259ad0.png

接口自动化平台

该图主要展示了接口自动化测试平台的相关数据,项目数、接口数、用例数、用例执行成功率等数据一目了然。 关键截图四:性能测试平台

00774c26-6f0d-11ed-8abf-dac502259ad0.png

性能测试平台

该图为性能测试平台首页,展示最新测试场景、最新测试报告、压力机信息、当前运行中的任务四块内容。 关键截图五:各阶段安全测试

0088bf6a-6f0d-11ed-8abf-dac502259ad0.png

安全测试

该图从编码、构建到测试的各阶段,通过静态代码扫描、软件成分分析、动态应用安全测试、交互式应用安全测试方法建立安全测试工具链。 关键截图六:线上质量监控看板

009af040-6f0d-11ed-8abf-dac502259ad0.png

线上监控

该图为线上质量看板,实时监控产品的线上质量状态,当有问题发生可触发实时告警。

总结

云原生体系下的质量保障建设带来的价值如下:

1. 规范研发过程,实现合规、安全、可控

根据证券期货行业相关信息技术管理办法,规范了提测质量门禁和上线质量门禁实现了各环节操作的安全可控及合规。

2. 提升交付效率,缩短交付时间质量左移缩短开发人员完成功能代码编写到生产发布过程中的时间消耗,提升研发交付效率。缩短了开发时间周期,通过静态代码扫描可以在10~20分钟内实现对一个应用系统的代码检查,提升了开发人员CodeReview的效率。每个迭代的时间缩短0.5~1天。缩短了测试时间周期,接口和UI全功能回归测试从2~3天人工测试降低到自动化测试6~8小时。性能测试实现实时性能监控,无需登录每台服务器查看性能,测试报告统一化、可视化,平均每个场景缩短30分钟左右。 DevSecOps的实施将安全测试工具链集成到流水线,使安全嵌入无缝衔接到CI、CD,其中DAST,从3到5天人工进行,到目前的自助式服务30分钟,减少了等待3到5天;IAST通过插桩方式在做自动化及回归的过程中无感的进行安全测试,无额外的安全测试开销。 3. 减少了人力资源投入,节省了研发成本 在测试能力提升方面,为保障核心业务的上线质量,通过加强了自动化测试能力建设,通过自动化测试大大减少了人力资源投入。2022年自动化测试累计节省17人年。2022年至今UI回归次数安卓和iOS共回归52次,每次执行用例2500+,按照每人每天可执行55条计算,共节省约9人年;接口自动化回归454次,81989条用例,按每人每天40接口计算,共节省约8人年。 4. 提升交付质量,减少线上故障安全左移,可以发现98%以上的安全漏洞,大大降低了线上的解决安全漏洞的成本及安全风险。保障核心业务的上线质量,自动化测试用例覆盖核心业务用例80%以上,核心业务主要为集中交易、两融、期权、理财、条件单、银证转等核心业务,自动化测试回归后无线上问题反馈。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 自动化
    +关注

    关注

    29

    文章

    5539

    浏览量

    79193
  • 数字化
    +关注

    关注

    8

    文章

    8672

    浏览量

    61700

原文标题:重磅:云原生架构下的质量保障体系建设

文章出处:【微信号:软件质量报道,微信公众号:软件质量报道】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    梯度科技入选2024云原生企业TOP50榜单

    近日,国内专业咨询机构DBC德本咨询发布“2024云原生企业TOP50”榜单。梯度科技凭借自主研发的“梯度智能云平台”入选该榜单,彰显公司在该领域的行业竞争力。
    的头像 发表于 12-06 11:35 203次阅读

    软通动力荣登2024云原生企业TOP50榜单

    近日,DBC德本咨询发布“2024云原生企业TOP50”榜单,软通动力凭借自研的“天鹤云原生数据库平台” 荣登该榜单第8名,彰显了公司在该领域的行业竞争力。
    的头像 发表于 12-04 11:27 182次阅读

    云原生和数据库哪个好一些?

    云原生和数据库哪个好一些?云原生和数据库各有其独特的优势,适用于不同的场景。云原生强调高效资源利用、快速开发部署和高可伸缩性,适合需要高度灵活性和快速迭代的应用。而数据库则注重数据一致性、共享和独立性,确保数据的稳定和安全,适用
    的头像 发表于 11-29 10:07 109次阅读

    k8s微服务架构就是云原生吗?两者是什么关系

    k8s微服务架构就是云原生吗?K8s微服务架构并不等同于云原生,但两者之间存在密切的联系。Kubernetes在云原生
    的头像 发表于 11-25 09:39 116次阅读

    质量视角】可观测性背景质量保障思路

    目前质量团队正在积极建设和完善应用监控能力,旨在能及时发现并解决问题,为线上服务稳定性保驾护航。随着可观测性概念的逐渐普及,监控的建设也有了新的挑战和使命。本文将探讨在可观测性背景
    的头像 发表于 10-25 17:21 233次阅读
    【<b class='flag-5'>质量</b>视角】可观测性背景<b class='flag-5'>下</b>的<b class='flag-5'>质量</b><b class='flag-5'>保障</b>思路

    云原生和非云原生哪个好?六大区别详细对比

    云原生和非云原生各有优劣,具体选择取决于应用场景。云原生利用云计算的优势,通过微服务、容器化和自动化运维等技术,提高了应用的可扩展性、更新速度和成本效益。非云原生则可能更适合对延迟敏感
    的头像 发表于 09-13 09:53 360次阅读

    基于Arm架构的Azure虚拟机助力云原生应用开发

    子系统 (CSS) 所构建的解决方案专为运行现代通用云工作负载而设计,并且通过优化,为云原生产品提供更高的效率和性能。
    的头像 发表于 09-05 15:54 1754次阅读

    京东云原生安全产品重磅发布

    “安全产品那么多,我怎么知道防住了?”“大家都说自己是云原生的,我看都是换汤不换药”在与客户沟通云原生安全方案的时候,经常会遇到这样的吐槽。越来越的客户已经开始了云原生化的技术架构改造
    的头像 发表于 07-26 10:36 451次阅读
    京东<b class='flag-5'>云原生</b>安全产品重磅发布

    从积木式到装配式云原生安全

    云原生安全风险 随着云原生架构的快速发展,核心能力逐渐稳定,安全问题日趋紧急。在云原生安全领域不但有新技术带来的新风险,传统IT基础设施
    的头像 发表于 07-26 10:35 288次阅读
    从积木式到装配式<b class='flag-5'>云原生</b>安全

    基于DPU与SmartNic的云原生SDN解决方案

    个轻量级,可移植的运行环境,逐渐成为云原生时代基础设施的事实标准。Kubernetes通过网络插件(CNI,Container Network Interface)实现灵活地配置和管理集群中的容器网络,确保容器之间的有效通信和网络安全。
    的头像 发表于 07-22 11:44 677次阅读
    基于DPU与SmartNic的<b class='flag-5'>云原生</b>SDN解决方案

    高鸿信安参编的《金融行业云原生安全体系研究》获评优秀课题

    由中国银联牵头,高鸿信安参编的《金融行业云原生安全体系研究报告》,在北京金融科技产业联盟认可下获评优秀课题的荣誉。
    的头像 发表于 05-11 14:04 479次阅读
    高鸿信安参编的《金融行业<b class='flag-5'>云原生</b>安全<b class='flag-5'>体系</b>研究》获评优秀课题

    云原生是大模型“降本增效”的解药吗?

    云原生AI正当时
    的头像 发表于 02-20 09:31 375次阅读

    米哈游大数据云原生实践

    近年来,容器、微服务、Kubernetes 等各项云原生技术的日渐成熟,越来越多的公司开始选择拥抱云原生,并开始将 AI、大数据等类型的企业应用部署运行在云原生之上。以 Spark 为例,在云上运行
    的头像 发表于 01-09 10:41 573次阅读
    米哈游大数据<b class='flag-5'>云原生</b>实践

    云原生技术前沿落地实践分论坛圆满举办

    12 月 16 日,2023 开放原子开发者大会【云原生技术前沿落地实践】分论坛在无锡成功举办。论坛将聚焦云原生的泛在化、Serverless 化以及智能化等前沿发展趋势,与一线技术专家及最终用户
    的头像 发表于 12-22 09:20 1028次阅读
    <b class='flag-5'>云原生</b>技术前沿落地实践分论坛圆满举办

    云原生数据库GaiaDB架构设计解析

    目前,云原生数据库已经被各行各业大规模投入到实际生产中,最终的目标都是「单机 + 分布式一体化」。但在演进路线上,当前主要有两个略有不同的路径。
    的头像 发表于 12-14 14:48 570次阅读
    <b class='flag-5'>云原生</b>数据库GaiaDB<b class='flag-5'>架构</b>设计解析