首页 > 其他分享 >通过平台工程提高微服务测试质量

通过平台工程提高微服务测试质量

时间:2024-09-08 19:46:59浏览次数:5  
标签:开发人员 流程 平台 标准化 质量 测试 团队

通过平台工程提高微服务测试质量

image

背景

  • 微服务架构的多样性导致了测试过程中的不统一和效率低下。
  • 各团队可能使用不同的编程语言和工具链,导致重复工作和成本增加。
  • 非标准测试方法会危及系统的可靠性和整体质量。


    为了提高工程效率、降低成本并提高系统可靠性,标准化测试流程是关键的一步。在快速发展的微服务世界中,每个工程团队通常会构建自己独特的技术和工具组合 —— 一种多语言的天堂。虽然这种多样性促进了创新,但在测试方面带来了重大挑战。团队可能会选择自己的编程语言和工具链,但正如容器和 Kubernetes 所教导我们的,部署和运行时的标准化是非常宝贵的。这种对统一性的需求至关重要地延伸到测试领域,这是一个充满决策的领域,例如优先考虑哪些测试、追求哪些指标以及自动化程度有多高。

“我们有一些团队想要快速行动,因此懒得编写任何自动化测试,只是在生产中进行测试并回滚。而我们还有一些团队花费太多时间自动化他们代码的各个方面,并且发布非常缓慢!”

这种差异不仅效率低下,而且成本高昂,因为它会导致冗余的努力和增加的维护成本。没有标准化的测试,团队可能会重复工具和流程,这通常会导致更昂贵的生产问题,消耗大量资源,并可能影响收入。

非标准测试的问题

       想象一下,一个团队在 CI 中勤奋地使用 Docker Compose 自动化集成测试,而另一个团队则将精力保留在每晚在暂存环境中运行的端到端(E2E)测试上。第三组可能主要坚持手动测试,只是偶尔尝试自动化。这种碎片化的方法不仅危及单个组件的可靠性,而且危及整个系统。它模糊了在整个工程组织中围绕质量、速度和成本协调指标的任何努力。此外,请记住那句古老的谚语:一个系统的强大程度取决于它最薄弱的环节。测试标准的不一致可能会使您的整个系统容易受到最不可靠组件的缺陷的影响,从而可能在未来引发重大问题。

平台工程的作用

      平台工程是 DevOps 原则的演变,专注于开发内部工具,以标准化技术流程并为开发人员提供自助服务能力。在测试微服务的背景下,平台工程师(PE)可以与质量保证团队合作,打造更广泛的工程团队可以采用的标准化工具和最佳实践,从而确保一致性和效率。

平台工程标准化的关键领域

       最近的行业见解,例如 Puppet 的 “2023 年平台工程现状” 和 “Gartner 的 2024 年软件工程优先事项”,突出了直接影响平台工程团队的关键目标和挑战。这些报告强调了软件交付中效率、可靠性和速度的重要性,强调了在软件开发生命周期(SDLC)中简化操作的必要性。专注于测试,这是 SDLC 的关键阶段,可以极大地增强这些方面。以下是平台工程师如何使他们的策略与这些首要举措保持一致:
测试环境:两份报告都指出了管理多个测试环境的过高成本和复杂性。通过将开发、QA、暂存和验收整合到一个单一的、优化的预生产环境中,平台团队可以大幅削减开销并简化工作流程。这种方法不仅降低了基础设施成本,还加速了测试过程,符合行业朝着更高效开发实践推进的趋势。
代码更改的早期预览:早期和迭代反馈的重要性是当前软件工程讨论中反复出现的主题。实施标准化的预览环境允许开发人员更有效地与产品经理、QA 和 UX 团队合作。尽管涉及复杂性,但建立这些环境对于增强微服务架构中的反馈循环至关重要,从而提高产品质量并加快迭代速度。
左移自动化测试:根据行业领导者的说法,早期检测和解决问题是保持高生产力和产品质量的关键。通过标准化在合并拉取请求之前运行自动化测试的实践,平台工程师确保在最早的阶段识别和解决缺陷。这种主动的方法不仅提高了发布的稳定性,而且符合提高开发人员生产力和运营效率的更广泛目标。这些标准化的战略领域不仅仅是关于改进单个流程,而是对于提高平台工程功能的整体有效性和效率不可或缺的。

指导测试标准化的核心原则

      在平台工程的领域中,对开发人员的好处是巨大的,从提高生产力到提高软件质量。值得注意的是,开发人员强调了减少错误和更稳定应用程序的优势,这在快节奏的开发环境中至关重要。

platformengieer

Source: https://www.puppet.com/resources/state-of-platform-engineering

       当我们避免使用诸如代码覆盖率百分比或自动化测试的数量等虚荣指标时,这些指标可能会误导而不是提供信息,专注于测试提供的可操作见解而不是其存在本身至关重要。以下是一些指导原则,以确保测试工作真正有效:
结果重于输出:优先考虑直接影响软件质量和用户体验的指标,例如缺陷逃逸率或事件频率(frequency of incidents),而不是仅仅计算活动的输出。
价值驱动的测试:选择正确的测试不仅仅是在手动和自动化方法之间做出决定;它需要评估它们的投资回报率和维护努力。理想的方法因业务上下文而异。例如,一家电子商务公司可能会优先考虑对收入至关重要的交易流程,而一家 B2B 公司可能会关注不同的关键用户流程。尽管端到端(E2E)测试资源密集,但它们保护高价值用户流程的潜力可能证明其成本是合理的。有效的测试策略与业务目标紧密结合,确保努力集中在最能提供价值的地方。
迭代改进:使用指标不断改进测试实践。如果某些测试始终产生很少或没有可操作的数据,可能是时候修改或放弃它们了。通过关注这些原则并拥抱新兴技术,团队可以使他们的测试策略更紧密地与他们的核心目标保持一致,提高他们开发过程中的效率和有效性。

结论

     在提高工程效率、降低成本和提高系统可靠性方面,标准化测试流程是关键的一步。我们构建工具来帮助平台团队简化和标准化测试和预览环境,在开发周期中实现左移方法,同时最大限度地降低基础设施成本。例如,平台工程师能够在不重复基础设施的情况下在数百名工程师中扩展开发人员测试,而使其开发人员能够在类似生产的环境中进行早期测试,更早地发现问题并降低成本。


今天先到这儿,希望对AIGC,云原生,技术领导力, 企业管理,系统架构设计与评估,团队管理, 项目管理, 产品管理,信息安全,团队建设 有参考作用 , 您可能感兴趣的文章:
构建创业公司突击小团队
国际化环境下系统架构演化
微服务架构设计
视频直播平台的系统架构演化
微服务与Docker介绍
Docker与CI持续集成/CD
互联网电商购物车架构演变案例
互联网业务场景下消息队列架构
互联网高效研发团队管理演进之一
消息系统架构设计演进
互联网电商搜索架构演化之一
企业信息化与软件工程的迷思
企业项目化管理介绍
软件项目成功之要素
人际沟通风格介绍一
精益IT组织与分享式领导
学习型组织与企业
企业创新文化与等级观念
组织目标与个人目标
初创公司人才招聘与管理
人才公司环境与企业文化
企业文化、团队文化与知识共享
高效能的团队建设
项目管理沟通计划
构建高效的研发与自动化运维
某大型电商云平台实践
互联网数据库架构设计思路
IT基础架构规划方案一(网络系统规划)
餐饮行业解决方案之客户分析流程
餐饮行业解决方案之采购战略制定与实施流程
餐饮行业解决方案之业务设计流程
供应链需求调研CheckList
企业应用之性能实时度量系统演变

如有想了解更多软件设计与架构, 系统IT,企业信息化, 团队管理 资讯,请关注我的微信订阅号:

image_thumb2_thumb_thumb_thumb_thumb

作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 该文章也同时发布在我的独立博客中-Petter Liu Blog。

标签:开发人员,流程,平台,标准化,质量,测试,团队
From: https://www.cnblogs.com/wintersun/p/18403323

相关文章

  • “阡陌云旅”黄河九省文化旅游平台
    “阡陌云旅”黄河九省文化旅游平台GitHub地址:https://github.com/guoJiaQi-123/Yellow-River-Cloud-Journey项目背景“阡陌云旅”黄河九省文化旅游平台“阡陌云旅”黄河九省文化旅游平台是一个专注于黄河流域九省文化旅游资源整合与推广的项目。黄河是中华民族的母亲......
  • python+flask计算机毕业设计基于web技术的课程思政元素信息交流平台的设计与探索(程序+
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在高等教育日益重视课程思政建设的背景下,如何将思想政治教育有机融入专业课程,提升学生思想政治素质,成为当前教育改革的重要课题。随着互联......
  • 基于python+flask框架的流浪猫救助平台(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着城市化进程的加速,流浪猫问题日益凸显,成为城市生态与人文关怀的一大挑战。这些无家可归的小生命,不仅面临着食物短缺、生存环境恶劣的困......
  • 春日美食汇:基于SpringBoot的订餐平台
    2系统关键技术2.1JSP技术JSP(Java脚本页面)是Sun和许多参与建立的公司所提倡的动态web技术。将Java程序添加到传统的web页面HTML文件()。htm,。Html)[1]。JSP这种能够独立使用的编程语言可以嵌入在html语言里面运行,正因为JSP参照了许多编程语言的特性,使得JSP在web的脚......
  • MES系统:优化生产流程,产品质量与追溯性
    MES系统(ManufacturingExecutionSystem,制造执行系统)在实现产品质量管理方面发挥着重要作用。它通过集成生产过程的各种数据和功能,帮助企业提升产品质量、降低不良率,并确保生产过程的稳定性和一致性。以下是万界星空科技MES系统实现产品质量管理的几个关键方面:一、数据采集与......
  • 基于SpringBoot的美食分享平台设计与实现,LW+源码+部署讲解
    一、绪论1.1研究意义当今社会作为一个飞速的发展社会,网络已经完全渗入人们的生活,网络信息已成为传播的第一大媒介,可以毫不夸张说网络资源获取已逐步改变了人们以前的生活方式,网络已成为人们日常,休闲主要工具。人们记录、分享和发现美食的方式正在逐渐发生改变,因此借助怎......
  • Android平台轻量级RTSP服务之GStreamer还是SmartRtspServer
    技术背景Android上启动一个轻量级RTSP服务,让Android终端像网络摄像头一样提供个外部可供RTSP拉流的服务,在内网小并发又不希望部署单独流媒体服务的场景下非常适用,在Android终端实现这样的流媒体服务,决定了,只能是轻量级的服务。可以通过集成第三方库或编写自定义的RTSP服务器代码来......
  • ginkgo编写测试用例
    gogetgithub.com/onsi/ginkgo/v2/ginkgogoinstallgithub.com/onsi/ginkgo/v2/ginkgogogetgithub.com/onsi/gomegamkdirtestcdtestginkgobootstrapginkgo常用的模块是It、Describe、BeforeEach、AfterEach、BeforeSuite、AfterSuite。It指定单个测试用例。Describe......
  • 基于python+flask框架的基于移动平台的河长系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着城市化进程的加速,河流作为城市生态系统的重要组成部分,其健康状况直接关系到居民的生活质量与城市可持续发展。然而,传统的河流管理模式......
  • 基于python+flask框架的基于微信小程序的二手电商平台设计与实现(开题+程序+论文) 计算
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,电子商务已成为人们日常生活中不可或缺的一部分。在高校校园内,学生群体对二手商品交易的需求日益增长,但传统的线......